在通过PowerShell > ARM模板部署函数、应用程序和函数之前,我动态地获得一个服务总线连接字符串,并更新function.json文件中连接绑定中的值。然后部署函数应用程序和函数。
部署工作,但是函数应用程序返回一个错误消息:
'Endpoint=sb://sbname.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;Hidden Microsoft.Azure.WebJobs.ServiceBus: Microsoft SDK ServiceBus连接字符串ServiceBus凭证“丢失或空。
问题是:我们真的需要在函数应用程序上创建一个包含这个连接字符串的应用程序设置吗?除了使用应用程序设置之外,没有其他选择吗?
感觉就像将连接字符串存储在另一个位置,而不是在服务总线上,只会造成另一个漏洞。我知道我可以在"connection": "RootManageSharedAccessKey_SERVICEBUS"文件中定义function.json,然后用相同的名称创建一个应用程序设置,但这不是我想要的前进之路。
发布于 2022-04-23 02:33:44
请检查我的发现是否对有帮助
Service.可以使用Azure密钥库服务或Azure App Configuration ,而不是直接存储服务总线连接字符串
您可以在Vault. Azure密钥中存储诸如连接字符串、密钥-值对、客户端秘密、证书密码等机密值。
假设您已经将ServiceBus连接字符串存储在密钥库中。您希望通过应用程序设置在函数App中检索,但在应用程序设置中,您可以将其定义为:
"connection": @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/RootManageSharedAccessKey_SERVICEBUS/)任何其他用户都不能访问此KeyVault URI,除非为它们分配了系统或用户分配的托管标识权限。
,请参阅here
https://stackoverflow.com/questions/71969376
复制相似问题