Cloud Deploy は、Google Cloud Observability によって生成されたアラートを使用する分析ジョブをサポートしています。このアラートは、Google Cloud Observability の指標やその他のデータに基づいています。 ただし、Cloud Deploy を拡張して他の指標プロバイダを使用することもできます。このドキュメントでは、分析ジョブを構成して使用する方法と、選択したプロバイダの指標を分析するロジックを含むカスタム コンテナの要件について説明します。
始める前に
-
ログイン Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init Compute Engine API と Cloud Deploy API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init Compute Engine API と Cloud Deploy API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
必要なロール
分析ジョブを作成して使用するために必要な権限を取得するには、プロジェクトのアカウントに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Deploy ジョブ実行者 (
roles/clouddeploy.jobRunner) -
IAM サービス アカウント ユーザー (
roles/iam.serviceAccountUser) -
Service Usage ユーザー (
roles/serviceusage.serviceUsageConsumer)
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
Cloud Deploy サービス アカウントに分析ジョブを作成して使用するために必要な 権限があることを確認するには、 プロジェクトの Cloud Deploy サービス アカウントに 次の IAM ロールを付与するよう管理者に依頼してください。
正しいプリンシパルにロールを付与しないと、権限エラーが発生する可能性があります。-
IAM サービス アカウント ユーザー (
roles/iam.serviceAccountUser) -
Cloud Deploy リリース担当者 (
roles/clouddeploy.releaser) -
Cloud Deploy オペレータ (
roles/clouddeploy.operator)
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を Cloud Deploy サービス アカウントに付与することもできます。
カスタム分析ジョブを構成する
カスタム分析ジョブは、 Google Cloud Observability からのアラートを使用する分析ジョブと同じですが、カスタムジョブでは、カスタム コンテナと、それらのコンテナで実行するコマンドを 参照する 1 つ以上の タスクを使用して、指標プロバイダのデータを処理します。
このセクションでは、モニタリング以外のプロバイダを使用する Cloud Deploy 分析ジョブ を構成する方法について説明します。Google Cloud
analysis スタンザは、デプロイ戦略
構成(strategy.standard.analysis、標準戦略の場合)内で直接使用できます。フェーズごとに分析を構成する場合は、カスタム カナリア(strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)を使用します。
strategy:
standard:
analysis:
duration: DURATION
customChecks:
- id: CHECK_ID
frequency: FREQUENCY
task:
type: container
image: IMAGE_NAME
command: COMMAND
args: [ARGS]
env:
[VAR_NAME: VALUE]
ここで
DURATION分析ジョブを実行する時間(秒単位)です。期間が終了すると、ジョブは終了します。分析が失敗した場合(コンテナがゼロ以外の終了コードを返した場合)、期間が終了する前にジョブが終了します(
FAILED)。CHECK_ID個々のチェックの ID です。この ID は、この分析ジョブ内で一意である必要があります。
FREQUENCY個々のチェックを実行する頻度(秒単位)です。
IMAGE_NAMEコンテナ イメージを識別するパスと名前です。
COMMANDそのコンテナで実行するコマンドです(シェル スクリプト(
/bin/bash)など)。ARGSそのコマンドの引数のリストです。これはカンマ区切りのリストです。COMMAND_TO_RUN が「/bin/sh」の場合、ここでの引数の 1 つは
-cになり、別の引数は呼び出したシェルで実行するコマンドの全体です。VAR_NAMEコンテナに渡す環境変数の名前です。環境変数を使用して、コンテナの動作を構成します。つまり、変数とその値によって、指標プロバイダでモニタリングする対象をコンテナに指示します。
ここでは、システム パラメータを 環境変数として使用できます。
VALUE各環境変数の値です。Cloud Deploy は、これらの環境変数を値とともにコンテナに渡す以外は何もしません。分析ロジックで値を使用するのはコンテナ次第です。
カスタム分析定義の各チェックには、コンテナを参照するタスク、そのコンテナで実行するコマンド、そのコンテナに渡す適用可能な環境変数が含まれます。
カスタム コンテナ
カスタム分析では、提供するコンテナが、使用する指標プロバイダからのテレメトリー、ログ、その他のデータを分析します。Cloud Deploy 分析ジョブは、コンテナからのリターン コードを待機します。
カスタム コンテナで行う必要があること
カスタム コンテナは、指標プロバイダからデータを取り込み、指標、ログ、その他のデータがアプリケーションの正常な動作を示しているかどうかを判断し、結果を Cloud Deploy に返す役割を担います。
カスタム コンテナが返す必要があるもの
Cloud Deploy では、カスタム コンテナからゼロまたはゼロ以外の終了コードを返すこと以外は何も必要としません。コンテナがゼロ以外の終了コードを返すと、分析は失敗します。
コンテナは、Cloud Deploy で提供される Cloud Storage バケットにある results.json という名前のファイル(JSON 形式)に結果を書き込むことができます。このファイルには、Key-Value ペアの形式でメタデータが含まれます。これは必須ではありません。
使用可能な環境変数
Cloud Deploy では、実行環境で次の環境変数も指定して入力します。これらの環境変数は、 デプロイ フック、検証ジョブ、 またはカスタム ターゲットのレンダリングまたはデプロイの一部として使用できます。
ANTHOS_MEMBERSHIPタイプが
ANTHOSのターゲットの場合、Anthos メンバーシップの完全なリソース名。CLOUD_RUN_LOCATIONタイプが
RUNのターゲットの場合、Cloud Run サービスがデプロイされているリージョン。CLOUD_RUN_PROJECTタイプが
RUNのターゲットの場合、Cloud Run サービスが作成されたプロジェクト。CLOUD_RUN_SERVICEタイプが
RUNのターゲットの場合、デプロイされた Cloud Run サービスの名前。CLOUD_RUN_SERVICE_URLSタイプが
RUNのターゲットの場合、エンドユーザーがサービスへのアクセスに使用する 1 つまたは複数の URL(カンマ区切りのリスト)。これらは、 コンソールで、サービスの Cloud Run サービスの詳細で確認できます。 Google Cloud URL は、Cloud Run サービスが正常にデプロイされた後に Cloud Run によって生成されます。そのため、この環境変数は postdeploy フックと 検証ジョブでのみ使用できます。CLOUD_RUN_REVISIONタイプが
RUNのターゲットの場合、Cloud Run サービスの特定のリビジョン。GKE_CLUSTERタイプが
GKEのターゲットの場合、Google Kubernetes Engine クラスタの完全なリソース名。例:projects/p/locations/us-central1/clusters/dev。TARGET_TYPEターゲットの特定のランタイム タイプ。
GKE、ANTHOS、RUNのいずれか。 カスタム ターゲットの場合、これは設定されません。CLOUD_DEPLOY_LOCATIONCloud Deploy リソースを含むリージョン。
CLOUD_DEPLOY_DELIVERY_PIPELINEデリバリー パイプラインの ID。
CLOUD_DEPLOY_TARGETターゲットの ID。
CLOUD_DEPLOY_PROJECTCloud Deploy リソースを含むプロジェクトの プロジェクト番号。 Google Cloud
CLOUD_DEPLOY_PROJECT_IDプロジェクトのプロジェクト ID。 Google Cloud
CLOUD_DEPLOY_RELEASE検証が実行されるリリースの ID。
CLOUD_DEPLOY_ROLLOUTフックのジョブを含むロールアウトの ID。
CLOUD_DEPLOY_JOB_RUNジョブの現在の実行を表すジョブ実行の ID。
CLOUD_DEPLOY_PHASEデプロイ フック、検証ジョブ、カスタム レンダリングまたはデプロイのジョブを含むロールアウトのフェーズ。
次のステップ
デプロイ分析を設定する方法を確認する。
Cloud Deploy 構成リファレンスの分析の構成スキーマを 確認する。
デプロイの自動化の詳細を確認する。
デプロイ戦略の詳細を確認する。