【发布时间】:2017-11-16 07:05:19
【问题描述】:
我正在使用 AWS API Gateway 和 AWS Lambda 构建 API。我想实现这个 API 的持续交付。我选择这样做的路径是通过 AWS CodePipeline 使用 CloudFormation。我已经设法将它用于另一个使用 Lambdas(没有 API 网关)的项目,它运行良好,使用起来非常愉快。
我在部署时面临的问题是 Lambda 已正确更新,但 API 定义未正确更新。据我了解,AWS::ApiGateway::Deployment 是不可变资源,这意味着对于 API 的每次部署,我都需要创建一个新的 AWS::ApiGateway::Deployment 资源。这根本不切实际,因为对于每个 AWS::ApiGateway::Deployment 我都有一个新的调用 URL。这是不可接受的,因为我必须将我的 DNS 记录更改为新部署的 API 调用 URL,或者要求我们的 API 用户更改其应用程序中的 URL。
我希望能够更改 API 定义和 Lambdas 实现,而无需我的 API 用户更改其应用程序中的任何内容。
我怎样才能实现这种行为?
我创建了一个教程来突出我的问题。您可以在以下位置找到它:https://github.com/JonathanGailliez/aws-api-gateway-lambda-example
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway amazon-cloudformation aws-codepipeline