はじめに
どうも、@to-fmakです。最近GCPのAPI Gatewayを使ってAPI管理を始めたので、API更新方法についてメモ書き程度にまとめます。
注意事項
PoC段階のため、現在はIaCやCICDを導入していません。
APIの作成と更新手順
作成手順
- OpenAPI仕様の
openapi.yaml
を作成 - API Gatewayを作成
- API構成を作成し、
openapi.yaml
を指定 - APIをデプロイ
更新手順
- 新しいAPI構成を作成
- Gatewayを新しいAPI構成で更新
- 古いAPI構成を削除(オプション)
管理コンソールについて
現段階では、基本的にGCPの管理コンソールでリソース作成や更新を手動で行っています。ただし、新しいAPI構成の作成やGatewayの更新はコンソールからはできないため、CLIを使っています。
CLIによる更新手順
CloudShellを使って、以下のCLIコマンドでAPIを更新します。
# 新しいAPI構成の作成(古いAPI構成をsample-api-01とします)
gcloud api-gateway api-configs create sample-api-02 \
--api=sample-api \
--openapi-spec=sample.yaml \
--project=sample-pj
# Gatewayを新しいAPI構成で更新
gcloud api-gateway gateways update sample \
--api=sample-api \
--api-config=sample-api-02 \
--project=sample-pj \
--location=asia-northeast1
# 新しいAPI構成の確認(オプション)
gcloud api-gateway gateways describe sample \
--project=sample-pj \
--location=asia-northeast1
# 古いAPI構成の削除(オプション)
gcloud api-gateway api-configs delete sample-api-01 \
--api=sample-api \
--project=sample-pj
課題
今後はTerraform等のIaCツールでインフラのコード化し、CICD環境も整備していきたいと考えています。
参考URL
- https://cloud.google.com/api-gateway/docs/creating-api?hl=ja
- https://cloud.google.com/api-gateway/docs/creating-api-config?hl=ja
- https://cloud.google.com/api-gateway/docs/deploying-api?hl=ja
エンジニア募集
Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています!!
ぜひお気軽にカジュアル面談へお越しください!!