Delen via


definitie jobs.deployment.strategy.runOnce

De implementatiestrategie runOnce implementeert wijzigingen door elk van de stappen één keer uit te voeren.

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.

Definities die naar deze definitie verwijzen: jobs.deployment.strategy

Eigenschappen

preDeploypreDeployHook.
Pre deploy hook for runOnce-implementatiestrategie.

deploydeployHook.
Implementeer hook voor de implementatiestrategie runOnce.

routeTrafficrouteTrafficHook.
Route verkeershook voor runOnce-implementatiestrategie.

postRouteTrafficpostRouteTrafficHook.
Postroute verkeershook voor runOnce-implementatiestrategie.

ononSuccessOrFailureHook.
Bij geslaagde of mislukte hook voor runOnce-implementatiestrategie.

Opmerkingen

runOnce is de eenvoudigste implementatiestrategie waarbij alle levenscyclushaken, namelijk preDeploydeploy, routeTrafficen postRouteTraffic, eenmaal worden uitgevoerd. Vervolgens wordt of on:successon:failure uitgevoerd.

Beschrijvingen van levenscyclushook

preDeploy: wordt gebruikt om stappen uit te voeren waarmee resources worden geïnitialiseerd voordat de implementatie van de toepassing wordt gestart.

deploy: wordt gebruikt om stappen uit te voeren waarmee uw toepassing wordt geïmplementeerd. De taak voor het downloaden van artefacten wordt alleen automatisch geïnjecteerd in de deploy hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt - download: none of kiest u specifieke artefacten die u wilt downloaden door de taak Pijplijnartefact downloaden op te geven.

routeTraffic: Wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie verwerken.

postRouteTraffic: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken controleren deze taken de status van de bijgewerkte versie voor het gedefinieerde interval.

on: failure of on: success: wordt gebruikt om stappen uit te voeren voor terugdraaiacties of opschonen.

Voorbeelden

In het volgende voorbeeld van een YAML-fragment ziet u een eenvoudig gebruik van een implementatietaak met behulp van de runOnce implementatiestrategie. Het voorbeeld bevat een stap voor uitchecken.


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

Bij elke uitvoering van deze taak wordt de implementatiegeschiedenis vastgelegd in de smarthotel-dev omgeving.

Notitie

  • Het is ook mogelijk om een omgeving met lege resources te maken en deze te gebruiken als een abstracte shell om de implementatiegeschiedenis vast te leggen, zoals weergegeven in het vorige voorbeeld.

In het volgende voorbeeld ziet u hoe een pijplijn kan verwijzen naar zowel een omgeving als een resource die moet worden gebruikt als het doel voor een implementatietaak.

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)

Deze aanpak heeft de volgende voordelen:

  • Registreert de implementatiegeschiedenis voor een specifieke resource in de omgeving, in plaats van de geschiedenis van alle resources in de omgeving vast te leggen.
  • Stappen in de implementatietaak nemen automatisch de verbindingsgegevens van de resource over (in dit geval een Kubernetes-naamruimte, smarthotel-dev.bookings), omdat de implementatietaak is gekoppeld aan de omgeving. Dit is handig in de gevallen waarin dezelfde verbindingsdetails zijn ingesteld voor meerdere stappen van de taak.

Zie ook