API Management で API を公開しポリシーを適用する

Consumption レベルの API Management を作成し、公開バックエンド httpbin を API として公開します。サブスクリプションキーによる保護からレート制限ポリシー(429 応答)の確認まで、AZ-204 で問われる API 公開の基本を一通り体験します。

中級50Azure 実環境

ラボ概要

Azure API Management(APIM)は、既存のバックエンド サービスの前段に「ゲートウェイ」を置き、認証・流量制御・変換などを一元的に適用できるサービスです。バックエンドのコードを一切変更せずに、サブスクリプションキーによるアクセス制御やレート制限を追加できる点が特徴で、AZ-204 では「API Management の実装」として頻出のテーマです。

このラボでは、数分で作成できるサーバーレスの Consumption(従量課金)レベルの APIM インスタンスを作成し、インターネット上の公開テスト用バックエンド(httpbin.org)を API として定義します。その後、サブスクリプションキーなしのリクエストが 401 で拒否されること、キー付きなら 200 が返ることを確認し、最後に rate-limit ポリシーを適用して、制限を超えたリクエストが 429 Too Many Requests になる様子を実際に観察します。

ポリシーは XML で記述され、inbound / backend / outbound / on-error の各セクションに配置します。今回は inbound セクションに rate-limit を入れますが、Consumption レベルでは rate-limit-by-key が使えないなど、レベル(ティア)ごとの機能差も試験でよく問われるポイントです。手順の中で合わせて確認していきます。

学習目標

  • Consumption レベルの API Management インスタンスを Azure CLI で作成できる
  • 既存の公開バックエンドを APIM 上の API として定義し、オペレーションを追加できる
  • サブスクリプションキー(Ocp-Apim-Subscription-Key ヘッダー)によるアクセス制御の動作を説明できる
  • rate-limit ポリシーを API スコープに適用し、429 応答を確認できる
  • Consumption レベルで使用できるポリシーの制約(rate-limit-by-key 不可など)を説明できる

前提

  • Azure ポータルにサインイン済みであること
  • リソースはすべて japaneast(東日本) リージョンに作成すること
  • 作業はすべて割り当て済みのリソースグループ 1 つの中で行います(新しいリソースグループの作成、サブスクリプション設定の変更はできません)

ラボの構成

  1. 1Cloud Shell を起動して変数を準備する
  2. 2API Management インスタンス(Consumption)を作成する
  3. 3公開バックエンドを API として定義する
  4. 4オペレーションを追加する
  5. 5サブスクリプションキーを取得する
  6. 6サブスクリプションキーの動作を確認する
  7. 7レート制限ポリシーを適用する
  8. 8レート制限(429)の動作を確認する
  9. 9動作確認
  10. 10完了チェックリスト
  11. 11後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

参考リソース