azure-devops - 我有 yaml 管道,它将在 4 个区域中使用 tf 创建我的 az 资源(rg、vnet、aks ..)。使用相同的 piplin 我想在 2 个区域中创建 acr?
问题描述
我想在 2 个区域和其他 2 个要跳过的区域创建 acr?使用相同的 yaml 管道,我该如何实现?
像这样,我正在创建 acr
# ---- create new resource group account
resource "azurerm_resource_group" "rg" {
name = var.resource_group_name
location = var.location
}
resource "azurerm_container_registry" "acr" {
name = var.azurerm_container_name
resource_group_name = var.resource_group_name
location = var.location
sku = var.sku
admin_enabled = var.admin_enabled
georeplication_locations = var.georeplication_locations
}
解决方案
count
使用andlist
变量很容易解决您的问题,或者您可以使用for_each
它来解决它。
计数并列出:
variable "regions" {
default = [
"West US",
"East US"
]
}
variable "acr_names" {
default = [
"acr_west",
"acr_east"
]
}
resource "azurerm_container_registry" "acr" {
count = 2
name = element(var.acr_names, count.index)
resource_group_name = var.resource_group_name
location = element(var.regions, count.index)
sku = var.sku
admin_enabled = var.admin_enabled
georeplication_locations = var.georeplication_locations
}
For_each:
variable "acrs" {
default = {
acr_west = "West US",
acr_east = "East US"
}
resource "azurerm_container_registry" "acr" {
for_each = var.acrs
name = each.key
resource_group_name = var.resource_group_name
location = each.value
sku = var.sku
admin_enabled = var.admin_enabled
georeplication_locations = var.georeplication_locations
}
选择一个你喜欢的来解决问题。
推荐阅读
- mysql - Docker compose:输入密码访问被拒绝错误或无效文件错误
- css - text-overflow:非文本元素的省略号
- vb.net - 从应用程序中隐藏类库枚举
- python - Python在目录中的所有文件中逐行更改字符串
- react-native - 如何通过具有状态的视图传递函数?
- regex - 如果锚点 href 值以“#”开头,则 Perl 正则表达式将跳过
- excel - 循环遍历多个层以填充相应的文本框/组合框
- groovy - 使用 Groovy 编写脚本的 Jenkins 流水线如何工作
- excel - Excel 图表与类别斧头上的时间值或数字
- javascript - Braintree Venmo 支付 Ionic 4 Webview