Apigee 環境でアーカイブをデプロイして管理する

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

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

VS Code での Apigee を使用したプログラム可能な API プロキシを開発およびテストします。 次のセクションで説明するように、API プロキシ構成環境のアーカイブを Apigee 統合テスト環境と本番環境にデプロイします。

Apigee 環境でアーカイブ デプロイを有効にする

アーカイブをデプロイする前に、Apigee 環境でアーカイブ デプロイを有効にする必要があります。

以下のセクションの手順に沿って、アーカイブのデプロイを有効にします。

従来の Apigee UI

Apigee 環境でアーカイブのデプロイを有効にするには、(プロビジョニング ウィザード以外で)Apigee 環境を作成する際に、[Deployment type] で [Archive] を選択します。

[New Environment] ダイアログ

Apigee API

API を使用して環境を作成する際にアーカイブ デプロイを有効にするには、リクエスト本文で deploymentTypeARCHIVE に設定します。

例:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments" \
   -X POST \
   -H "Authorization: Bearer $TOKEN" \
   -H "Content-type: application/json" \
   -d
   '{
      "name": "integration-test",
      "description": "Integration test environment",
      "displayName" : "Integration test",
      "deploymentType" : "ARCHIVE"
   }'

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

レスポンスの例を次に示します。

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "IN_PROGRESS"
  }
}

オペレーションのステータスを確認できます。例:

curl https://apigee.googleapis.com/v1/organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7 /
   -H "Authorization: Bearer $TOKEN"

レスポンスの例を次に示します。オペレーションの状態は FINISHED に、環境の状態は ACTIVE に設定されています。

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.Environment",
    "name": "integration-test",
    "description": "Integration test environment",
    "createdAt": "1615553880084",
    "lastModifiedAt": "1615553881911",
    "displayName": "Integration test",
    "state": "ACTIVE",
    "deploymentType": "ARCHIVE"
  }
}

API の詳細については、Create environments API をご覧ください。

Apigee 環境へのアーカイブのデプロイ

アーカイブを Apigee 環境にデプロイするには、次の gcloud コマンドを使用します。

gcloud beta apigee archives deploy \
    --environment=$ENV \
    [--organization=$ORG] \
    [--source=$SOURCE] \
    [--labels $KEY=$VALUE[,$KEY2=$VALUE2,$KEY3=$VALUE3,...]]

--environment フラグを使用して、アーカイブをデプロイする Apigee 環境を指定する必要があります。Apigee 環境では、アーカイブ デプロイメントを有効にする必要があります。詳細については、gcloud beta apigee アーカイブのデプロイ をご覧ください。

デフォルトでは、アーカイブは次のようにデプロイされます。

  • gcloud に構成されている現在アクティブなプロジェクトに関連付けられている組織に対して。

    現在の gcloud 構成を表示するには、gcloud config list を実行します。組織を指定するには、--organization フラグを使用します。

  • 現在の作業ディレクトリから。
    アーカイブの src/main/apigee ルート ディレクトリが現在の作業ディレクトリ以外の場所にある場合は、--source フラグを使用してアーカイブのルート ディレクトリの場所を指定します。Apigee ワークスペースの構造についてもご覧ください。

必要に応じて、--labels フラグを使用して最大 64 個のカスタムラベルの Key-Value ペアをアーカイブのデプロイに追加できます。たとえば、ビルド番号を使用してアーカイブにラベルを付けることができます。このラベルは、アーカイブ デプロイを一覧表示するときに表示されます。Key-Value は次のガイドラインに従う必要があります。

  • 最大文字数: 63 文字
  • 最大サイズ: 128 バイト
  • UTF-8 エンコード済み
  • 次の Perl 互換正規表現(PCRE)を遵守します。 [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

Apigee on Google Cloud にデプロイするときに、バックグラウンドで gcloud コマンドにより次の手順が行われます。

  1. src/main/apigee Apigee ワークスペース ディレクトリの ZIP ファイルを作成します。詳細については、Apigee ワークスペースの構造についてをご覧ください。
  2. 次のように、アーカイブを Apigee on Google Cloud にデプロイします。
    1. generateUploadUrl API を使用して、現在の Apigee 組織に関連付けられているプロジェクト内の Google Cloud Storage バケットの署名付き URL を生成します。
    2. 署名付き URL を使用して、アーカイブ ZIP ファイルを Cloud Storage バケットにアップロードします。
    3. Cloud Storage バケットで現在ステージングされているアーカイブを Google Cloud 上の Apigee にデプロイします。Archive Deployments API を使用します。

リクエストの例

次の例では、現在のディレクトリに src/main/apigee の ZIP アーカイブを作成し、指定された Apigee 環境にデプロイします。

gcloud beta apigee archives deploy --environment=$ENV

次の例は、gcloud に構成されている現在アクティブなプロジェクトに関連付けられていない組織を指定する方法を示しています。

gcloud beta apigee archives deploy --environment=$ENV --organization=$ORG

次の例では、myarchive の下の src/main/apigee ディレクトリの zip アーカイブを作成し、指定された Apigee 環境にデプロイします。

gcloud beta apigee archives deploy --environment=$ENV --source=/myarchive

次の例では、status ラベルと build_id ラベルをアーカイブ デプロイメントに追加します。

gcloud beta apigee archives deploy --environment=$ENV --labels=status=released,build=210315

レスポンスの例

レスポンスの例を次に示します。

Using Apigee organization 'myorg'
Waiting for operation [b64c2665-b5ac-43cc-9e2d-232e8895c2ed] to complete...done.

アーカイブ デプロイメントのステータスの確認

アーカイブ デプロイのステータスを確認するには、gcloud alpha apigee operations コマンドを使用します。

次の例は、リビジョン ID 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c を持つオペレーションのアーカイブ デプロイメントのステータスが IN_PROGRESS であることを示しています。

gcloud alpha apigee operations describe b64c2665-b5ac-43cc-9e2d-232e8895c2ed

レスポンスの例を次に示します。stateIN_PROGRESS に設定されていることに注意してください。

Using Apigee organization 'myorg'
done: true
metadata:
  '@type': type.googleapis.com/google.cloud.apigee.v1.OperationMetadata
  operationType: INSERT
  state: IN_PROGRESS
  targetResourceName: uri
name: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
organization: myorg
response:
  '@type': type.googleapis.com/google.cloud.apigee.v1.CanaryEvaluation
  control: 1-5-0-20210319-071117-ghq74
  endTime: '2021-03-20T06:15:44.329363950Z'
  metricLabels:
    env: test
    location: us-central1
  name: uri
  startTime: '2021-03-20T06:14:44.306534584Z'
  treatment: 1-5-0-20210319-190954-if0wk
  verdict: NONE
uuid: b64c2665-b5ac-43cc-9e2d-232e8895c2ed

オペレーションが完了すると、stateFINISHED に設定されます。

環境内のすべてのアーカイブ デプロイメントの一覧表示

以下のセクションの説明に沿って、環境内のすべてのアーカイブ デプロイメントを一覧表示します。

gcloud

Apigee on Google Cloud のすべてのアーカイブ デプロイメントを一覧表示するには、次の gcloud コマンドを使用します。

gcloud beta apigee archives list --environment=$ENV

--environment フラグを使用してアーカイブ デプロイメントを表示する Apigee 環境を指定する必要があります。Apigee 環境は、アーカイブ デプロイメントの詳細を表示する必要があります。詳細については、gcloud beta apigee アーカイブのリスト をご覧ください。

レスポンスの例を次に示します。

Using Apigee organization 'myorg'
ARCHIVE ID                        ENVIRONMENT   DEPLOYED AT           LABELS                         OPERATION STATUS
pzfbs8uidbdv224joz                myorg         2021-03-10 11:21:29   status=released,build=210315   Deployed
fb4r8log2gm63r3gtu                myorg         2021-03-05 13:40:30
vrytwbhso558oil53m                myorg         2021-03-03 21:20:53

Apigee API

環境内のアーカイブ デプロイメントを一覧表示するには、次の API に GET リクエストを発行します。 https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments

次に例を示します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments" \
  -H "Authorization: Bearer $TOKEN"

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

レスポンスの例を次に示します。

{
  "archiveDeployments": [
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
      "labels": {
        "status": "released",
        "build": "210315"
      },
      "createdAt": "1615821232451727",
      "updatedAt": "1615821232451727",
      "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/fb4r8log2gm63r3gtu",
      "createdAt": "1615819281858447",
      "updatedAt": "1615819281858447",
      "operation": "organizations/apigee-docs-c/operations/71549b9c-4493-41b6-9838-c0ad5b1b3181"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/vrytwbhso558oil53m",
      "createdAt": "1615578337832207",
      "updatedAt": "1615578337832207",
      "operation": "organizations/apigee-docs-c/operations/a2eb50b5-f276-4de4-96a3-72fac3d4c05e"
    }
  ]
}

アーカイブ デプロイメントの詳細の表示

以下のセクションで説明するように、アーカイブ デプロイメントの詳細を表示します。

gcloud

Apigee on Google Cloud のアーカイブ デプロイメントの詳細を表示するには、次の gcloud コマンドを使用します。

gcloud beta apigee archives describe $ID --environment=$ENV

次の項目を指定する必要があります。

  • アーカイブ デプロイメントのリビジョンの ID。
  • --environment フラグを使用してアーカイブ デプロイメントを表示する Apigee 環境。Apigee 環境では、アーカイブ デプロイメントを有効にする必要があります。

詳細については、gcloud beta apigee アーカイブの説明 をご覧ください。

次に例を示します。

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

レスポンスの例を次に示します。

Using Apigee organization 'myorg'
createdAt: '1615578337832207'
labels:
  status: 'released'
  build: '210315'
name: organizations/myorg/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
operationStatus: Deployed
updatedAt: '1615821232451727'

Apigee API

アーカイブ デプロイメントの詳細を表示するには、次の API に GET リクエストを発行します。 https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID

アーカイブ デプロイメントのリビジョンの ID を渡す必要があります。Apigee 環境のアーカイブ デプロイメントのリビジョン ID のリストを確認するには、環境内のすべてのアーカイブ デプロイメントの一覧表示をご覧ください。

次に例を示します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

レスポンスの例を次に示します。

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

アーカイブ デプロイメントのラベルの更新

以下のセクションの説明に沿って、アーカイブ デプロイメントのラベルを更新します。

gcloud

Apigee on Google Cloud のアーカイブ デプロイメントのラベルを更新するには、次の gcloud コマンドを使用します。

gcloud beta apigee archives update [$ID] --environment=$ENV
  [--update-labels=$KEY=$VALUE[,$KEY2=$VALUE2...$KEYn=$VALUEn]],
  [--clear-labels | --remove-labels=$KEY[,$KEY2...$KEYn]]

次の項目を指定する必要があります。

  • アーカイブ デプロイメントのリビジョンの ID
  • --environment フラグを使用してアーカイブ デプロイメントを表示する Apigee 環境。Apigee 環境では、アーカイブ デプロイメントを有効にする必要があります。
  • 次のフラグの 1 つ以上:
    フラグ 説明
    --clear-labels すべてのラベルを削除します。--update-labels も指定されている場合、--clear-labels が最初に適用されます。

    --remove-labels が指定されている場合は指定できません。

    --remove-labels 指定したラベルを削除します。--update-labels も指定されている場合、それが最初に適用されます。

    --clear-labels が指定されている場合は指定できません。

    --update-labels ラベルを更新します。ラベルが存在する場合はその値が変更され、そうでない場合は新しいラベルが作成されます。ラベルを更新する前に、--remove-labels フラグまたは --clear-labels フラグと組み合わせて、サブセットまたはすべてのラベルをそれぞれ削除します。

詳細については、gcloud beta apigee アーカイブの更新 をご覧ください。

次に例を示します。

gcloud apigee archives update pzfbs8uidbdv224joz --environment=$ENV \
  --clear-labels --update-labels=status=released,build=210315,tier=1

レスポンスの例を次に示します。

Using Apigee organization `myorg`
createdAt: 2020-04-04T04:04:04.004Z
labels:
  status: released,
  build: 210315,
  tier: 1
name: organizations/apigee-docs-c/environments/dev/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/apigee-docs-c/operations/bf587121-8b5c-4897-9d8f-9b1ef0cb06ca
updatedAt: '1633450432067431'

Apigee API

Apigee on Google Cloud のアーカイブ デプロイメントのラベルを更新するには、次の API に PATCH リクエストを発行します。 https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID

アーカイブ デプロイメントのリビジョンの ID を渡す必要があります。Apigee 環境のアーカイブ デプロイメントのリビジョン ID のリストを表示するには、環境内のすべてのアーカイブ デプロイメントの一覧表示をご覧ください。

リクエスト本文でアーカイブに追加するすべてのラベルを渡します。渡されたラベルは現在のラベルセットを上書きします。そのため、リクエスト本文からラベルを省略してラベルを削除するか、空のリストを渡してすべてのラベルを削除できます。

次に例を示します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "labels": {
      "status" : "released",
      "build" : "210315"
    }
  }'

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

レスポンスの例を次に示します。

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

アーカイブ デプロイメントを使用した Apigee 環境の削除

デプロイしたアーカイブのある Apigee 環境を削除するには:

  1. 一時フォルダ内に、$ENV が削除する環境の名前と一致する次のディレクトリ構造を作成します。次に例を示します。
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. deployments.json ファイルをディレクトリに追加します。次に例を示します。
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. 以下に示すように、deployments.json を更新して空の proxies 配列を追加します。
    {
    "proxies" : []
    }
  4. ディレクトリ(cd)を $TEMP/archive フォルダに変更します。
    cd $TEMP/archive

    設定に応じて次のようになります。

  5. 削除する Apigee 環境にアーカイブをデプロイします。
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Apigee 環境を削除します

アーカイブ デプロイメントのリビジョンを削除する

次のセクションで説明するように、アーカイブ デプロイのリビジョンを削除します。

gcloud

Apigee on Google Cloud でアーカイブ デプロイメントのリビジョンを削除するには、次の gcloud コマンドを使用します。

gcloud beta apigee archives delete $ID --environment=$ENV

次の項目を指定する必要があります。

  • 削除するリビジョンの ID。
  • --environment フラグを使用してアーカイブ デプロイメントを表示する Apigee 環境。Apigee 環境では、アーカイブ デプロイメントを有効にする必要があります。

次に例を示します。

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

レスポンスの例を次に示します。

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

Apigee API

Apigee on Google Cloud でアーカイブ デプロイのリビジョンを削除するには、https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID API に DELETE リクエストを発行します。

削除するアーカイブ デプロイのリビジョンの ID を渡す必要があります。環境のアーカイブ デプロイメントのリビジョン ID のリストを確認するには、環境内のすべてのアーカイブ デプロイの一覧表示をご覧ください。

次に例を示します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN" \

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

レスポンスの例を次に示します。

{}