使用az cli创建的服务连接不起作用

时间:2020-01-15 05:49:21

标签: azure automation azure-devops azure-cli

作为部署脚本的一部分,我想为给定的azure devops项目自动创建服务连接。我调查了Terraform,但尚不支持。 ARM模板也没有任何服务连接。

https://docs.microsoft.com/en-us/azure/devops/cli/service_endpoint?view=azure-devops

此链接中有一些有关如何操作的注释。我已经按照链接所述捕获了发布请求正文,并将其存储在 config.json 文件

我正在运行以下命令来创建服务原理。

az devops service-endpoint create --service-endpoint-configuration config.json --organization "https://dev.azure.com/ojaskale" --project "Test Project"

这确实创建了服务连接,但是此连接不起作用。如果我从控制台创建服务原理,它将按预期工作。

我收到以下错误消息。

管道无效。作业构建:步骤Docker输入 containerRegistry引用服务连接 找不到 acrserviceconnectiontest 。服务 连接不存在或尚未被授权使用。对于 授权详细信息,请参阅https://aka.ms/yamlauthz

我可以在build.yml中看到 acrserviceconnectiontest

Azure准则说,我需要复制发帖请求正文并填写所需的详细信息。帖子正文默认情况下没有 servicePrincipalId 。我做了一些研究,发现自己需要创建一个角色并为其分配角色。这里提供了两个脚本,我正在关注这些脚本。

https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal

一旦创建了服务原理,我就会得到以下输出。

服务主体ID:xxxxxxxxxxxxxxxxxxxxxxxxxx
服务主体密码:xxxxxxxxxxxxxxxxxxxxxxxxxx

我已经尝试了两个方法来代替 servicePrincipalId ,但是它们似乎都不起作用。

工作服务连接的

服务原理ID与我使用cli创建的服务原理ID不同。

我认为我已经非常接近使其工作了,因为我可以看到正在创建服务连接,但是它不起作用。有人可以指出我所缺少或做错的事情吗?谢谢。

1 个答案:

答案 0 :(得分:0)

对于您引用的服务连接,您应该使用config.json中name属性下的任何内容