Az Azure Developer CLI-sablonok áttekintése

Az Azure Developer CLI (azd) sablon egy olyan kódadattár, amely a azd konvenciókat követi. Kombinálja a projektkonfigurációt, az infrastruktúrát kódként és opcionális alkalmazásforrást, hogy megismételhető Azure környezeteket és üzembe helyezéseket hozzon létre.

A sablonok különböző projekttípusokat támogatnak, például:

  • Egy teljes alkalmazás egy vagy több üzembe helyezhető szolgáltatással.
  • Csak infrastruktúra-megoldás alkalmazáskód nélkül.
  • Egy újrafelhasználható kiindulási pont, amelyet egy másik fejlesztő inicializálhat és kibővíthet.
  • Egy meglévő projekt, amelyet a azd használatával készít elő üzembe helyezésre és telepítésre.

Ez a cikk ismerteti egy sablon felépítését, valamint azt, hogy a azd parancsok hogyan használják annak fájljait.

Miért érdemes sablont használni?

A sablon rögzíti a projektek Azure való futtatásához szükséges döntéseket. A projekttől függően a következőket határozhatja meg:

  • Azure erőforrásokat és azok konfigurációját.
  • Üzembe helyezhető alkalmazásszolgáltatások és csomagolási utasítások.
  • Az alkalmazásszolgáltatások és Azure erőforrások közötti kapcsolatok.
  • Környezetspecifikus paraméterek és kimenetek.
  • Helyi fejlesztés, folyamatos integráció és folyamatos kézbesítési konfiguráció.

Mivel a konfigurációt a projekt tárolja, a csapatok áttekinthetik a forráskövetés változásait, és konzisztens fejlesztési, tesztelési és éles környezeteket hozhatnak létre.

Sablon azd használata

A sablon fájljai a munkafolyamat különböző szakaszait azd támogatják:

  • azd init inicializálja a projektet, és létrehoz egy azd környezetet. A GitHub Copilot használatával is létrehozhat egy kezdeti sablont, vagy másolhat egy meglévő sablont.
  • azd provisionkiértékeli az infrastruktúra-definíciókat, és létrehozza vagy frissíti Azure erőforrásokat.
  • azd package a alapján előkészíti az azure.yamlüzembe helyezhető alkalmazásszolgáltatásokat.
  • azd deploy társítja az egyes szolgáltatásokat az Azure-gazdagépével, és telepíti az alkalmazáscsomagot.
  • azd up A kiépítési, csomagolási és üzembe helyezési fázisokat összevont munkafolyamatként futtatja.

A sablonfájlok a folyamat során normál forrásfájlok maradnak. Áttekintheti, szerkesztheti és verziókezelheti őket a projekt többi részével együtt.

Az Azure Developer CLI-sablonstruktúra megismerése

azd A sablonok standard kódtárak extra konfigurációval és infrastruktúra-eszközökkel. A legtöbb sablon a következő struktúrát használja:

  • azure.yaml fájl – Meghatározza a projektet, és leképezi az üzembe helyezhető forráskönyvtárakat Azure erőforrásokra.
  • infra mappa – Az Azure-erőforrásokat létrehozó Bicep vagy Terraform-infrastruktúra kódként való fájljait tartalmazza.
  • src mappa – Általában üzembe helyezhető alkalmazás forráskódját tartalmazza. A csak infrastruktúra-sablonok kihagyhatják az alkalmazás forrását, és az alkalmazássablonok más forráskönyvtárneveket is használhatnak.
  • .azure mappa – A által létrehozott azdhelyi környezeteket és értékeket tartalmazza. Ez a mappa helyi projektállapot, és általában nem egy újrafelhasználható sablon részeként van megosztva.

Egy gyakori azd sablon például megfelelhet a következő mappastruktúrának:

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 A sablonok opcionálisan az alábbi mappák egyikét is tartalmazzák:

  • .github könyvtár - A GitHub Actions CI/CD-munkafolyamatainak fájljait tartalmazza.
  • .azdo mappa – Ha úgy dönt, hogy az Azure Pipelines for CI/CD-t használja, adja meg a munkafolyamat konfigurációs fájljait ebben a mappában.
  • .devcontainer mappa – Fejlesztési tárolókörnyezetet definiál a projekthez.

Az alábbi ábra bemutatja, hogyan működnek együtt az elsődleges sablonegységek:

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

Kötelező és választható eszközök

A pontos struktúra projektenként eltérő, de a legtöbb sablon az alábbi objektumokat használja.

azure.yaml

A azure.yaml fájl az elsődleges projektkonfigurációs fájl. Meghatározza a projekt nevét, és meghatározhatja az üzembe helyezhető szolgáltatásokat, infrastruktúra-szolgáltatókat, horgokat, munkafolyamatokat és egyéb azd viselkedést.

Egy alkalmazásszolgáltatás esetében gyakran azonosítja a azure.yaml következőt:

  • Az alkalmazás forrásának elérési útja.
  • A programozási nyelv vagy a csomagolási stratégia.
  • Az alkalmazást üzemeltető Azure szolgáltatás.
  • Build-, üzembehelyezési, konténer- vagy Kubernetes-beállítások.

A csak infrastruktúra-sablonok kihagyhatják az alkalmazásszolgáltatásokat. A teljes konfigurációs modellért tekintse meg a sémátazure.yaml.

Az alábbi példa két alkalmazásszolgáltatást határoz meg. A szolgáltatásnevek, a forrásútvonalak, a nyelvek és az üzemeltetési célpontok megmondják a azd számára, hogy mit csomagoljon be, és hova telepítse:

name: store
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
  web:
    project: ./src/web
    language: js
    host: staticwebapp

Infrastruktúra mint kód

A legtöbb sablon Bicep infra vagy Terraform-fájlokat tartalmazó könyvtárat tartalmaz. Ezek a fájlok határozzák meg a projekt által igényelt Azure erőforrásokat, szerepkör-hozzárendeléseket, hálózatkezelést, alkalmazásbeállításokat és üzembe helyezési kimeneteket.

Az alapértelmezett Bicep-szolgáltató esetében a infra/main.bicep jellemzően a azd elemet használja az üzembe helyezés belépési pontjaként, a infra/main.parameters.json elemet pedig a azd környezeti értékeinek Bicep-paraméterekhez való leképezésére. A Terraform-sablonok gyakran használják infra/main.tf és a kapcsolódó Terraform-fájlokat.

Például egy Bicep-paraméterfájl átadhatja a(z) azd által kiválasztott értékeket az infrastruktúra telepítéséhez:

{
  "parameters": {
    "environmentName": { "value": "${AZURE_ENV_NAME}" },
    "location": { "value": "${AZURE_LOCATION}" }
  }
}

Ha Bicep kiépítése befejeződött, azd a belépési pont kimeneteit környezeti értékekként tárolja. Az alkalmazásszolgáltatások és a horgok ezeket az értékeket használhatják erőforrásvégpontokhoz, nevekhez és egyéb futtatókörnyezet-konfigurációkhoz.

output API_ENDPOINT string = api.outputs.uri

Alkalmazás forrása

Az alkalmazás forrása nem kötelező. Ha egy sablon üzembe helyezhető szolgáltatásokat tartalmaz, minden szolgáltatásdefiníció a azure.yaml forráskönyvtárára mutat. A sablonok rendszerezhetik a szolgáltatásokat src, használhatnak könyvtárakat az adattár más részein, vagy egy szolgáltatást az adattár gyökerére irányíthatnak.

Maga a mappanév nem jelentős. A project benne lévő azure.yaml érték határozza meg, hogy hol azd találhatók az egyes szolgáltatások.

Környezet konfigurációja

A .azure könyvtár a helyi környezet állapotát és a létrehozott azdértékeket tartalmazza. Több környezet előfizetési, hely-, erőforrás-neve-, végpont- és üzembehelyezési kimeneti értékeit is tartalmazhatja.

Kezelje ezt a könyvtárat helyi állapotként, nem pedig újrafelhasználható sablonobjektumként. Ne véglegesítse a titkos kódokat vagy környezetspecifikus értékeket tartalmazó környezeti fájlokat.

Támogató eszközök

A sablonok a következőket is tartalmazhatják:

  • A GitHub Actions vagy az Azure Pipelines definíciói.
  • Dockerfiles és tárolókonfiguráció.
  • Fejlesztői konténer konfigurációja.
  • Parancs- és szolgáltatáskapcsok.
  • Tesztek, szkriptek és projektdokumentáció.

Ezek az elemek nem kötelezőek, és csak akkor szerepeljenek, ha támogatják a sablon tervezett használatát.

Szolgáltatás- és erőforrás-társítás

Egy alkalmazásszolgáltatás üzembe helyezéséhez a azd-nak a azure.yaml-ben lévő definícióját egy kiépített Azure-erőforráshoz kell társítania. Alapértelmezés szerint megkeres egy erőforrást, azd amelynek azd-service-name a címkéje megegyezik a szolgáltatás nevével.

Például egy api nevű szolgáltatás egy azd-service-name: api címkével ellátott erőforrásra képeződik le. Ehelyett a resourceName szolgáltatástulajdonság használatával explicit módon azonosíthatja az üzembe helyezési célt.

A következő Bicep kifejezés hozzáadja a felderítési címkét egy erőforrás meglévő címkéihez:

tags: union(tags, {
  'azd-service-name': 'api'
})

A sablon szerkesztésekor a szolgáltatásnevek, az erőforrás-felderítési beállítások, az infrastruktúra kimenetei és az alkalmazáskörnyezet változói igazodnak egymáshoz.

Sablon létrehozása vagy adaptálása

Az ajánlott szerkesztési folyamat érdekében futtassa a elemet, majd válassza a azd init lehetőséget. A dedikált Copilot-ügynök munkamenet elemezheti a meglévő fájlokat, segíthet egy új projekt megtervezésében, sabloneszközök létrehozásában és az eredmény ellenőrzésében. Ehhez a munkafolyamathoz és más szerzői módszerekhez tekintse meg az Új sablonnal való kezdés című témakört.

A létrehozott fájlok nincsenek Copilot kötve. A sablonfájlokat közvetlenül az inicializálás után is megvizsgálhatja és szerkesztheti . Ugyanezeket a fájlokat manuálisan vagy egy másik AI-kódolási ügynökkel is létrehozhatja.

Ha a Microsofttól, a szervezetétől vagy a fejlesztői közösségtől származó sablon már hasznos architektúrát biztosít, induljon ki a meglévő sablonból, és igazítsa a projektjéhez. Tallózzon az elérhető sablonok között a sablontárakban.

Sablonhasználati irányelvek

Minden sablont a tulajdonos a sablont kísérő szerződés alapján licencel. A sablon használata vagy terjesztése előtt határozza meg, hogy melyik licenc érvényes.

Microsoft nem felelős a nem Microsoft sablonokért, és nem veszi át őket biztonsági, adatvédelmi, kompatibilitási vagy teljesítményproblémák miatt. A sablonokra — beleértve a Microsoft által biztosított sablonokat is — nem terjed ki a Microsoft támogatási programja vagy szolgáltatása, és azokat adott állapotukban, garancia nélkül biztosítjuk.

A kiépítés előtt tekintse át az összes sablonfájlt. Különösen értékelje ki a szerepkör-hozzárendeléseket, a hálózati kitettséget, a hitelesítési módszereket, a szolgáltatási szinteket, az erőforrás-helyeket és a várható költségeket.

Következő lépések