如何在 AWS 账户或区域之间迁移 API Gateway 的 REST API?

上次更新日期:2021 年 10 月 6 日

我想在 AWS 账户或区域之间迁移我的 Amazon API Gateway 的 REST API。该如何操作?

简短描述

将 REST API 从 API Gateway 导出到 OpenAPI 2.0 (Swagger) 或 OpenAPI 3.0 定义文件。然后,将 API 导入另一个账户或区域中的 API Gateway。

重要提示:要导入 REST API,您还必须在目标账户或区域中重新创建集成的任何 API 资源。

解决方法

注意:如果您在运行 AWS Command Line Interface (AWS CLI) 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

使用 API Gateway 控制台或 AWS CLI 导出 API

使用 API Gateway 控制台导出 API

1.    在 API Gateway 控制台中,选择您的 API。

2.    将您的 API 部署到阶段

3.    在阶段编辑器窗格中,选择导出选项卡。

4.    对于导出为,选择 Swagger OpenAPI3

5.    根据您的使用案例,暂停以下操作之一:
导出为 Swagger + API Gateway 扩展
导出为 OpenAPI 3 + API Gateway 扩展

OpenAPI 的定义显示在控制台中。

6.    选择 JSONYAML 将 OpenAPI 定义下载为您首选的文件类型。

使用 AWS CLI 导出 API

运行以下 get-export 命令:

重要提示:更改命令选项 --parameters--export-type--accept 的值以匹配您的首选导出格式。

aws apigateway get-export --parameters extensions='integrations' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger --accept application/yaml /path/to/filename.yaml

有关更多信息,请参阅从 API Gateway 导出 REST API。另请参阅 get-export (AWS CLI 命令参考)。

在导出的 OpenAPI 定义中更新 API 资源的 Amazon 资源名称 (ARN)

将 OpenAPI 定义中 API 资源的 ARN 更改为 API 要迁移到的账户和区域中的资源 ARN。

具有 AWS Lambda 集成的 API 的 Swagger 模板示例片段

重要提示:要试用此片段,请替换 arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations 为目标账户中 Lambda 函数的 ARN。

"x-amazon-apigateway-integration": {
          "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations",
          "responses": {
            "default": {
              "statusCode": "200"
            }
          }

将 API 导入另一个账户或区域中的 API Gateway

使用 API Gateway 控制台导入 API

1.    在目标账户或区域中打开 API Gateway 控制台

2.    选择创建 API

3.    在 REST API 下,对于选择 API 类型,选择导入

4.    在从 Swagger 或 Open API 3 导入下,执行以下任一操作:
选择选择 Swagger 文件,然后选择已更新的 OpenAPI 定义文件。
– 或 –
将已更新的 OpenAPI 定义粘贴到文本编辑器字段中。

5.    在设置下,对于端点类型,根据您的使用案例选择以下选项之一:
区域性
边缘已优化

私有

6.    请选择出现警告时放弃,从而在导入期间出现错误或警告时停止导入。或者,选择忽略警告以导入 API,无论导入过程中是否存在错误或警告。

使用 AWS CLI 导入 API

1.    为目标账户或区域配置 AWS CLI

2.    运行以下 import-rest-api 命令:

$ aws apigateway import-rest-api --endpointConfigurationTypes 'REGIONAL' --fail-on-warnings --body 'file:/// path/to/filename.json'

有关更多信息,请参阅将 REST API 导入 API Gateway


这篇文章对您有帮助吗?


您是否需要账单或技术支持?