![](/img/trans.png)
[英]Azure Bicep giving InvalidTemplateDeployment error for Azure App Service Plan deployment
[英]How to get the host url of a linux app service in azure bicep deployment templates
我使用如下所示的二头肌资源创建了一个应用服务
name: '${appName}'
location: location
kind: 'linux,container,fnapp'
properties: {
serverFarmId: servicePlan.id
siteConfig: {
linuxFxVersion: 'DOCKER|${dockerLocation}'
healthCheckPath: '/api/healthcheck'
alwaysOn: true
appSettings: [
...
]
}
}
}
可以按预期工作,但是我想获取该应用服务的 url 以用作我的 apim 服务的后端 url。
我目前正在使用var fnAppUrl = 'https://${fnApp.name}.azurewebsites.net/api'
。 有什么方法可以从函数应用资源的直接输出中获取默认 url,即var fnAppUrl = fnApp.url
或类似的东西?
TIA
据我所知,您无法从该函数中获得直接的 url。 但是你可以使用类似的东西:
output functionBaseUrl string = 'https://${function.properties.defaultHostName}/api'
这将导致包含“azurewebsites.net”部分的默认主机名。
在此处查看template.bicep
中的完整示例: https ://github.com/DSpirit/azure-functions-bicep-outputs-host
这个基本路径没有特定的属性,因为它是通过在host.json
中配置extensions.http.routePrefix
的值来设置的。 (文档: https ://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook?tabs=in-process%2Cfunctionsv2&pivots=programming-language-csharp#hostjson-settings)
如果不需要/api
前缀,那么在 Bicep 文件中使用以下输出就足够了:
resource myFunctionApp 'Microsoft.Web/sites@2021-03-01' = {
// ...
}
output functionBaseUrl string = 'https://${myFunctionApp.properties.defaultHostName}'
然后在您的host.json
中确保 routePrefix 设置为空字符串:
{
"extensions": {
"http": {
"routePrefix": ""
}
}
}
如果您确实想使用路由前缀,则需要将其与默认主机名结合使用:
resource myFunctionApp 'Microsoft.Web/sites@2021-03-01' = {
// ...
}
output functionBaseUrl string = 'https://${myFunctionApp.properties.defaultHostName}/api'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.