Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En Azure Developer CLI-mall (azd) är en koddatabas som följer konventionerna i azd. Den kombinerar projektkonfiguration, infrastruktur som kod och valfri programkälla så att du kan skapa repeterbara Azure miljöer och distributioner.
Mallar kan ha stöd för olika projekttyper, bland annat:
- Ett komplett program med en eller flera distributionsbara tjänster.
- En lösning endast för infrastruktur utan programkod.
- En återanvändbar startpunkt som en annan utvecklare kan initiera och utöka.
- Ett befintligt projekt som du förbereder för etablering och distribution med
azd.
I den här artikeln beskrivs strukturen för en mall och hur azd kommandon använder dess filer.
Varför ska jag använda en mall?
En mall samlar in de beslut som krävs för att köra ett projekt på Azure. Beroende på projektet kan det definiera:
- Azure resurser och deras konfiguration.
- Distributionsbara programtjänster och paketeringsinstruktioner.
- Anslutningar mellan programtjänster och Azure resurser.
- Miljöspecifika parametrar och utdata.
- Lokal utveckling, kontinuerlig integrering och konfiguration av kontinuerlig leverans.
Eftersom konfigurationen lagras med projektet kan team granska ändringar i källkontrollen och skapa konsekventa utvecklings-, test- och produktionsmiljöer.
Hur azd använder en mall
Filerna i en mall stöder olika steg i azd arbetsflödet:
-
azd initinitierar projektet och skapar enazdmiljö. Den kan också använda GitHub Copilot för att generera en första mall eller kopiera en befintlig mall. -
azd provisionutvärderar infrastrukturdefinitionerna och skapar eller uppdaterar Azure resurser. -
azd packageförbereder distributionsbara programtjänster enligtazure.yaml. -
azd deployassocierar varje tjänst med dess Azure värd och distribuerar programpaketet. -
azd upkör etablerings-, paketerings- och distributionsstegen som ett kombinerat arbetsflöde.
Mallfilerna förblir vanliga källfiler under hela den här processen. Du kan granska, redigera och version dem med resten av projektet.
Utforska CLI-mallstrukturen för Azure Developer
azd mallar är standardkodlagringsplatser med extra konfigurations- och infrastrukturtillgångar. De flesta mallar använder följande struktur:
-
azure.yamlfile – Definierar projektet och mappar distributionsbara källkataloger till Azure resurser. -
infrafolder – Innehåller de Bicep- eller Terraform-infrastruktur-som-kod-filer som skapar Azure resurser. -
srcmapp – innehåller ofta distributionsbar källkod för program. Endast infrastrukturmallar kan utelämna programkällan, och programmallar kan använda andra källkatalognamn. -
.azurefolder – Innehåller lokala miljöer och värden som skapats avazd. Den här mappen är lokalt projekttillstånd och delas normalt inte som en del av en återanvändbar mall.
En vanlig azd mall kan till exempel matcha följande mappstruktur:
contoso-project/
├── azure.yaml # azd project and service configuration
├── infra/
│ ├── main.bicep # Infrastructure entry point
│ └── main.parameters.json # Maps azd values to Bicep parameters
├── src/ # Optional application source
│ ├── api/
│ └── web/
├── .github/workflows/ # Optional GitHub Actions pipelines
└── .azure/ # Local environment state; don't distribute
azd mallar kan också innehålla en eller flera av följande mappar:
-
.githubmapp – Innehåller CI/CD-arbetsflödesfiler för GitHub Actions. -
.azdomapp – Om du väljer att använda Azure-pipelines för CI/CD definierar du arbetsflödeskonfigurationsfilerna i den här mappen. -
.devcontainerfolder – Definierar en utvecklingscontainermiljö för projektet.
Följande diagram visar hur de primära malltillgångarna fungerar tillsammans:
flowchart LR
AZ[azure.yaml] -->|Defines services| SRC[Application source]
AZ -->|Selects provider and path| INFRA[Infrastructure as code]
INFRA -->|Provisions| RES[Azure resources]
INFRA -->|Exports values| ENV[azd environment]
ENV -->|Configures| SRC
AZ -->|Maps services to| RES
Obligatoriska och valfria tillgångar
Den exakta strukturen varierar beroende på projekt, men de flesta mallar använder följande tillgångar.
azure.yaml
Filen azure.yaml är den primära projektkonfigurationsfilen. Den definierar projektnamnet och kan definiera distributionsbara tjänster, infrastrukturleverantörer, krokar, arbetsflöden och annat azd beteende.
För en programtjänst azure.yaml identifierar vanligtvis:
- Sökvägen till programmets källkod.
- Programmeringsspråket eller paketeringsstrategin.
- Den Azure tjänst som är värd för programmet.
- Inställningar för build, distribution, container eller Kubernetes.
Mallar som endast omfattar infrastruktur kan utelämna applikationstjänster. Se schemat för den fullständiga konfigurationsmodellenazure.yaml.
I följande exempel definieras två programtjänster. Tjänstnamnen, källsökvägarna, språken och värdmålen anger azd vad de ska paketera och var de ska distribueras:
name: store
services:
api:
project: ./src/api
language: js
host: containerapp
web:
project: ./src/web
language: js
host: staticwebapp
Infrastruktur som kod
De flesta mallar innehåller en infra katalog med Bicep- eller Terraform-filer. Dessa filer definierar Azure resurser, rolltilldelningar, nätverk, programinställningar och distributionsutdata som krävs av projektet.
För standardprovidern azd Bicep används infra/main.bicep vanligtvis som distributionsstartpunkt och infra/main.parameters.json för att mappa azd miljövärden till Bicep parametrar. Terraform-mallar använder infra/main.tf ofta och relaterade Terraform-filer.
Till exempel kan en Bicep parameterfil skicka värden som valts av azd till infrastrukturdistributionen:
{
"parameters": {
"environmentName": { "value": "${AZURE_ENV_NAME}" },
"location": { "value": "${AZURE_LOCATION}" }
}
}
När etableringen med Bicep är klar lagrar azd utdata från startpunkten som miljövärden. Programtjänster och krokar kan använda dessa värden för resursslutpunkter, namn och annan körningskonfiguration.
output API_ENDPOINT string = api.outputs.uri
Programkälla
Programkällan är valfri. När en mall innehåller distributionsbara tjänster pekar varje tjänstdefinition i azure.yaml på källkatalogen. En mall kan ordna tjänster under src, använda kataloger någon annanstans på lagringsplatsen eller peka en tjänst på lagringsplatsens rot.
Själva mappnamnet är inte betydande. Värdet project i azure.yaml avgör var azd varje tjänst hittas.
Miljökonfiguration
Katalogen .azure innehåller lokala miljötillstånd och värden som skapats av azd. Den kan innehålla utdatavärden för prenumeration, plats, resursnamn, slutpunkt och distribution för flera miljöer.
Behandla den här katalogen som lokalt tillstånd i stället för en återanvändbar malltillgång. Checka inte in miljöfiler som innehåller hemligheter eller miljöspecifika värden.
Stödtillgångar
Mallar kan också innehålla:
- definitioner för GitHub Actions eller Azure-pipelines
- Dockerfiles och containerkonfiguration.
- Konfiguration av utvecklingscontainer.
- Kommando- och servicehookar.
- Tester, skript och projektdokumentation.
Dessa tillgångar är valfria och bör endast inkluderas när de stöder den avsedda mallupplevelsen.
Tjänst- och resursassociation
Om du vill distribuera en programtjänst azd måste du associera dess definition med azure.yaml en etablerad Azure resurs. Som standard hittar azd en resurs vars azd-service-name-tagg matchar tjänstens namn.
Till exempel mappar en tjänst med namnet api till en resurs taggad med azd-service-name: api. Du kan i stället använda tjänstegenskapen resourceName för att uttryckligen identifiera distributionsmålet.
Följande Bicep-uttryck lägger till identifieringstaggen i de befintliga taggarna för en resurs:
tags: union(tags, {
'azd-service-name': 'api'
})
Behåll tjänstnamn, inställningar för resursidentifiering, infrastrukturutdata och programmiljövariabler justerade när du redigerar en mall.
Skapa eller anpassa en mall
Den rekommenderade redigeringsupplevelsen är att köra azd init och välja Konfigurera med GitHub Copilot (förhandsgranskning). Den dedikerade Copilot-agent-sessionen kan analysera befintliga filer, planera ett nytt projekt, generera malltillgångar och verifiera resultatet. Det här arbetsflödet och andra redigeringsmetoder finns i Börja med en ny mall.
De genererade filerna är inte kopplade till Copilot. Du kan utforska och redigera mallfilerna direkt efter initieringen. Du kan också skapa samma filer manuellt eller med en annan AI-kodningsagent.
Om en mall från Microsoft, din organisation eller utvecklarcommunityn redan har en användbar arkitektur kan du börja från den befintliga mallen och anpassa den för ditt projekt. Bläddra bland tillgängliga mallar i mallgallerierna.
Riktlinjer för mallanvändning
Varje mall licensieras av ägaren enligt det avtal som medföljer mallen. Ta reda på vilken licens som gäller innan du använder eller distribuerar en mall.
Microsoft ansvarar inte för icke-Microsoft mallar och kontrollerar dem inte för säkerhets-, sekretess-, kompatibilitets- eller prestandaproblem. Mallar, inklusive mallar som tillhandahålls av Microsoft, stöds inte av ett Microsoft supportprogram eller tjänst och tillhandahålls som de är utan garanti.
Granska alla mallfiler innan du driftsätter. I synnerhet utvärdera rolltilldelningar, nätverksexponering, autentiseringsmetoder, tjänstnivåer, resursplatser och förväntade kostnader.