Azure Function App Config 的 Key Vault 参考无法正常工作
Key Vault Reference for Azure Function App Config not working properly
我正在使用 Terraform 来配置 Function App,并提供了一些引用 Key Vault 密钥的应用配置。
但是当我尝试引用:“AzureWebJobsStorage”和“AzureWebJobsDashboard”时,它不会从 KV 中选择引用,而是将它们作为 App服务配置。其他配置取自 KV 参考,如屏幕截图所示。知道为什么这不被视为 KV 参考
我的Func App配置的TF代码如下所示:
app_settings = {
"WEBSITE_DNS_SERVER" = "168.63.129.16"
"WEBSITE_VNET_ROUTE_ALL" = "1"
"APPINSIGHTS_INSTRUMENTATIONKEY" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=appi-default-func-instrumentation-key)", module.key-vault.key_vault.self.name)
"APPLICATIONINSIGHTS_CONNECTION_STRING" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=appi-func-connection-string)", module.key-vault.key_vault.self.name)
"WEBSITE_ENABLE_SYNC_UPDATE_SITE" = "true"
"WEBSITE_RUN_FROM_PACKAGE" = "1"
"AzureWebJobsStorage" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=StorageAccount-FunctionApp-ConnectionString-PrimaryKey)", module.key-vault.key_vault.self.name)
"AzureWebJobsDashboard" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=StorageAccount-FunctionApp-ConnectionString-PrimaryKey)", module.key-vault.key_vault.self.name)
"applicationStorage" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=StorageAccount-FunctionApp-ConnectionString-PrimaryKey)", module.key-vault.key_vault.self.name)
"Func-App-ID" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=Function-App-ID)", module.key-vault.key_vault.self.name)
"Func-App-Secret" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=Function-App-Secret)", module.key-vault.key_vault.self.name)
}
附上我的功能应用程序配置的屏幕截图
Azure Functions 运行时使用 AzureWebJobsStorage 连接字符串创建内部队列
未启用 Application Insights 时,运行时使用 AzureWebJobsDashboard 连接字符串登录到 Azure Table 存储并为门户中的“监视器”选项卡供电
AzureWebJobsStorage 和 AzureWebJobsDashboard 在创建 Azure Function App 时默认在应用程序设置中创建
因此,这些创建为 App Service Config as Source
创建 Function App 后,您可以将 AzureWebJobsStorage 和 AzureWebJobsDashboard 的值编辑为密钥保管库机密
然后将使用 Key Vault Reference as Source
更改值
我正在使用 Terraform 来配置 Function App,并提供了一些引用 Key Vault 密钥的应用配置。 但是当我尝试引用:“AzureWebJobsStorage”和“AzureWebJobsDashboard”时,它不会从 KV 中选择引用,而是将它们作为 App服务配置。其他配置取自 KV 参考,如屏幕截图所示。知道为什么这不被视为 KV 参考
我的Func App配置的TF代码如下所示:
app_settings = {
"WEBSITE_DNS_SERVER" = "168.63.129.16"
"WEBSITE_VNET_ROUTE_ALL" = "1"
"APPINSIGHTS_INSTRUMENTATIONKEY" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=appi-default-func-instrumentation-key)", module.key-vault.key_vault.self.name)
"APPLICATIONINSIGHTS_CONNECTION_STRING" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=appi-func-connection-string)", module.key-vault.key_vault.self.name)
"WEBSITE_ENABLE_SYNC_UPDATE_SITE" = "true"
"WEBSITE_RUN_FROM_PACKAGE" = "1"
"AzureWebJobsStorage" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=StorageAccount-FunctionApp-ConnectionString-PrimaryKey)", module.key-vault.key_vault.self.name)
"AzureWebJobsDashboard" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=StorageAccount-FunctionApp-ConnectionString-PrimaryKey)", module.key-vault.key_vault.self.name)
"applicationStorage" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=StorageAccount-FunctionApp-ConnectionString-PrimaryKey)", module.key-vault.key_vault.self.name)
"Func-App-ID" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=Function-App-ID)", module.key-vault.key_vault.self.name)
"Func-App-Secret" = format("@Microsoft.KeyVault(VaultName=%s;SecretName=Function-App-Secret)", module.key-vault.key_vault.self.name)
}
附上我的功能应用程序配置的屏幕截图
Azure Functions 运行时使用 AzureWebJobsStorage 连接字符串创建内部队列
未启用 Application Insights 时,运行时使用 AzureWebJobsDashboard 连接字符串登录到 Azure Table 存储并为门户中的“监视器”选项卡供电
AzureWebJobsStorage 和 AzureWebJobsDashboard 在创建 Azure Function App 时默认在应用程序设置中创建
因此,这些创建为 App Service Config as Source
创建 Function App 后,您可以将 AzureWebJobsStorage 和 AzureWebJobsDashboard 的值编辑为密钥保管库机密
然后将使用 Key Vault Reference as Source
更改值