ステップ 3: ExtensionCallout ポリシーを使用する

API プロキシを開発する際に拡張機能のサポートを追加するには、ExtensionCallout ポリシーをプロキシに追加します(単純なプロキシを作成する方法については、最初のプロキシの作成をご覧ください)。

拡張機能のサポートを追加するときに、構成済みの拡張機能に ExtensionCallout ポリシーを関連付けます。ポリシーを関連付けた拡張機能構成の設定で、拡張機能がその接続先のバックエンド リソースとどのようにやり取りするかを定義します。このように明示的に構成された拡張機能が、ExtensionCallout ポリシーによって API プロキシに統合されます。

API プロキシに拡張機能を追加するには:

  1. Apigee Edge コンソールの [Develop] ビューで、API プロキシを開きます。

    拡張機能を作成するには組織管理者である必要がありますが、拡張機能を API プロキシに追加する場合は、どのユーザー役割でもかまいません。

  2. [Navigator] ペインで [PreFlow] を選択します。

  3. ポリシーを追加するために、右上隅にある [+ Step] ボタンをクリックします。

  4. [Add Step] ダイアログで、左側に表示されているポリシーのリストで [Extension Callout] をクリックします。

    リスト内に ExtensionCallout ポリシーが表示されていない場合は、新しい Edge UI を使用していることを確認してください。また、現在のところ、Apigee の拡張機能は Apigee Edge Cloud Enterprise のお客様のみがご利用できます。

  5. 右側のペインで、次のオプションを選択してポリシーを構成します。
    フィールド 説明
    Display Name ポリシーの表示名を入力します。
    Name ポリシーをプログラムによって使用するための名前を入力します。これは、プロキシ内で一意でなければなりません。
    Extension 使用する拡張機能を選択します。これは、前に構成した拡張機能です。
    Actions 「log」アクションを選択します。
  6. [Add] をクリックします。
  7. フロービューで、ポリシーをクリックしてポリシーの構成 XML を表示します。

    拡張機能を追加すると、サンプル ポリシー XML が提供されます。この XML に、<Input> 要素の構成を構造化する方法を記述するスキーマが含まれています(<Output> 要素のスキーマは無視して構いません。拡張機能の「log」アクションによって返されるレスポンス本文はないためです)。

  8. ポリシー XML を編集して、次のような内容にします。
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-Beta-1">
          <DisplayName>Logging Extension</DisplayName>
          <Connector>my-logging-extension</Connector>
          <Action>log</Action>
          <Input>{
            "logName": "example-log",
            "metadata": {
              "resource": {
                "type": "global",
                "labels": {
                  "project_id": "my-gcp-project"
                }
              }
            },
            "message": "This is a test"
          }</Input>
        </ConnectorCallout><!--
        Input JSON Schema for package=gcp-stackdriver-logging version=0.0.4
        {"type":"object","properties":{"logName":{"type":"string"},"metadata":{"type":"string"},"message":{"type":"string"}},"required":["logName","message"]}
        -->
        <!--
        Output JSON Schema for package=gcp-stackdriver-logging version=0.0.4
        {"type":"object","properties":{"content":{"type":"string"}},"required":[]}
        -->

    上記の <Input> は次の要素を定義しています。

    • logName は、書き込み先のログの名前です。このログが存在しない場合は、拡張機能によって作成されます。
    • metadata は、Stackdriver Console でログを参照するために使用できる情報を指定します。
    • message は、書き込むログメッセージそのものです。
  9. [Save] ボタンをクリックします。

次のステップ

ステップ 1 ステップ 2 ステップ 3 ステップ 4: プロキシをデプロイする ステップ 5