我有一个Azure函数应用程序,在URL上有一个函数
http://localhost:7072/api/create-room
以及其他功能。这个特殊的函数是
HTTPTrigger
允许匿名访问并接受
GET
动词:
[HttpTrigger(AuthorizationLevel.Anonymous, "get")]
proxies.json
文件,仅用作函数代理。我的代理功能正在端口上运行
7071
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"chatNegotiate": {
"matchCondition": {
"route": "/api/chat/negotiate",
"methods": [
"POST"
]
},
"backendUri": "%chat_api%/api/BeginNegotiate"
},
"chatMessages": {
"matchCondition": {
"route": "/api/chat/messages",
"methods": [
"POST"
]
},
"backendUri": "%chat_api%/api/PostMessage"
},
"createRoom": {
"matchCondition": {
"route": "/api/create-room",
"methods": [
"GET"
]
},
"backendUri": "%session_api%/api/CreateRoom"
}
}
}
当这两个功能应用程序都部署到Azure时,一切都像做梦一样工作。我可以提出请求,它们被转发,请求被回复。一切都很光荣。
但是,当我在本地运行这些函数时,请求永远不会从代理转发,代理返回404。我可以点击在本地运行的其他函数应用程序上的函数
7072
代理本身返回:
[30/05/2020 18:24:30] Host lock lease acquired by instance ID '0000000000000000000000002D5B6BEA'.
[30/05/2020 18:24:34] Executing HTTP request: {
[30/05/2020 18:24:34] "requestId": "9004b8e2-f208-4a98-8b48-6f85bca41281",
[30/05/2020 18:24:34] "method": "GET",
[30/05/2020 18:24:34] "uri": "/api/create-room"
[30/05/2020 18:24:34] }
[30/05/2020 18:24:34] Executed HTTP request: {
[30/05/2020 18:24:34] "requestId": "9004b8e2-f208-4a98-8b48-6f85bca41281",
[30/05/2020 18:24:34] "method": "GET",
[30/05/2020 18:24:34] "uri": "/api/create-room",
[30/05/2020 18:24:34] "identities": [],
[30/05/2020 18:24:34] "status": 404,
[30/05/2020 18:24:34] "duration": 15
[30/05/2020 18:24:34] }
https://chsakell.com/2019/02/03/azure-functions-proxies-in-action/
,这应该可以正常工作。