Azure Bicep 模块:可以从单独的存储库引用模块吗?

Mik*_*son 3 azure terraform azure-pipelines azure-bicep

使用 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"
  .
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

其中source上面引用的是我用来创建资源的 Terraform 模块的不同存储库。

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

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"
  .
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

当地的

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

module storagemod './storage/datalake.bicep' = {
  name: 'createDataLakeAndContainers'
  params: {
    .
    .
    .
  }
}
Run Code Online (Sandbox Code Playgroud)

单独的回购协议

我可以做这样的事情吗?

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

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

Miq*_*Miq 6

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

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

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