API Gateway に AWS CLI でタグを追加する方法を教えてください

困っていた内容

マネージメントコンソール上からは API Gateway にタグ付けができました。
一方で、AWS CLI でステージ単位や API 単位でのタグ付けする方法がわかりません。
実行するコマンドを教えてください。

どう対応すればいいの?

tag-resource を利用することでタグの追加が可能です。

なお、REST API については、V1 の tag-resource を利用してください。
Websocket API や HTTP API については、V2 の tag-resource にてタグ付けを行うことができます。

--resource-arn に指定するパラメータは、以下のドキュメントのフォーマットに従って記述ください。

API Gateway Amazon リソースネーム (ARN) リファレンス - Amazon API Gateway

ダグ追加方法

タグ付けを行う例を記載します。

REST API の場合

  • Stage 単位でタグ付け
$ aws apigateway tag-resource \
    --resource-arn arn:aws:apigateway:ap-northeast-1::/restapis/<API_ID>/stages/<STAGE_NAME> \
    --tags test=nakano1
  • API 単位でタグ付け
$ aws apigateway tag-resource \
    --resource-arn arn:aws:apigateway:ap-northeast-1::/restapis/<API_ID> \
    --tags test=nakanoa2

Websocket API, HTTP API の場合

  • Stage 単位でタグ付け
$ aws apigatewayv2 tag-resource \
    --resource-arn arn:aws:apigateway:ap-northeast-1::/apis/<API_ID>/stages/<STAGE_NAME> \
    --tags test=nakano3
  • API 単位でタグ付け
$ aws apigatewayv2 tag-resource \
    --resource-arn arn:aws:apigateway:ap-northeast-1::/apis/<API_ID> \
    --tags test=nakano4

制約

直接タグ付けできるリソースは以下の通りです。こちらのリソース以外にはタグ付けは行なえません。
そのため、Stage や API 単位でのタグ付けはできますが、メソッド単位でのタグ付けなどはできない仕様です。

直接タグ付けできるリソース

  • REST API の場合
    • ApiKey
    • ClientCertificate
    • DomainName
    • RestApi
    • Stage
    • UsagePlan
    • VpcLink
  • Websocket API, HTTP API の場合
    • Api
    • DomainName
    • Stage
    • VpcLink

参考資料