如何使用Bicep输出新创建的Function App密钥
Bicep模块输出Function App密钥的实现方法
Bicep不会直接在Function App的资源属性列表中暴露密钥配置,你可以通过Azure资源原生的listKeys/listSecrets函数调用对应API获取,三种常用场景的实现方式如下:
1. 获取默认主机密钥(最常用,全局访问所有函数)
如果你的Function App资源的符号名为functionApp,直接在模块中添加如下输出即可:
output functionAppDefaultKey string = listKeys('${functionApp.id}/host/default', '2022-03-01').functionKeys.default
2. 获取单个函数的专属密钥
针对某个具体函数的独立访问密钥,替换示例中的<your-function-name>为实际函数名即可:
output specificFunctionKey string = listSecrets('${functionApp.id}/functions/<your-function-name>', '2022-03-01').key
3. 获取系统级主密钥(用于调用Durable Function等系统操作)
output systemMasterKey string = listKeys('${functionApp.id}/host/default', '2022-03-01').masterKey
注意事项
- 示例中的API版本
2022-03-01为通用稳定版,你可以根据实际使用的Azure Functions API版本调整 - 不需要额外配置权限,Bicep部署上下文默认拥有对应资源的密钥读取权限
- 若要避免密钥明文暴露在部署日志中,可给输出添加
@secure()装饰器:@secure() output functionAppDefaultKey string = listKeys('${functionApp.id}/host/default', '2022-03-01').functionKeys.default
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

