如何获取预演槽中HTTP Trigger函数的URL或触发代码?
解决预演槽Function App触发URL获取问题
你遇到的问题核心是资源类型指向错误——原来的模板里调用listSecrets时,用的是生产槽的函数资源路径,自然拿不到预演槽的触发URL。
预演槽的函数资源属于Microsoft.Web/sites/slots/functions类型,而非生产槽的Microsoft.Web/sites/functions。你需要调整resourceId的参数,明确指定预演槽名称,才能正确获取对应槽的函数触发URL。
修改后的模板代码
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "functionAppName": { "defaultValue": "functionAppName", "type": "string" } }, "resources": [ { "type": "Microsoft.Web/sites/slots", "name": "[concat(parameters('functionAppName'), '/staging')]", "apiVersion": "2016-08-01", "location": "West Europe", "properties": { "siteConfig": { "appSettings": [ { "name": "PostUrl", "value": "[listSecrets(resourceId('Microsoft.Web/sites/slots/functions', parameters('functionAppName'), 'staging', 'RequestName'), '2015-08-01').trigger_url]" } ] } } } ] }
关键修改点
- 资源类型从
Microsoft.Web/sites/functions改为Microsoft.Web/sites/slots/functions,明确指向槽级别的函数资源 resourceId的参数顺序调整为:functionAppName(函数应用名)、staging(槽名称)、RequestName(函数名称)
这样修改后,listSecrets就会针对预演槽的RequestName函数获取触发URL,赋值给PostUrl应用设置了。
内容的提问来源于stack exchange,提问作者jperez
相关产品推荐
相关产品推荐

