Dela via


Distribuera till distributionsplatser för Azure App Service med Azure Developer CLI

Azure Developer CLI (azd) stöder Distributionsfack för Azure App Service för appar som finns i App Service. Du kan definiera slotar i infrastrukturen, distribuera kod till en specifik slot, och växla slotar när du är redo att promotera en release.

Använd den här metoden för uppsättning, blågröna distributioner, röktestning och rollbacks utan att lägga till anpassade distributionsskript.

Förutsättningar

  • Ett azd projekt som distribuerar en tjänst till Azure App Service.
  • Infrastruktur som kod som definierar dina App Service-resurser i Bicep.
  • En App Service-plan på standardnivån (S1) eller högre. Kostnadsfria, delade och grundläggande nivåer stöder inte distributionsplatser.

Definiera ett distributionsfack i Bicep

Definiera produktionsplatsen som vanligt och lägg sedan till en Microsoft.Web/sites/slots resurs för varje fack som du vill azd rikta in dig på.

resource appServicePlan 'Microsoft.Web/serverfarms@2021-03-01' = {
  name: 'my-appservice-plan'
  location: resourceGroup().location
  sku: {
    name: 'S1'
    tier: 'Standard'
  }
}

resource webApp 'Microsoft.Web/sites@2021-03-01' = {
  name: 'my-appservice'
  location: resourceGroup().location
  kind: 'app'
  properties: {
    serverFarmId: appServicePlan.id
  }
}

resource stagingSlot 'Microsoft.Web/sites/slots@2021-03-01' = {
  name: '${webApp.name}/staging'
  location: webApp.location
  properties: {}
}

Om du använder Azure Verified Modules (AVM) definierar du webbappen och distributionsfackmodulerna i samma distribution och skickar appnamnet till fackmodulen.

Distribuera till ett fack med azd

Kör azd up och azd provision och azd deploy som vanligt.

azd up

Vid den första distributionen azd distribueras till produktionsplatsen och eventuella platser som definierats i infrastrukturen. Efter det, om din tjänst har fler än en plats, uppmanas du att välja målplatsen azd deploy.

Om du vill hoppa över prompten anger du en miljövariabel för den tjänst som du vill distribuera. Använd tjänstnamnet från azure.yaml i versaler.

azd env set AZD_DEPLOY_MYAPI_SLOT_NAME staging
azd deploy myapi

Om din tjänst till exempel heter web, anger du AZD_DEPLOY_WEB_SLOT_NAME. Den här metoden är användbar för CI/CD eftersom du kan ange samma miljövariabel i pipelinen innan du kör azd deploy.

Växla distributionsplatser för Azure App Service

azure.appservice Använd tillägget för att växla platser efter validering. Om tillägget inte redan är installerat azd uppmanas du att installera det första gången du kör kommandot.

Kör den interaktiva upplevelsen:

azd appservice swap

Om det bara finns en icke-produktionsplats hoppar azd du över prompterna och växlar direkt med produktion.

För automatisering anger du käll- och målplatserna explicit. Använd @main för att referera till produktionsplatsen.

azd appservice swap --src staging --dst @main
azd appservice swap --src @main --dst staging
azd appservice swap --service myapi --src staging --dst @main

Använd dessa mönster för att stödja vanliga versionsflöden:

  • Höj upp en validerad mellanlagringsdistribution till produktion med --src staging --dst @main.
  • Återställ genom att växla tillbaka produktionen till stagingmiljön med --src @main --dst staging.
  • Rikta in dig på en specifik App Service-backad tjänst i ett multiserviceprojekt azd med --service.
  1. Definiera en eller flera App Service-distributionsplatser i dina Bicep-mallar.
  2. Tilldela App Service-resurserna med hjälp av azd provision eller azd up.
  3. Distribuera programkod till ett mellanlagringsfack genom att ange AZD_DEPLOY_<SERVICE_NAME>_SLOT_NAME eller genom att välja facket när du uppmanas till det.
  4. Verifiera den mellanlagrade distributionen.
  5. Kör azd appservice swap --src <slot> --dst @main för att främja lanseringen.
  6. Om det behövs kör du den omvända växlingen för att återställa.