无服务器框架-获取用于测试的API网关URL

时间:2018-11-13 09:24:23

标签: amazon-cloudformation serverless-framework aws-serverless

我正在使用无服务器框架,并且希望能够在接受测试中引用我的API网关URL。

我的测试环境会定期销毁,然后重新创建,因此无法将URL硬编码到测试中。

我可以看到有reference API Gateway as an AWS environment variable种方法,但这并不能帮助我从本地获取测试的URL。

我希望cloudformation输出将在.serverless包中引用,并可以通过json进行访问,但这似乎并非如此。

您知道如何在验收测试文件中引用API网关URL吗?

注意:这些测试需要在AWS上运行,而不是使用本地服务器来模仿API网关

2 个答案:

答案 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 的资源部分。