4

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

我的测试环境经常被破坏然后重新创建,因此不可能将 URL 硬编码到测试中。

我可以看到有一些方法可以将API Gateway 引用为 AWS 环境变量,但这并不能帮助我在本地获取测试的 URL。

我希望 cloudformation 输出会在.serverless包中被引用,并且可以通过 json 访问,但情况似乎并非如此。

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

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

4

2 回答 2

1

serverless-plugin-test-helper插件可以在这里提供帮助。它将生成一个包含堆栈所有输出的 YAML 文件。这包括几个标准的 - 使用的 S3 存储桶 (ServerlessDeploymentBucketName) 和基本服务端点 (ServiceEndpoint)。

如果您使用的是 Node,并且您的测试与正在测试的堆栈位于同一目录中,那么还有一个模块可以读取此文件。否则,它只是标准的 YAML,您可以使用任何方便的工具。

于 2019-10-17T20:01:47.433 回答
0

考虑为您的 API 添加 APIGateway 自定义域。然后,您可以使用已知的 DNS 名称进行验收测试。

您需要将 ApiGateway 基本路径映射、apigateway 域名和 route53 记录集添加到serverless.yml.

于 2018-11-13T17:54:03.557 回答