【问题标题】:Azure Bicep Modules: Can modules be referenced from a separate repo?Azure 二头肌模块:可以从单独的存储库中引用模块吗?
【发布时间】:2021-07-30 01:04:52
【问题描述】:

使用 Terraform 运行代码

我更熟悉 Terraform,我可以在其中执行以下操作:

module "storagemod" {
  source = "git::https://MyProj@dev.azure.com/MyProj/Dataplatform/_git/myrepo//storage-account?ref=v0.2.0"
  rg_name = "MyRG"
  resource_name = "mynewdatalake"
  .
  .
  .
}

上面引用的source 是一个不同的 Terraform 模块存储库,我引用它来创建资源。

存储库是我能够访问的 私有 Azure 存储库(在 Azure DevOps 上),因为我已经在管道的上一步中建立了 git 凭据:

steps:
  - task: PowerShell@2
    inputs:
      targetType: inline
      script: 'git config --global http.extraheader "AUTHORIZATION: bearer ${Env:SYSTEM_ACCESSTOKEN}"'
    displayName: 'Setting Git Authentication header'
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)

如何在二头肌中做到这一点?

如何使用 Azure Bicep 做类似的事情?我们正在尝试转移到二头肌。

当然,我可以对 Git 标头进行相同的身份验证,但是如何处理模块?

本地

如果它在同一个仓库中是本地的,我可以这样做:

module storagemod './storage/datalake.bicep' = {
  name: 'createDataLakeAndContainers'
  params: {
    .
    .
    .
  }
}

单独回购

我可以这样做吗?

module storagemod 'git::https://MyProj@dev.azure.com/MyProj/Dataplatform/_git/myrepo//storage-account?ref=v0.2.0' = {
  name: 'createDataLakeAndContainers'
  params: {
    .
    .
    .
  }
}

我无法让它工作,但我希望有这个功能,我只是语法错误。我找不到任何关于它的文档。

【问题讨论】:

    标签: azure terraform azure-pipelines azure-bicep


    【解决方案1】:

    这在二头肌中是不可能的(目前)。

    bicep 的 github 中有两个未解决的问题可以解决这个问题:

    目前唯一的方法是使用 git 子模块或使用一些自定义解决方案维护“远程”二头肌文件。

    【讨论】:

    • 感谢您的快速响应和详细参考!太糟糕了,它还没有准备好,但至少现在我订阅了这些问题。 :)
    • 二头肌注册表计划发布 0.5 版本,我认为该版本将在 9 月发布。敬请期待!
    猜你喜欢
    • 2022-10-13
    • 1970-01-01
    • 2022-10-13
    • 2022-06-20
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    相关资源
    最近更新 更多