適用対象: すべての API Management レベル
この記事では、Azure API Management ポリシー定義で ポリシー フラグメントを 作成して使用する方法について説明します。 ポリシー フラグメントは、1 つ以上の API Management ポリシー 構成を含む、一元的に管理された再利用可能な XML スニペットです。
ポリシー フラグメントは、ポリシーを一貫して構成し、XML コードを繰り返したり、再入力したりする必要なくポリシー定義を維持するのに役立ちます。
ポリシー フラグメント:
- 1 つ以上のポリシー構成を含む有効な XML である必要があります。
- 参照される ポリシーでサポートされている場合は、ポリシー式を含めることができます。
- include-fragment ポリシーを使用してポリシー定義に as-is 挿入されます。
制限事項:
- ポリシー フラグメントには、ポリシー セクション識別子 (
<inbound>
、<outbound>
など) や<base/>
要素を含めることはできません。 - 現在、ポリシー フラグメントでは別のポリシー フラグメントを入れ子にすることはできません。
- ポリシー フラグメントの最大サイズは 32 KB です。
前提条件
API Management インスタンスとバックエンド API がまだない場合は、次をご覧ください。
必須ではありませんが、1 つ以上のポリシー定義を 構成 することが必要な場合があります。 ポリシー フラグメントを作成するときに、これらの定義からポリシー要素をコピーできます。
API Management インスタンスに移動します。
Azure portal で、 API Management サービスを検索して選択します。
[API Management サービス] ページで、API Management インスタンスを選択します。
ポリシー フラグメントを作成する
API Management インスタンスの左側のウィンドウで、[API] で [ ポリシー フラグメント] を選択します。 [ ポリシー フラグメント ] ウィンドウで、[ + 作成] を選択します。
[ 新しいポリシー フラグメントの作成 ] ウィンドウで、 名前 を入力し、必要に応じてポリシー フラグメントの 説明 を入力します。 名前は、API Management インスタンス内で一意である必要があります。
名前の例: ForwardContext
XML ポリシー フラグメント エディターで、
<fragment>
タグと</fragment>
タグの間に 1 つ以上のポリシー XML 要素を入力するか貼り付けます。たとえば、次のフラグメントには、バックエンド サービスにコンテキスト情報を転送する
set-header
ポリシー構成が含まれています。 このフラグメントは受信ポリシー セクションに含まれます。 この例のポリシー式では、組み込みのcontext
変数にアクセスします。<fragment> <set-header name="x-request-context-data" exists-action="override"> <value>@(context.User.Id)</value> <value>@(context.Deployment.Region)</value> </set-header> </fragment>
[作成] を選択します フラグメントがポリシー フラグメントの一覧に追加されます。
ポリシー定義にフラグメントを含める
ポリシー定義にポリシー フラグメントを挿入するように include-fragment
ポリシーを使用します。 ポリシー定義の詳細については、「ポリシーの設定または編集」をご覧ください。
- フラグメント内の基になるポリシーが使用をサポートしている限り、フラグメントは任意のスコープと任意のポリシー セクションに含めることができます。
- ポリシー定義には、複数のポリシー フラグメントを含めることができます。
たとえば、受信ポリシー セクションに ForwardContext という名前のポリシー フラグメントを挿入します。
<policies>
<inbound>
<include-fragment fragment-id="ForwardContext" />
<base />
</inbound>
[...]
ヒント
ポリシー定義に表示される含まれているフラグメントの内容を確認するには、ポリシー エディターで [有効なポリシーの計算] を選択します。
ポリシー フラグメントを管理する
ポリシー フラグメントを作成した後は、そのプロパティを表示および更新したり、いつでも削除したりできます。
ポリシー フラグメントのプロパティを表示するには:
- API Management インスタンスの左側のウィンドウで、[API] で [ ポリシー フラグメント] を選択します。 フラグメントの名前を選択します。
- [概要] ページで、ポリシー ドキュメントの参照を確認し、フラグメントを含むポリシー定義を確かめます。
- [ プロパティ ] ページの [設定] で、ポリシー フラグメントの名前と説明を確認します。 名前を変更することはできません。
ポリシー フラグメントを編集するには:
- API Management インスタンスの左側のウィンドウで、[API] で [ ポリシー フラグメント] を選択します。 フラグメントの名前を選択します。
- [ 設定] で、[ ポリシー エディター] を選択します。
- フラグメント内のステートメントを更新し、[ 適用] を選択します。
注意
更新は、フラグメントが含まれるすべてのポリシー定義に影響します。
ポリシー フラグメントを削除するには:
- API Management インスタンスの左側のウィンドウで、[API] で [ ポリシー フラグメント] を選択します。 フラグメントの名前を選択します。
- フラグメントを含むポリシー定義に関するポリシー ドキュメントの参照を確認します。 フラグメントを削除する前に、すべてのポリシー定義からフラグメント参照を削除する必要があります。
- すべての参照が削除された後、[削除] を選択します。
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。
- チュートリアル:API を変換および保護する
- ポリシー ステートメントとその設定の完全な一覧については、ポリシー参照をご覧ください。
- ポリシー表現
- ポリシーの設定または編集
- ポリシー構成を再利用する
- ポリシー スニペットのリポジトリ
- ポリシープレイグラウンドリポジトリ
- Azure API Management ポリシー ツールキット
- ポリシーの作成、説明、トラブルシューティングを行う Copilot のサポートを受ける