Lägga till Stöd för Azure Developer CLI i din app med hjälp av en befintlig mall
Azure Developer CLI (azd
) innehåller två olika arbetsflöden för att initiera en mall som ska användas med din app, bland annat:
- Använd kod i den aktuella katalogen: Den här metoden analyserar din app och skapar infrastruktur- och konfigurationsresurser som stöds automatiskt.
- Välj en mall: Med den här metoden kan du integrera en befintlig mall med din app eller använda en befintlig mall som utgångspunkt för en ny app.
Båda dessa metoder utforskas i översiktsdokumentet Skapa Azure Developer CLI-mallar.
I den här artikeln får du lära dig hur du lägger till stöd för Azure Developer CLI (azd
) i din app via metoden Välj en mall . Mer information om den alternativa metoden finns i Lägga till azd
stöd för din app med hjälp av ett befintligt malldokument . Du kan också gå till Utbildnings – skapa och distribuera azd
mallar för mer information om hur du skapar azd
mallar.
Välj en mall för din app
Med kommandot Välj ett mallarbetsflöde azd init
kan du välja en befintlig azd
mall som ska användas som utgångspunkt. Innehållet i den valda mallen läggs till i projektets rotkatalog. De flesta mallar tillhandahåller den nödvändiga uppsättningen azd
filer och mappar, och många innehåller en fullständig uppsättning infrastruktur-som-kod-filer för att etablera Azure-resurser för en vald programstack.
I det här exemplet använder du mallen Starter – Bicep , som innehåller den grundläggande strukturen för en azd
mall och en användbar exempelkod för att komma igång. Startmallar är ett bra val när du vill skapa rätt mallstruktur och starta resurser, men ändå skapa egna infrastrukturfiler.
Om du vill följa stegen framåt med hjälp av ett befintligt exempelprogram klonar du följande startprojekt till en tom katalog på datorn:
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Gå till rotkatalogen för det klonade projektet i valfritt kommandoradsverktyg.
azd init
Kör kommandot för att initiera enazd
mall.azd init
Välj alternativet Välj en mall när du uppmanas att göra det.
I listan med mallar väljer du Starter – Bicep. Du kan skriva mallnamnet eller använda tangentbordspiltangenterna för att hitta det.
När du uppmanas till det anger du ett kort miljönamn, till exempel testenv.
När du har kört
azd init
läggs följande tillgångar till i den aktuella katalogen:├── .azdo [ Configures an Azure Pipeline ] ├── .devcontainer [ For DevContainer ] ├── .github [ Configures a GitHub workflow ] ├── .vscode [ VS Code workspace configurations ] ├── .azure [ Stores Azure configurations and environment variables ] ├── infra [ Contains infrastructure as code files ] │ ├── main.bicep/main.tf [ Main infrastructure file ] │ ├── main.parameters.json/main.tfvars.json [ Parameters file ] │ └── core/modules [ Contains reusable Bicep/Terraform modules ] └── azure.yaml [ Describes the app and type of Azure resources]
Uppdatera Bicep-filerna
Projektet innehåller nu en malls kärnstruktur och tillgångar azd
. Men för att etablera Azure-resurserna för ditt specifika projekt måste Bicep-filerna i infra
mappen uppdateras. För att vara värd för exempelprogrammet måste du definiera följande resurser med hjälp av Bicep-filer:
- En Azure App Service-plan
- En Azure App Service som körs på Linux
Öppna rotprojektkatalogen i valfri redigerare, till exempel Visual Studio Code.
main.bicep
Öppna filen iinfra
mappen med hjälp av redigeringsprogrammet. Den här filen innehåller användbar exempelkod för att konfigurera viktiga variabler, parametrar och namngivningskonventioner. Under kommentarsblocket runt rad 50 som läserAdd resources to be provisioned below
lägger du till följande Bicep:// Creates an app service instance to host the app module web './core/host/appservice.bicep' = { name: 'web' scope: rg params: { name: '${abbrs.webSitesAppService}web-${resourceToken}' location: location tags: union(tags, { 'azd-service-name': 'web' }) appServicePlanId: appServicePlan.outputs.id runtimeName: 'python' runtimeVersion: '3.8' scmDoBuildDuringDeployment: true } } // Create an App Service Plan to group applications under the same payment plan and SKU module appServicePlan './core/host/appserviceplan.bicep' = { name: 'appserviceplan' scope: rg params: { name: '${abbrs.webServerFarms}${resourceToken}' location: location tags: tags sku: { name: 'B1' } } }
Kommentar
- En unik sträng genereras baserat på prenumerations-ID och används som en
${resourceToken}
variabel. Den här token läggs till i namnet på alla Azure-resurser som skapats avazd
. azd
använder taggar för att identifiera resurser så att du kan ändra namnen baserat på organisationens namngivningskonvention.- Taggen
'azd-service-name': 'web'
på apptjänsten är värdetazd
som används för att identifiera distributionsvärden. Värdet måste vara detsamma som det som definieras för tjänsten i filen azure.yaml .
- En unik sträng genereras baserat på prenumerations-ID och används som en
Uppdatera filen azure.yaml
Om du vill distribuera appen azd
behöver du veta mer om din app. Filen azure.yaml
används för att definiera källkodens plats, språk och Azure-värdtjänsten för varje tjänst i din app. Fullständig information finns i schemat azure.yaml.
azure.yaml
Öppna roten i projektet.Lägg till följande rader längst ned i filen:
name: msdocs-python-flask-webapp-quickstart services: web: project: . language: py host: appservice
Etablera och distribuera mallen
Spara alla dina ändringar och kör följande kommando för att etablera och distribuera appresurserna i Azure:
azd up
När kommandot har slutförts klickar du på länken i kommandoutdata för att navigera till den distribuerade platsen.
Projektet är nu kompatibelt med Azure Developer CLI och kan användas som en mall.
Kommentar
azd
har också stöd för att använda Buildpack för att containerisera dina appar som standard. Om mallen azd
riktar sig mot Azure Container Apps eller Azure Kubernetes Service men inte innehåller en Docker-fil, azd
genereras automatiskt en avbildning med hjälp av Buildpack.