我按照这里的aws教程创建了一个aws lambda函数。https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html
使用sam cli部署应用程序后,输出显示api网关端点url。我想知道如何为已经使用命令行界面部署的函数检索此信息。
谢谢
不,那不可能。lambda没有URL
Api网关确实有一个公共URL,因为这是Api网关的重点,使内部函数(如lambdas)可以公开访问。如果您希望使现有的lambda可公开访问,可以将其合并到现有的Api Gateway中,或者将lambda作为目标设置一个新网关。要知道如何将集成到Api网关中,这个答案太多了,这里有成千上万的教程。
EDIT在注释中澄清后:
aws apigatewayv2 get-apis
输出示例:
{
"Items": [
{
"ApiEndpoint": "wss://ko1uatx3.execute-api.eu-north-1.amazonaws.com",
"ApiId": "ko1uatx3",
"ApiKeySelectionExpression": "$request.header.x-api-key",
"CreatedDate": "2021-07-07T08:54:13Z",
"Description": "Serverless Websockets",
"Name": "dev-scrum-estimation-serverless-websockets",
"ProtocolType": "WEBSOCKET",
"RouteSelectionExpression": "$request.body.action",
"Tags": {}
}
]
}
也许我不理解这个问题,但是对于任何来这里寻找API网关路径列表的人来说,您可以使用aws apigateway get-resources
从API网关中提取端点名称。将abcd1234
替换为API网关实例ID。
aws apigateway get-resources --rest-api-id abcd1234
如果您只需要URL名称,您可以使用jq之类的东西来提取path
属性:
aws apigateway get-resources --rest-api-id abcd1234 | jq '.items[ ] | .path'