我正在使用无服务器框架,并且希望能够在接受测试中引用我的API网关URL。
我的测试环境会定期销毁,然后重新创建,因此无法将URL硬编码到测试中。
我可以看到有reference API Gateway as an AWS environment variable种方法,但这并不能帮助我从本地获取测试的URL。
我希望cloudformation输出将在.serverless
包中引用,并可以通过json进行访问,但这似乎并非如此。
您知道如何在验收测试文件中引用API网关URL吗?
注意:这些测试需要在AWS上运行,而不是使用本地服务器来模仿API网关
答案 0 :(得分:1)
serverless-plugin-test-helper
插件可以在这里提供帮助。它将生成一个YAML文件,其中包含堆栈的所有输出。这包括几个标准的标准-曾经使用过的S3存储桶(ServerlessDeploymentBucketName)和基本服务端点(ServiceEndpoint)。
如果您正在使用Node并将测试与要测试的堆栈放在同一目录中,那么还有一个模块可以读取此文件。否则,它只是标准的YAML,您可以使用任何方便的工具。
答案 1 :(得分:0)
请考虑为您的API添加APIGateway自定义域。然后,您可以使用已知的DNS名称进行接受测试。
您需要将ApiGateway基本路径映射,apigateway域名和route53记录集添加到 SESSION Action TIME step
0 1 action 0.1 1
1 1 result 0.2 1
2 2 action 0.1 2
3 2 result 0.2 2
4 3 action 0.3 3
5 3 result 0.4 3
7 1 action 0.3 4
8 1 result 0.4 4
12 3 action 0.6 6
13 3 result 0.7 6
14 4 action 0.8 7
15 4 result 0.9 7
的资源部分。