Gör projektet kompatibelt med Azure Developer CLI
Azure Developer CLI (azd
) gör det möjligt för utvecklare att autogenerera sina program för molnet med hjälp av mallar som finns på GitHub. Microsoft tillhandahåller flera mallar för att komma igång. I den här artikeln får du lära dig hur du gör ditt eget program azd
kompatibelt.
Förstå mallarkitekturen
Följande diagram ger en snabb översikt över processen för att skapa en azd
mall:
Alla azd
mallar har samma filstruktur, baserat på azd
konventioner. Följande hierarki visar den katalogstruktur som du skapar i den här självstudien.
├── .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]
Initiera mallen
Kommandot azd init
används för att initiera ditt program för etablering och distribution av appresurser i Azure. Med det här kommandot uppmanas du att välja mellan två olika arbetsflöden för att initiera en mall som beskrivs i följande avsnitt.
Använd kod i den aktuella katalogen: Välj det här alternativet om du vill instruera
azd
att analysera koden i din katalog till identitet vilka tekniker den använder, till exempel programmeringsspråket, ramverket och databassystemet.azd
skapar sedan automatiskt malltillgångar åt dig, till exempel tjänstdefinitionsfilenazure.yaml
ochinfra
mappen med infrastruktur-som-kod-filer.Välj en mall: Välj det här alternativet om du vill använda en befintlig mall som utgångspunkt. Som standard
azd
kan du bläddra bland mallar från Awesome AZD-galleriet , men du kan också konfigurera dina egna mallgallerier. När du väljer en mall läggs mallens tillgångar till i din befintliga projektkatalog.
Information om vart och ett av dessa arbetsflöden beskrivs i avsnitten nedan.
Du kan följa stegen framåt med ditt eget projekt. Men om du föredrar att följa med i ett exempelprogram klonar du följande startdatabas till en tom katalog på datorn:
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Öppna valfritt kommandoradsverktyg till projektets rotkatalog.
azd init
Kör kommandot för att initiera mallen.azd init
När du uppmanas till det väljer du alternativet För att använda kod i den aktuella katalogen.
azd
analyserar projektet och ger en sammanfattning av de identifierade tjänsterna och rekommenderade Azure-värdresurser.Välj Bekräfta och fortsätt initiera min app.
azd
genererar följande tillgångar i projektets rotkatalog:- En
azure.yaml
fil med lämpliga tjänstdefinitioner. - En
infra
mapp med infrastruktur-som-kod-filer för att etablera och distribuera projektet till Azure. - En
.azure
mapp med miljövariabler som angetts i en.env
fil.
Mer information om den här identifierings- och genereringsprocessen finns senare i artikeln.
- En
De genererade filerna fungerar som de är för den angivna exempelappen och kan även för dina egna appar. Om det behövs kan de genererade filerna ändras så att de passar dina behov. Du kan till exempel behöva ändra filerna infrastruktur som kod i
infra
mappen ytterligare om din app förlitar sig på Azure-resurser utöver de som identifierades avazd
.azd up
Kör kommandot för att etablera och distribuera din app till Azure.azd up
När du uppmanas till det väljer du önskad prenumeration och plats för att påbörja etablerings- och distributionsprocessen.
När processen är klar klickar du på länken i
azd
utdata för att öppna appen i webbläsaren.
Utforska initieringsstegen
När du väljer Använd kod i det aktuella katalogarbetsflödetazd init
analyserar kommandot projektet och skapar kod automatiskt baserat på vad den identifierar. I avsnitten nedan beskrivs information om hur den här processen fungerar och vilka tekniker som stöds för närvarande.
Detection
Kommandot azd init
identifierar projektfiler för språk som stöds i din projektkatalog och underkataloger. azd
genomsöker även paketberoenden för att samla in information om webbramverk eller databaser som appen använder. Om det behövs kan du manuellt lägga till eller redigera de identifierade komponenterna enligt beskrivningen i bekräftelsesammanfattningsprompten.
Den aktuella identifieringslogik är följande:
- Språk som stöds:
- Python
- JavaScript/TypeScript
- .NET
- Java
- Databaser som stöds:
- MongoDB
- PostgreSQL
- För Python och JavaScript/TypeScript identifieras webbramverk och databaser automatiskt.
- När ett JavaScript-/TypeScript-projekt använder ett webbramverk på klientsidan (eller på klientsidan) klassificeras det som en klientdelstjänst. Om tjänsten använder ett klientwebbramverk som för närvarande inte identifieras kan du välja JQuery för att tillhandahålla motsvarande klassificering och beteende för klientdelstjänsten.
Generation
När du har bekräftat de identifierade komponenterna azd init
genererar du de infrastruktur-som-kod-filer som behövs för att distribuera ditt program till Azure.
Generationslogik är följande:
- Värdar som stöds:
- Azure Container Apps.
- För databaser används den mappning mellan databasteknik och tjänst som stöds:
- MongoDB: Azure CosmosDB API för MongoDB
- PostgreSQL: Flexibel Server för Azure Database for PostgreSQL
- Redis: Azure Container Apps Redis-tillägg
- Tjänster som använder databaser har miljövariabler som ger anslutning till databasen som förkonfigureras som standard.
- När både klient- och serverdelstjänster identifieras uppdateras CORS-konfigurationen på Azure-värden för serverdelstjänster så att standardvärddomänen för klientdelstjänster tillåts. Detta kan ändras eller tas bort vid behov i infrastruktur som kodkonfigurationsfiler.
Lägga till stöd för dev-containrar
Du kan också göra mallen kompatibel med utvecklingscontainrar och Codespaces. Med en utvecklingscontainer kan du använda en container som en komplett utvecklingsmiljö. Det kan användas för att köra ett program, för att separera verktyg, bibliotek eller körningar som behövs för att arbeta med en kodbas och för att underlätta kontinuerlig integrering och testning. Dev-containrar kan köras lokalt eller via fjärranslutning i ett privat eller offentligt moln. (Källa: https://containers.dev/)
Så här lägger du till stöd för dev-containrar:
Skapa en .devcontainer-mapp i projektets rot.
Skapa en
devcontainer.json
fil i.devcontainer
mappen med önskade konfigurationer. Startmallenazd
innehåller en exempelfildevcontainer.json
som du kan kopiera till projektet och ändra efter behov.
Läs mer om att arbeta med dev-containrar i Visual Studio Code-dokumentationen.
Lägga till stöd för en CI/CD-pipeline
Du kan också lägga till stöd för CI/CD i mallen med hjälp av GitHub-åtgärder eller Azure DevOps med hjälp av följande steg:
Lägg till en
.github
mapp för GitHub-åtgärder eller en.ado
mapp för Azure DevOps i roten för projektet.Lägg till en arbetsflödesfil i den nya mappen. Startmallen
azd
innehåller en GitHub Actions-exempelarbetsarbetsfil och Azure DevOps Pipelines-exempelfiler för varje plattform som du kan kopiera till projektet och ändra efter behov.Du kan också behöva uppdatera
main.parameters.json
filen i mappeninfra
med de miljövariabler som krävs för att arbetsflödet ska kunna köras.
Konfigurera CI/CD-pipelinen
Om mallen innehåller stöd för GitHub Actions eller Azure Pipelines kan du konfigurera en CI/CD-pipeline med hjälp av följande steg:
Kör följande kommando för att skicka uppdateringar till lagringsplatsen. GitHub Actions-arbetsflödet utlöses på grund av uppdateringen.
azd pipeline config
Använd webbläsaren och gå till GitHub-lagringsplatsen för projektet.
Välj Åtgärder för att se arbetsflödet köras.
Rensa resurser
När du inte längre behöver resurserna som skapats i den här artikeln kör du följande kommando:
azd down
Se även
- Skapa Bicep-filer med Visual Studio Code för en introduktion till att arbeta med Bicep-filer.
- Bicep-exempel
- Så här dekompilera Azure Resource Manager-mallar (ARM-mallar) till Bicep
- Azure Developer CLI:s azure.yaml-schema
Begär hjälp
Information om hur du skickar in en bugg, begär hjälp eller föreslår en ny funktion för Azure Developer CLI finns på felsöknings - och supportsidan .
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för