ingress Essence of API management Facade Hide backends from frontends Move backends without impacting frontends Re-architect backends without impact on frontends Expose a subset of backend capabilities Aggregate or slice backends into APIs Modernize legacy backends Decouple frontend developers with mocks Route Authenticate Authorize Throttle Transform Trace Meter Discover APIs Learn how to use APIs Try APIs without writing any code Request and receive access to APIs Download API specs, samples, and SDKs Interact with the API provider Get usage reports
サービスや言語を使用し て、実際の機能やデータを提供 する API を構築 既存の API を利用する、ある いは APIM 登録用のラッパー API の実装などを行う場合も ある API 開発者 API 利用者に提供されるインタ フェースや製品としての登録な どを行う バージョニング、セキュリティ設 定、負荷分散、ロギングなどの 付加価値を実装 API 利用時のキー発行などア クセス制御を行う API 管理者 API 管理者 アプリ開発者 開発者ポータルを使用して、 API 仕様の確認や動作確認を 行う サブスクリプション作成し、開発 するクライアントアプリに API を組み込む API の使用量や正常性などを 監視、API/アプリ開発者に フィードバックを行う 必要に応じてスケールアウトな どの運用対処を実施 バージョン アップ 機能追加、バグ修正、性能向上 などの各種アップグレードを行 う 新バージョンの登録、並行稼働 運用の開始 必要に応じて API バージョン アップに応じたクライアントアプ リのアップグレードを行う 新旧バージョンの利用状態の 把握や必要に応じて旧バージョ ンの停止などを行う
OpenAPI 仕様で実装された API への呼び出しを中継する場合、基本的に APIM で 管理すべき API 定義も同じものになるため 単純な中継でなくとも、API 定義の保守・運用に一般的なツールが利用可能になり、 ソース 管理できるメリットもあるため OpenAPI 仕様による管理は検討しておくとよい 14 API 仕様 API Provider API Consumer API Management
の保護、URL R ewrite、キャッシュ、モック応答、etc… 16 global product api operation inbound outbound to backend from backend from caller to caller GET /foo/bar HTTP/1.1 Host: api.constoso.com Key: 0123456789 0123456789 /foo /bar CORS LOG RATE QUOTA JWT CACHE URL BODY
インスタンスが決まる パスとメソッドから API および Opearation が決まる 各スコープで設定されたポリシーがマージされて処理される 既定では All APIs 設定された forward-request ポリシーによって、各 API の Web service URL に転送される 18 API Management API Operation Operation API POST https://apimName.azure-api.net /api-name /operation-name ※ API の設定でサブスクリプションが必要に 設定されている場合には API キーも 送信する必要がある Web service URL https://backend.example.com POST https://backend.example.com /operation-name ※ ヘッダー、ボディ、クエリ文字列などは そのまま後ろに転送される
Product Group User Subscription Built-in: Guest, Developer, Admin Custom: native or Azure AD 1 1 many many many many API many many 1 1 many 1 0..1 many
24 Data plane Management plane API Apps on devices App developers Abstract and decouple Secure and protect Revise and version Monitor and measure Publish and monetize API providers Gateway ② アプリ開発とキーの組み込み ① サ ブ ス クリプ シ ョン と API キ ー の 発 行 ③ API キ ー を 使 用 した 呼 び 出 し ④ バ ックエ ンド API が 呼 び 出 され る
ip-filter ポリシーを利用する エグレス制御 : バックエンド API の Firewall で API-M の IP のみ許可する 55 Client Backend API API Gateway Ingress Egress Client の送信 IP を登録 API Management の送信 IP を登録 ※ 従量課金および V2 プランではサービスインスタンス専用のパブリック IP がないため設定できない Inbound ポリシー Azure API Management サービスの IP アドレ ス | Microsoft Learn
providers: Microsoft account Google account Facebook account Twitter account Delegated (custom) Azure AD Azure AD B2C App developers (use APIs) API providers Azure AD Role Based Access Control
認証ユーザー 自動的に参加する Developers グループに割り当てられた製品が表示される 各 API を表示するユーザーを絞り込みたい場合は、製品に対してカスタムグループを割り当てる 63 Product Group User Subscription 製品にグループを追加する API グループにユーザーを追加する
Zone 2 Zone 3 Zone 1 Availability Availability Availability Datacenter Datacenter Region 1 Region 2 Premium 以外は選択したリージョン内 のいずれかの場所に自動的に配置され る(可用性セットベース) Premium でも既定はこの構成 ゾーン冗長を有効にすることで内包する各ユニットを複 数ゾーンに対して分散配置することができる ゲートウェイだけでなく管理 API や開発者ポータルなど も冗長化され、ゾーン障害に対する回復性が向上する 複数リージョン配置を有効にすることで広域災害およびグローバル 負荷分散に対応し、リージョンの制限を超えたスケールアウトが可能 API は単一のURLでホストされるが最も近いリージョンに自動的に ルーティングされる セカンダリリージョンに配置されるのはゲートウェイ部分のみ Region 3