runOnce 配置戦略では、各手順を 1 回実行して変更をロールアウトします。
runOnce:
preDeploy: # Pre deploy hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where pre deploy steps will run.
deploy: # Deploy hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where deploy steps will run.
routeTraffic: # Route traffic hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where route traffic steps will run.
postRouteTraffic: # Post route traffic hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post route traffic steps will run.
on: # On success or failure hook for runOnce deployment strategy.
failure: # Runs on failure of any step.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post on failure steps will run.
success: # Runs on success of all of the steps.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where on success steps will run.
特性
preDeployHookを preDeploy
します。
runOnce 配置戦略の配置前フックです。
deployHookを deploy
します。
runOnce 配置戦略の配置フック。
routeTrafficHookを routeTraffic
します。
runOnce 配置戦略のトラフィック フックをルーティングします。
postRouteTrafficHookを postRouteTraffic
します。
runOnce 配置戦略の Post ルート トラフィック フックです。
onSuccessOrFailureHookを on
します。
runOnce 配置戦略の成功または失敗フック。
注釈
runOnce
は、すべてのライフサイクル フック (preDeploy
deploy
、routeTraffic
、postRouteTraffic
) が 1 回実行される最も簡単なデプロイ戦略です。 次に、on:
success
または on:
failure
が実行されます。
ライフサイクル フックの説明
preDeploy
: アプリケーションのデプロイが開始される前にリソースを初期化する手順を実行するために使用されます。
deploy
: アプリケーションをデプロイする手順を実行するために使用されます。 ダウンロード成果物タスクは、デプロイ ジョブの deploy
フックにのみ自動的に挿入されます。 成果物のダウンロードを停止するには、- download: none
を使用するか、パイプライン成果物のダウンロード タスク 指定して、ダウンロードする特定の成果物を選択します。
routeTraffic
: 更新されたバージョンへのトラフィックを処理するステップを実行するために使用されます。
postRouteTraffic
: トラフィックがルーティングされた後に手順を実行するために使用されます。 通常、これらのタスクは、定義された間隔で更新されたバージョンの正常性を監視します。
on: failure
または on: success
: ロールバック アクションまたはクリーンアップの手順を実行するために使用されます。
例示
次の YAML スニペットの例では、runOnce
デプロイ戦略を使用してデプロイ ジョブを簡単に使用する方法を示します。 この例には、チェックアウト手順が含まれています。
jobs:
# Track deployments on the environment.
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: ubuntu-latest
# Creates an environment if it doesn't exist.
environment: 'smarthotel-dev'
strategy:
runOnce:
deploy:
steps:
- checkout: self
- script: echo my first deployment
このジョブを実行するたびに、デプロイ履歴が smarthotel-dev
環境に対して記録されます。
注
- 前の例に示すように、空のリソースを含む環境を作成し、それを抽象シェルとして使用してデプロイ履歴を記録することもできます。
次の例では、パイプラインがデプロイ ジョブのターゲットとして使用する環境とリソースの両方を参照する方法を示します。
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: ubuntu-latest
# Records deployment against bookings resource - Kubernetes namespace.
environment: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
# No need to explicitly pass the connection details.
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: |
$(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: |
$(imagePullSecret)
containers: |
$(containerRegistry)/$(imageRepository):$(tag)
この方法には、次の利点があります。
- 環境内のすべてのリソースの履歴を記録するのではなく、環境内の特定のリソースのデプロイ履歴を記録します。
- デプロイ ジョブの手順 、リソースの接続の詳細 (この場合は Kubernetes 名前空間、
smarthotel-dev.bookings
) 自動的に継承されます。これは、デプロイ ジョブが環境にリンクされているためです。 これは、ジョブの複数のステップに対して同じ接続の詳細が設定されている場合に便利です。