我计划在Azure App配置服务中使用功能管理功能。
使用二头肌,我创建配置存储。
使用二头肌,我添加了一个特征标志。
该值最初应该设置为false,一旦可用,则由业务/操作程序在Azure中将该值更改为true。
因此,我正在寻找一种在二头肌中有条件地创建特征标志的方法;如果不存在特性标志,则创建它。当二头肌已经存在时,它应该跳过创建,因为它可以覆盖/重置业务/操作更改的标志值。
我在GitHub上发现了这个问题,从中我得出结论,二头肌还不支持这个要求:https://github.com/Azure/bicep/issues/4023
有什么解决办法吗?
发布于 2022-04-26 02:11:42
除非在运行部署之前手动检查featureFlag是否存在,否则不能真正做到这一点。ARM模板(和Bicep)试图是幂等的,所以如果您多次应用相同的模板,它将重置任何手动更改。
下面是一个二头肌文件,它创建了一个配置存储和特性标志:
// main.bicep
param location string = resourceGroup().location
param configurationStoreName string
param featureFlagExists bool
param featureFlagName string
// Create the configuration store
resource configurationStore 'Microsoft.AppConfiguration/configurationStores@2021-10-01-preview' = {
name: configurationStoreName
location: location
sku: {
name: 'free'
}
properties: {
disableLocalAuth: false
enablePurgeProtection: false
encryption: {}
softDeleteRetentionInDays: 0
}
}
// Only create the feature flag if not exists
resource featureFlag 'Microsoft.AppConfiguration/configurationStores/keyValues@2021-10-01-preview' = if (!featureFlagExists) {
name: '.appconfig.featureflag~2F${featureFlagName}'
parent: configurationStore
properties: {
contentType: 'application/vnd.microsoft.appconfig.ff+json;charset=utf-8'
tags: {}
value: '{"id": "${featureFlagName}", "description": "", "enabled": false, "conditions": {"client_filters":[]}}'
}
}下面是一个调用它的示例powershell脚本:
$resourceGroupName = "<resource group name>"
$configurationStoreName = "<config store name>"
$featureFlagName = "<feature flag name>"
# Check if the app configuration exists
$appConfigExists = (az appconfig list `
--resource-group $resourceGroupName `
--query "[?name=='$configurationStoreName'].id" `
| ConvertFrom-Json).Length -gt 0
# Check if the feature flag exists
$featureFlagExists = $false
if ($appConfigExists) {
$featureFlagExists = (az appconfig kv list `
--name $configurationStoreName `
--query "[?key=='.appconfig.featureflag/$featureFlagName'].key" `
| ConvertFrom-Json).Length -gt 0
}
az deployment group create `
--resource-group $resourceGroupName `
--template-file .\main.bicep `
--parameters `
configurationStoreName=$configurationStoreName `
featureFlagExists=$featureFlagExists `
featureFlagName=$featureFlagNamehttps://stackoverflow.com/questions/72000069
复制相似问题