繁体   English   中英

如何将已创建(通过 web 控制台)服务导出到本地 CDK 并能够部署/更新它们?

[英]How to export already created (via web console) services to CDK locally and be able to deploy/update them?

现在的情况:

我有一个 AWS API 网关引用一些 AWS Lambdas,一些 Lambdas 查询 DynamoDB 实例。

以上所有内容都是通过 AWS web 控制台手动创建和处理的。 没有 cloudformation 模板。


^ 我也希望能够使用 CDK 在本地拥有它:

我想应用一些健康的开发人员程序并在本地创建一个 CDK 文件系统,用于测试、管理部署、通过 GitHub 或 AWS 在该领域提供的任何内容(尚未涉及该部分)管理版本控制。

我注意到关于如何做到这一点的信息为 0%。 大多数教程遵循以下情况:

  1. 我正在本地从头开始创建一个 cdk
  2. 或者已经有一个cloudformation结构。

请帮我想出最好的方法来做到这一点。 一些出现但实际上没有做的事情:

  • 我是否只是初始化一个与我当前服务相同的 cdk 和名称服务来“接管它们”?
  • 或者他们会被重写(=彻底的灾难)。
  • 有没有办法为我目前拥有的每项服务导出代码示例并将它们相互连接?

您必须将现有资源导入 CDK。

https://link.medium.com/1RbcEdal4wb

TL;DR使用cdk import获取支持的资源。 从导出的 OpenApi 定义重新创建 RestApi。


cdk import

CDK 具有实验性的导入功能,可以将现有的控制台创建的资源置于 CDK 管理之下。 cdk import CLI 命令搭载了相关的 CloudFormation 资源导入操作。

并非所有资源都支持导入操作 支持AWS::Lambda::FunctionAWS::DynamoDB::Table资源。 您还必须考虑辅助资源,例如 Lambda 的执行角色(支持导入AWS::IAM::Role )。

资源导入从手动配置与现有云端配置相匹配的 CDK 堆栈开始。 为了指导您的工作,例如,在 CDK 中重新创建dynamodb.Table ,请考虑运行DescribeTable API 以获取当前配置的转储。 由于涉及手动工作,将导入的精力集中在有状态资源上并考虑简单地销毁和重建无状态资源是明智的。

应用程序完成后,运行cdk import命令。 之后,可以像修改任何其他 CDK 资源一样修改导入的资源。

来自导出的 OpenApi 定义的 CDK RestApi

AWS::ApiGateway::RestApi不在 import 1支持的资源列表中。 Api 网关的 B 计划是将 API 导出为 OpenAPI 定义2 然后使用ApiDefinition.fromAsset方法将 JSON 作为 API 定义传递给 CDK RestApi 构造。 这将创建一个新的 API,而不是导入它本身。


  1. 虽然RestApi资源本身不支持导入,但是很多相关的AWS::ApiGateway资源是支持导入的,比如Resource, Stage, Model和Method。
  2. 请参阅 AWS 如何在 AWS 账户或区域之间迁移 API 网关 REST API? 对于非 CDK 用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM