AWS のアカウント間またはリージョン間で API Gateway REST API を移行するにはどうすればよいですか?

所要時間2分
0

AWS アカウントまたはリージョン間で Amazon API Gateway REST API を移行したいと考えています。どうすればよいですか?

簡単な説明

API Gateway から REST API を OpenAPI 2.0 (Swagger) または OpenAPI 3.0 定義ファイルにエクスポートします。次に、 別のアカウントまたはリージョンの API Gateway に API をインポートします。

重要: 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.    [Export as] で、[Swagger] または [OpenAPI3] を選択します。

5.    ユースケースに基づいて、次のいずれかで一時停止します。
Swagger + API Gateway 拡張機能としてエクスポート
OpenAPI 3 + API Gateway 拡張としてエクスポート

OpenAPI 定義がコンソールに表示されます。

6.    JSON または YAML を選択して 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 Gateway に API をインポートする

API Gateway コンソールを使用して API をインポートするには

1.    移行先のアカウントまたはリージョンで API Gateway コンソール を開きます。

2.    [API を作成] を選択します。

3.    [REST API] の [API タイプの選択] で、[インポート] を選択します。

4.    [Import from Swagger or Open API 3] で、次のいずれかを実行します。
[Select Swagger File] を選択し、更新された OpenAPI 定義ファイルを選択します。

  • または -
    更新された OpenAPI 定義をテキストエディタフィールドに貼り付けます。

5.    [設定] の [エンドポイントタイプ] で、ユースケースに基づいて次のいずれかを選択します。
リージョン
エッジ最適化

プライベート

6.    [Fail on warnings] は、インポート中にエラーまたは警告が出たときにインポートを中止する場合に選択します。または、[Ignore warnings] を選択して、インポート中にエラーまたは警告があるかどうかにかかわらず 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 にインポートする」を参照してください。


関連情報

チュートリアル: サンプルをインポートして REST API を作成する

コメントはありません

関連するコンテンツ