AWS Lambda/SAM:如何从 CLI 获取调用 URI?
AWS Lambda / SAM: How to get invocation URI from CLI?
作为 AWS SAM 模板的一部分,我有一个带有 HttpPost 事件触发器的函数。因为我使用的是 AWS SAM 转换,所以我没有明确声明创建的 API 网关来路由此 http post 以触发该函数。鉴于此,是否有任何方法可以引用生成的 URL 端点,例如在堆栈输出或 describe-stack-resources
中,以便我可以通过编程方式获取函数的调用 URL?我知道我可以通过导航到控制台中的堆栈、找到 ApiGateway 资源并随机单击直到其中一个页面显示它来获取端点。但我想要一种我的应用程序代码可以重现的方法。
供参考的缩短模板:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
SendJobUpdateFunction:
Type: AWS::Serverless::Function
Properties:
...
Runtime: nodejs10.x
Events:
HttpPost:
Type: Api
Properties:
Path: '/jobs'
Method: post
...
我目前正在使用 sam
CLI 进行部署,我认为它的语法与 aws cloudformtion
.
非常相似
根据documentation and ,您可以通过以下方式获取:
!Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/${Stage}"
其中 ${Stage}
是您自己的包含已部署阶段的参数。
作为 AWS SAM 模板的一部分,我有一个带有 HttpPost 事件触发器的函数。因为我使用的是 AWS SAM 转换,所以我没有明确声明创建的 API 网关来路由此 http post 以触发该函数。鉴于此,是否有任何方法可以引用生成的 URL 端点,例如在堆栈输出或 describe-stack-resources
中,以便我可以通过编程方式获取函数的调用 URL?我知道我可以通过导航到控制台中的堆栈、找到 ApiGateway 资源并随机单击直到其中一个页面显示它来获取端点。但我想要一种我的应用程序代码可以重现的方法。
供参考的缩短模板:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
SendJobUpdateFunction:
Type: AWS::Serverless::Function
Properties:
...
Runtime: nodejs10.x
Events:
HttpPost:
Type: Api
Properties:
Path: '/jobs'
Method: post
...
我目前正在使用 sam
CLI 进行部署,我认为它的语法与 aws cloudformtion
.
根据documentation and
!Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/${Stage}"
其中 ${Stage}
是您自己的包含已部署阶段的参数。