【发布时间】:2023-02-01 16:53:58
【问题描述】:
我正在创建一个将公开一些 API 的 Azure 函数。
.Net7,Azure Functions 版本 4,隔离。
主机.json:
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
},
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
}
}
本地设置.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"AzureWebJobsFeatureFlags": "EnableProxies",
"AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL": "true"
}
}
我添加了端点,添加了 swagger,一切正常。 现在我正在尝试用 swagger ui 替换欢迎页面。
我尝试了两种方法:
- 使用代理将
/路由到/swagger/ui。{ "$schema": "http://json.schemastore.org/proxies", "proxies": { "swagger": { "matchCondition": { "methods": [ "GET" ], "route": "/" }, "backendUri": "http://localhost:7071/swagger/ui" } } }- 使用代理重定向到
swagger/ui,所以当有人打开https://myapi.azurewebsites.net/而不是看到欢迎页面时,他将被重定向到https://myapi.azurewebsites.net/swagger/ui。
{ "$schema": "http://json.schemastore.org/proxies", "proxies": { "swagger": { "matchCondition": { "methods": [ "GET" ], "route": "/" }, "responseOverrides": { "response.statusCode": "302", "response.headers.Location": "https://myapi.azurewebsites.net/swagger/ui" } } } }这两种方法都可以正常工作,但只能在本地主机或 Azure 上使用。我无法让单个代理在两种环境下工作。
要让它在 Azure 上工作,我必须使用
https://myapi.azurewebsites.net/swagger/ui,要让它们在本地主机上工作,我必须使用http://localhost:7071/swagger/ui所以问题是:如何创建一个可在代理中使用的 URL,该 URL 将在本地主机(开发时)和 azure(部署时)上工作
- 使用代理重定向到
【问题讨论】:
标签: azure-functions swagger-ui