jobs.deployment.strategy.runOnce definíció

A runOnce üzembehelyezési stratégiája úgy vezet be módosításokat, hogy mindegyik lépést egyszer végrehajtja.

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.

A definícióra hivatkozó definíciók: jobs.deployment.strategy

Tulajdonságok

preDeploypreDeployHook.
A runOnce üzembehelyezési stratégia előzetes üzembehelyezési horogja.

deploydeployHook.
Hook üzembe helyezése a runOnce üzembehelyezési stratégiához.

routeTrafficrouteTrafficHook.
A runOnce üzembehelyezési stratégiához tartozó forgalomhook irányítása.

postRouteTrafficpostRouteTrafficHook.
A runOnce üzembehelyezési stratégia útvonal-forgalmi horogának közzététele.

ononSuccessOrFailureHook.
A runOnce üzembehelyezési stratégiájának sikeres vagy sikertelen lefutása esetén.

Megjegyzések

runOnce A a legegyszerűbb üzembehelyezési stratégia, amelyben az összes életciklushook , azaz preDeploydeploy, routeTrafficés postRouteTraffic, egyszer lesz végrehajtva. Ezután vagy on:successon:failure végrehajtja a parancsot.

Az életciklus-horgok leírása

preDeploy: Az erőforrások inicializálására szolgáló lépések futtatására szolgál az alkalmazás üzembe helyezése előtt.

deploy: Az alkalmazást üzembe helyező lépések futtatására szolgál. Az összetevő-feladat letöltése csak az deploy üzembehelyezési feladatok horogjában lesz automatikusan beszúrva. Az összetevők letöltésének leállításához használja - download: none vagy válassza ki a letölteni kívánt összetevőket a Folyamatösszetevő letöltése feladat megadásával.

routeTraffic: A frissített verzió forgalmát kiszolgáló lépések futtatására szolgál.

postRouteTraffic: A forgalom irányítása után futtatja a lépéseket. Ezek a feladatok általában meghatározott időközönként figyelik a frissített verzió állapotát.

on: failure vagy on: success: A visszaállítási műveletek vagy a törlés lépéseinek futtatására szolgál.

Példák

Az alábbi YAML-kódrészlet az üzembehelyezési feladat egyszerű használatát mutatja be az runOnce üzembehelyezési stratégia használatával. A példa egy kivételi lépést is tartalmaz.


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

A feladat minden futtatásakor a rendszer rögzíti smarthotel-dev a környezet üzembehelyezési előzményeit.

Megjegyzés

  • Üres erőforrásokkal rendelkező környezetet is létrehozhat, amelyet absztrakt rendszerhéjként használhat az üzembe helyezési előzmények rögzítéséhez, ahogy az előző példában is látható.

A következő példa bemutatja, hogyan hivatkozhat egy folyamat egy környezetre és egy üzembe helyezési feladat céljára használandó erőforrásra.

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)

Ez a megközelítés a következő előnyökkel jár:

  • A környezet egy adott erőforrásán rögzíti az üzembehelyezési előzményeket, nem pedig a környezet összes erőforrásának előzményeit.
  • Az üzembehelyezési feladat lépései automatikusan öröklik az erőforrás kapcsolati adatait (ebben az esetben egy Kubernetes-névteret, smarthotel-dev.bookings), mivel az üzembehelyezési feladat a környezethez van kapcsolva. Ez akkor hasznos, ha a feladat több lépéséhez is ugyanazt a kapcsolatrészletet állítja be.

Lásd még