Amazon cloudformation 无服务器框架-获取测试中使用的API网关URL

Amazon cloudformation 无服务器框架-获取测试中使用的API网关URL,amazon-cloudformation,serverless-framework,aws-serverless,Amazon Cloudformation,Serverless Framework,Aws Serverless,我使用的是无服务器框架,我希望能够在验收测试中引用API网关URL 我的测试环境经常被破坏然后重新创建,因此不可能将URL硬编码到测试中 我知道有很多方法,但这无助于我在本地获取测试的URL 我希望cloudformation输出可以在.serverless包中引用,并通过json访问,但事实似乎并非如此 知道如何在验收测试文件中引用API网关URL吗 注意:这些测试需要在AWS上运行,而不是使用本地服务器模拟API网关。请考虑为您的API添加一个API网关自定义域。然后,您可以使用已知的DNS

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

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

我知道有很多方法,但这无助于我在本地获取测试的URL

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

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


注意:这些测试需要在AWS上运行,而不是使用本地服务器模拟API网关。请考虑为您的API添加一个API网关自定义域。然后,您可以使用已知的DNS名称进行验收测试


您需要在
serverless.yml

的参考资料部分添加一个ApiGateway基本路径映射、ApiGateway域名和一个route53记录集,
serverless插件测试帮助程序可以在这里提供帮助。它将生成一个包含堆栈所有输出的YAML文件。这包括两个标准的存储桶—使用的S3存储桶(ServerlessDeploymentBucketName)和基本服务端点(ServiceEndpoint)


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

@Harshit_Raj-但这在本地测试中不起作用。像Ref和Fn::Join这样的函数似乎不在本地运行(而且可能无法运行,因为Ref在部署之前不存在)。只有在上传到AWS之后,它们才会被解析为实际的字符串。