繁体   English   中英

当在 yaml 管道配置中声明时,环境不会在 Azure Devops 中自动创建

[英]Environments are not automatically created in Azure Devops when declared in yaml pipeline config

我是 Azure Devops 的新手。 我希望在管道流期间自动创建 devops 管道环境。 因此,如果环境不存在,下面的第 5 行应该创建环境:

  - deployment: Deploy
    displayName: Deploy job
    pool:
      vmImage: $(vmImageName)
    environment: 'production'

相反,我得到:

我得到的错误

我错过了什么?

为了自动创建环境,我还可以使用 Terraform,但这次我找不到负责该操作的 terraform 资源配置。

我有一个类似的问题,发现文档列出了为什么会发生这种情况的一些可能原因:

引用自learn.microsoft.com

问:为什么我会收到错误消息“作业 XXXX:找不到环境 XXXX。环境不存在或未被授权使用”?

A:以下是一些可能的失败原因:

  • 当您创作 YAML 管道并引用 YAML 文件中不存在的环境时,Azure 管道在某些情况下会自动创建环境:

    • 您在 Azure 管道 web 体验中使用 YAML 管道创建向导并引用尚未创建的环境。
    • 您使用 Azure 管道 web 编辑器更新 YAML 文件,并在添加对不存在的环境的引用后保存管道。
  • 在以下流程中,Azure Pipelines 没有关于创建环境的用户的信息:您使用另一个外部代码编辑器更新 YAML 文件,添加对不存在的环境的引用,然后导致手动或持续集成管道以被触发。 在这种情况下,Azure Pipelines 不知道用户。 以前,我们通过将所有项目贡献者添加到环境的管理员角色来处理这种情况。 然后项目的任何成员都可以更改这些权限并阻止其他人访问环境。

  • 如果您使用运行时参数来创建环境,它将失败,因为这些参数会在运行时扩展。 环境创建发生在编译时,因此我们必须使用变量来创建环境。

  • 具有利益相关者访问级别的用户无法创建环境,因为利益相关者无法访问存储库。

在我们的例子中,问题在于使用运行时参数来创建环境。 您对环境名称“生产”进行了硬编码,因此您的问题可能与其他情况之一有关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM