我想对我的无服务器项目执行自动集成测试。为此,我需要以某种方式获取 api 端点。已经有插件 serverless-stack-output用于服务于该目的的无服务器框架。但我想知道在部署应用程序后如何通过 AWS SAM 实现类似的目标?
同时,如果我能够以某种方式获取我的 api 基本 url 以及各个端点,那么我就能够连接它们并对它们执行测试。
由于 AWS SAM 基于 AWS CloudFormation 构建,因此您可以使用云阵的Outputs-feature.
如何定义此类输出非常简单。您可以例如参考“你好世界”模板在 SAM 模板存储库中。相关部分是输出的定义:
Outputs:
HelloWorldApi:
Description: "API Gateway endpoint URL for Prod stage for Hello World function"
Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
在部署 CloudFormation 堆栈后,您仍然需要一种方法来获取输出。为此,您可以例如使用 AWS CLI:
aws cloudformation describe-stacks --stack-name mystack \
--query 'Stacks[0].Outputs[?OutputKey==`HelloWorldApi`].OutputValue' \
--output text
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)