環境の構成とデプロイ

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示する

「環境」は、デプロイする API プロキシと共有フローのランタイム実行コンテキストです。テストでアクセスする前に、API プロキシと共有フローを 1 つ以上の環境にデプロイする必要があります。環境の詳細については、環境と環境グループについてをご覧ください。

以降のセクションで説明するように、環境を構成してデプロイします。Apigee ワークスペースでのフォルダとファイルの管理もご覧ください。

環境の構成

環境をデプロイする前に、デプロイする API プロキシと共有フローを識別するように環境を構成し、必要に応じて共有フローフックまたはターゲット サーバーを構成する必要があります。

環境を構成するには、環境を作成し、次の表で定義されている構成を編集します。

構成 説明
デバッグマスク(debugmasks.json トレース セッションやデバッグ セッションで特定のデータをマスクするための「マスク構成」を定義します。
デプロイ(deployments.json デプロイでの API プロキシと共有フローを定義します。
フローフック(flowhooks.json 環境にデプロイされているすべての API プロキシに対して同じ場所で実行されるように、共有フローをフローフックに接続します。
ターゲット サーバー(targetservers.json 複数のバックエンド サーバー インスタンスにまたがるロード バランシングとフェイルオーバーをサポートするために、ターゲット エンドポイントから実際のエンドポイントを分離します。
キーストア(keystores.json ターゲット エンドポイントターゲット サーバーに TLS サポートを追加します。

さらに、リソースを必要とするポリシーを使用する場合は、必要に応じて環境レベルでリソースを管理できます。

環境の作成

Cloud Code で Apigee の環境を作成するには:

  1. 次のいずれかの操作を行います。

    • [Apigee] セクションの environments フォルダにカーソルを合わせ、[作成アイコン] をクリックします。

      environments フォルダにカーソルを合わせると + が表示される

    • [View] > [Command Palette] を選択して、コマンド パレットを開き、[Cloud Code: Create Apigee environment] を選択します。

    [Create environment] ウィザードが開きます。

  2. 環境の名前を入力し、Enter キーを押します。

次の図に示すように、環境が [Apigee] セクションの environments フォルダに追加されます。

deployments.json、flowhooks.json、targetservers.json のファイルを含む environments フォルダ

以下のセクションの説明に沿って、環境を構成します。

デバッグマスク(debugmask.json)の構成

Apigee では、トレース セッションやデバッグ セッションで特定のデータをマスクするためのマスク構成を定義できます。データがマスクされると、トレース出力でアスタリスクに置き換えられます。次に例を示します。

<description>**********</description>

詳細については、センシティブ データのマスキングをご覧ください。

デバッグマスクを構成するには、直接ファイルを編集して debugmask.json ファイルを更新します。

JSON 形式のマスク構成の基本構造の例を次に示します。例に示すマスク構成フィールドの詳細については、DebugMask をご覧ください。

{
  "namespaces": {
    "myco": "https://example.com"
  },
  "requestXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "responseXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "faultXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "requestJSONPaths": [
    "$.store.book[].author"
  ],
  "responseJSONPaths": [
    "$.store.book[].author"
  ],
  "faultJSONPaths": [
    "$.store.book[*].author"
  ],
  "variables": [
    "request.header.user-agent",
    "request.formparam.password"
  ]
}

デプロイ(deployments.json)の構成

デプロイに含める API プロキシと共有フローを構成します。

デプロイを構成するには、構成ウィザード(後述)を使用するか、直接ファイルを編集して、deployments.json ファイルを更新します。

構成ウィザードを使用してデプロイを構成するには:

  1. 環境用の deployments.json ファイルにカーソルを合わせ、ウィザード アイコン をクリックします。

    deployments.json フォルダにカーソルを合わせると、設定アイコンが表示される

  2. 構成ウィザードに沿って、deployments.json ファイル内の Deployment を選択し、フィールドに自動入力します。
    エディタで deployments.json ファイルが開きます。

  3. 必要に応じて構成を編集します。

  4. [File] > [Save] を選択するか、または ⌘+S キーを押して、編集内容を保存します。

次の例では、helloworld API プロキシと、mysharedflow および hw-sharedflow の共有フローを含めるようにデプロイを構成しています。

{
  "proxies" : [
     "helloworld"
  ],
  "sharedflows" : [
     "mysharedflow",
     "hw-sharedflow"
  ]
}

プロキシと共有フローのデプロイを持つサービス アカウントの構成

Google サービスをバックエンドとして使用する API プロキシでは、デプロイメントに Google Cloud サービス アカウントを関連付ける必要がある場合があります。Google 認証の使用をご覧ください。

deployments.json ファイルを編集する際に、API プロキシまたは共有フローを Google Cloud サービス アカウントに関連付けることができます。次に例を示します。

{
  "name": "proxy-name",
  "serviceAccount": "associated-service-account"
}

次の例は、サービス アカウントが API プロキシ helloworld と共有フロー mysharedflow に関連付けられているデプロイ構成を示しています。ただし、プロキシ healthcheck と共有フロー hw-sharedflow は、サービス アカウントに関連付けられていません。

{
  "proxies": [
    {
      "name": "helloworld",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "healthcheck"
  ],
  "sharedflows": [
    {
      "name": "mysharedflow",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "hw-sharedflow"
  ]
}

API プロキシでサービス アカウントの認証機能をテストするように Apigee Emulator を構成する方法の詳細を確認してください。

フローフック(flowhooks.json)を使用した共有フローの接続

フローフックを使用して、特定の環境にデプロイされたすべての API プロキシに対して同じ場所で実行されるように共有フローを接続します。これにより、API プロキシの実装コードの一部ではない、個別に実装およびデプロイされる一連のロジックが得られます。具体的には、API プロキシフローの次の場所に共有フローを接続できます。

  • API プロキシ エンドポイントの実行前(PreProxyFlowHook
  • API プロキシ エンドポイントが実行された後で、レスポンスがクライアントに送信される直前(PostProxyFlowHook
  • ターゲット エンドポイントの実行前(PreTargetFlowHook
  • ターゲット レスポンスの実行後(PostTargetFlowHook

フローフックの詳細については、フローフックを使用した共有フローの接続をご覧ください。

フローフックを使用して共有フローを接続するには、構成ウィザード(後述)を使用するか、直接ファイルを編集して、flowhooks.json ファイルを更新します。

構成ウィザードを使用してデプロイを構成するには:

  1. 環境用の flowhooks.json ファイルにカーソルを合わせ、ウィザード アイコン をクリックします。
  2. 構成ウィザードのステップに従って、API プロキシフローの特定の場所に接続する共有フローを選択し、flowhooks.json ファイルのフィールドに自動入力します。
    エディタで flowhooks.json ファイルが開きます。
  3. 必要に応じて構成を編集します。
  4. [File] > [Save] を選択するか、または ⌘+S キーを押して、編集内容を保存します。

次の例では、API プロキシ エンドポイントが実行される前にフローが実行されるように、mysharedflowPreProxyFlowHook に接続しています。

{
  "PreProxyFlowHook": {
    "continueOnError": true,
    "sharedFlow": "mysharedflow",
    "description": "Shared enforced before a proxy endpoint executes."
  }  
}

ターゲット サーバー(targetservers.json)の構成

ターゲット サーバー(TargetServers)は、ターゲット エンドポイント(TargetEndpoint)構成から、実際のエンドポイント URL を分離します。構成で実際の URL を定義する代わりに、1 つ以上の名前付き TargetServer を構成できます。次に、TargetEndpoint HTTPConnection で、各 TargetServer を名前で参照します。

ターゲット サーバーの詳細については、次のトピックをご覧ください。

ターゲット サーバーを構成するには、構成ウィザード(後述)を使用するか、直接ファイルを編集して、targetservers.json ファイルを更新します。targetservers.json ファイルのフィールドの説明については、リソース: TargetServer をご覧ください。

構成ウィザードを使用してターゲット サーバーを構成するには:

  1. 環境用の targetservers.json ファイルにカーソルを合わせ、ウィザード アイコン をクリックします。
  2. 構成ウィザードに沿って、ターゲット サーバーを構成して、targetservers.json ファイルのフィールドに自動入力します。エディタで targetservers.json ファイルが開きます。
  3. 必要に応じて構成を編集します。
  4. [File] > [Save] を選択するか、または ⌘+S キーを押して、編集内容を保存します。

次の例では、環境に新しいターゲット サーバーを追加します。

[
  {
    "enabled": true,
    "description": "My first target server",
    "name": "mytargetserver",
    "host": "localhost",
    "port": 80
  }
]

次の例では、キーストアを使用して相互 TLS でターゲット サーバーを構成します。

[
    {
        "name": "mtlsserver",
        "host": "mytargetserver.mydomain",
        "port": 443,
        "enabled": true,
        "protocol": "HTTP",
        "tlsInfo": {
            "enabled": true,
            "clientAuthEnabled": true,
            "keyStore": "mykeystore",
            "keyAlias": "mykeyandcert",
            "trustStore": "mytruststore"
        }
    }
]

キーストア(keystores.json)の構成

キーストアは、ターゲット エンドポイントとターゲット サーバーで TLS 暗号化に使用されるセキュリティ証明書のリポジトリを定義します。

TLS 構成の詳細については、TLS 構成オプションをご覧ください。

キーストアを構成するには:

  1. その環境の keystores.json ファイルをエディタで開きます。このファイルには主に 2 つの要素があります。
    • stores - キーストア名と追加されるエイリアスのマップ。
    • references - すべてのキーストア参照名と関連するキーストア名のマップ。
  2. 必要に応じて構成を編集します。
  3. [File] > [Save] を選択するか、または ⌘+S キーを押して、編集内容を保存します。

次の例は、mycert-aliasmykeycert-alias の 2 つのエイリアスを持つキーストア mykeystore を示しています。

{
    "stores": {
      "mykeystore": {
        "my-cert-alias": {
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        },
        "my-keycert-alias": {
          "key": "/Users/jdoe/testkeys/key1.pem",
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        }
      }
    }
  }

環境のデプロイ

テスト用に API プロキシと共有フローにアクセスできるように、環境に構成された API プロキシと共有フローをデプロイします。

環境をデプロイするには:

  1. [Apigee] セクションで、デプロイする環境のフォルダにカーソルを合わせます。
  2. [デプロイ アイコン] をクリックします。

    dev 環境フォルダにカーソルを合わせると、デプロイ アイコンが表示される

  3. 複数の Apigee Emulator のコンテナが実行されている場合は、環境をデプロイするコンテナを選択します。
  4. デプロイでエクスポートするテストバンドルを選択するか、[Deploy without a test bundle] を選択します。

    テストバンドルのエクスポートをするためのプロンプト

    Apigee Emulator へのテストリソースのエクスポートで説明されているように、テストリソースは後でエクスポートできます。

環境がデプロイされ、[Output] タブに次の情報が表示されます。

Environment dev deployed successfully with revision 7

デプロイされたアプリケーションは、Apigee Emulator に以下のように表示されます。

デプロイされた helloworld アプリケーションとアクティブなテストリソースを表示している Apigee Emulator

次のステップ

API をテストする。