使用Bicep为Web应用部署Hybrid Connection时遇必填参数缺失问题
缺失参数取值规则
- resourceType:固定取值为
Microsoft.Relay/namespaces,代表绑定的后端资源为Azure中继命名空间 - resourceConnectionString:填写中继命名空间的根级别共享访问密钥连接字符串,注意区别于混合连接实体的连接字符串,密钥权限至少包含监听权限
- biztalkUri:仅用于旧版BizTalk混合连接场景,使用Azure Relay混合连接时直接填空字符串
""即可
手动配置参数获取方法
如果已经在Azure Portal完成过混合连接配置,可直接运行Azure CLI命令获取所有配置项的实际取值,无需手动拼接:
az webapp hybrid-connection list --name <Web应用名称> --resource-group <Web应用所在资源组名>
命令返回结果中会包含所有必填参数的有效值,直接复制到Bicep配置中即可。
修正后Bicep示例
resource webappHcm 'Microsoft.Web/sites/hybridconnection@2021-02-01' = { name: 'hcm' parent: webapp properties: { entityConnectionString: 'Endpoint=sb://xxxxxxx.servicebus.windows.net/;SharedAccessKeyName=defaultListener;SharedAccessKey=XXXXXXXXXXX;EntityPath=xxxxxxxxxxxxxxx' entityName: 'xxxxxxxxxxxxxxxxx' hostname: 'xxxxxxxxxxxxxxxxx.hostname.internal' port: 12345 resourceType: 'Microsoft.Relay/namespaces' resourceConnectionString: 'Endpoint=sb://xxxxxxx.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<中继命名空间根密钥值>' biztalkUri: '' } }
优化建议
避免硬编码敏感密钥的写法:可通过existing关键字引用已存在的中继命名空间资源,调用listKeys()方法动态获取访问密钥,无需明文写入配置文件。
内容的提问来源于stack exchange,提问作者Nuno
相关产品推荐
相关产品推荐

