Azure Bicep 模块:能否从单独的存储库中引用模块?

Azure Bicep Modules: Can modules be referenced from a separate repo?

使用 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 模块存储库,我引用它来创建资源。

存储库是一个 private 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 做类似的事情?我们正在尝试转移到二头肌。

我当然可以对Githeaders做同样的认证,但是我该如何处理这个模块呢?

本地

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

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: {
    .
    .
    .
  }
}

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

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

bicep 的 github 中有两个解决此问题的未解决问题:

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