当前位置: 首页 > 知识库问答 >
问题:

Azure CLI任务在Windows生成代理上不起作用

盛琪
2023-03-14

我创建了一个Azure运营模式任务组,以在Azure(Azure容器实例)上创建一个selenium容器,如下所示:

脚本:

ipAddress="$(az container create  \
-g $(resourceGroup) \
--name temp-$(ContainerName) \
--image myregistry.azurecr.io/selenium/standalone-chrome \
--cpu 2 \
--memory 4 \
--os-type Linux \
--ports 4444 \
--vnet $(VNet)
--subnet $(Subnet)
--registry-username $(registryUsername) \
--registry-password $(registryPassword) \
--environment-variables \
NODE_MAX_SESSION=10 \
Browser=$(Browser) \
--query 'ipAddress.ip' -o tsv)"

echo "##vso[task.setvariable variable=$(SeleniumHubVariable);]http://$ipAddress:4444/wd/hub/"

在Linux构建代理上运行时,此任务会成功执行。

当我尝试在Windows构建代理上运行它时,任务不会失败,但不会创建容器。任务的输出如下:

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

F:\Agent03\w\125\s

我错过了什么?我怎样才能让它同时适用于Windows和Linux?

共有1个答案

祁杰
2023-03-14

我现在能够使用2个任务使其与Windows代理一起使用。

脚本:

az container create ^
-g $(resourceGroup) ^
--name temp-$(ContainerName) ^
--image myregistry.azurecr.io/selenium/standalone-chrome ^
--cpu 2 ^
--memory 4 ^
--os-type Linux ^
--ports 4444 ^
--vnet $(VNet)
--subnet $(Subnet)
--registry-username $(registryUsername) ^
--registry-password $(registryPassword) ^
--environment-variables ^
NODE_MAX_SESSION=10 ^
Browser=$(Browser) ^
--query "ipAddress.ip" -o tsv>tmpFile-$(ContainerName).txt

一些注意事项:

  • \字符被替换为^
  • 单引号可以在Linux上正常工作(--query'ipAddress.ip'),但在Windows上我必须使用双引号(--query"ipAddress.ip"
$ipAddress = [IO.File]::ReadAllText("tmpFile-$(ContainerName).txt")

Write-Host "Selenium hub URL is http://$($ipAddress.Trim()):4444/wd/hub/"
Write-Host "##vso[task.setvariable variable=$(SeleniumHubVariable);]http://$($ipAddress.Trim()):4444/wd/hub/"

不幸的是,我不得不为每个操作系统(Windows或Linux)创建不同版本的任务:

要根据生成代理的操作系统运行这些任务,可以设置自定义条件:

因此,要在Windows构建代理上运行任务,您可以设置此自定义条件:

and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))

要在Linux构建代理上运行它:

and(succeeded(), eq(variables['Agent.OS'], 'Linux'))

PS:<代码>代理。OS可在构建代理功能中找到

 类似资料:
  • 因此不需要总是从生成的变更日志中删除该属性是很好的。

  • 我刚安装了VSCode,还有这个小小的基本打字应用程序。 第一次,当我想要构建应用程序时,VScode需要生成任务。json。 它在很久以前就起作用了。 今天我收到一条奇怪的信息 未定义生成任务。在tasks.json文件中标记一个任务。 我不记得以前看到过这个消息。 但是,好的,我单击Configure Build Task,选择TypeScript Task,然后单击tasks。生成json。

  • 问题内容: 我正在按照以下说明使用Python绑定安装的OpenCV 2.4 。 我的问题与此类似,但我需要Windows计算机解决方案。 问题:当我尝试使用时 它工作正常,但是以下代码 始终返回False。 文件路径正确,绝对且没有空格。 我在装有Windows XP和Windows 7的两台机器上进行了尝试,结果相似。在Linux(Ubuntu)上,它对我来说很好用。 问题答案: 添加到Win

  • npm错误!有效得安装目标: npm错误![“0.1.0”,“0.1.1”,“0.1.2”,“0.1.3”,“0.1.4”] npm错误!在installTargetsError(C:\Program Files(x86)\nodejs\node_modules\ S:698:17) npm错误!在C:\Program Files(x86)\nodejs\node_module\npm\lib\c

  • 似乎Gradle zipAligns任务对我不起作用,不确定我做错了什么。我尝试过包含zipAligns任务,也尝试过不包含它,但似乎没有什么不同。我的gradle脚本吐出了一个“发布”版本,但当我尝试上传我的. apk时,它从来没有根据开发人员控制台进行压缩对齐。 这是我的构建脚本: 感谢您的帮助!

  • 我在我的Laravel项目中有这个ajax请求(这是一个简单的版本,但它正在工作): 当我在本地工作,我使用PHP工匠服务ajax调用工作,但当我部署到我的正式服没有(因为路径 /admin/lessons/addMember/licenseMemberId不是服务器中的完整路径)。最好的方法应该是走这条路线,但我不知道怎么走。这是路由表: 有没有办法在参数设置中使用laravel路线?如果没有,