API Gateway のカスタムドメインの API マッピング作成時にステージの入力を省略するには

API Gateway のカスタムドメインの API マッピング作成時にステージの入力を省略したい

API Gateway でカスタムドメインを利用するにあたって API マッピング設定が必要です。
通常、API マッピングは以下のように最低限「利用する API」と「API ステージ」を選択します。

ステージ指定済み

一方で、「API ステージ」を複数作成していて、それぞれにドメインを指定するのが大変などの理由から、「API ステージ」の入力を省略することで、「API ステージ」を API リクエストの URL の一部として指定したい場合があります。
しかし、API Gateway コンソールで「API ステージ」を指定せずに作成しようとするとエラーになります。

エラー

API Gateway のカスタムドメインの API マッピング作成時にステージの入力を省略する方法

AWS CLI を使う

結論から言うと、AWS CLI を利用することで、「API ステージ」を省略した API マッピング設定が可能です。

コマンド例(--base-path は省略可能です。)
Copied!
aws apigateway create-base-path-mapping --domain-name <カスタムドメイン名> --rest-api-id <API ID>  --base-path <ベースパス>

上記コマンド実行後に API Gateway コンソールを確認してみると「API ステージ」が省略された API マッピング設定が確認できます。

ステージ省略済み

実際にカスタムドメインに対して「API ステージ」を指定して API を実行できることも確認できます。

prodがステージ名になります
Copied!
curl --request GET --url https://sample.com/prod/pets/1
{"id": 1,"type": "dog","price": 249.99}