Pracovní postupy publikování v Azure Developer CLI

Příkaz azd publish umožňuje vytvářet a odesílat image kontejnerů do registru kontejnerů, jako je Azure Container Registry nebo Docker Hub, aniž byste je okamžitě nasadili do prostředku Azure.

Oddělením kroků sestavení a push od kroku nasazení můžete implementovat pokročilejší pracovní postupy nasazení, jako je například vzorec "postavit jednou, nasadit všude". Tento přístup je užitečný pro kontejnerizované aplikace, které cílí na Azure Container Apps nebo Azure Kubernetes Service (AKS).

Proč používat azd publish?

Ve standardním azd pracovním postupu azd deploy provádí příkaz tři akce v posloupnosti:

  1. Sestavení: Sestaví kód aplikace do image kontejneru.
  2. Push: Nahraje image do registru.
  3. Nasazení: Aktualizuje hostující službu Azure (například Container Apps), aby se spustila nová image.

I když je tento přístup vhodný pro vývoj v rámci iterací, předpokládá se, že každé nasazení vyžaduje nový build. V produkčních scénářích často chcete:

  • Jednou sestavte a nasaďte všude: Vytvořte jeden artefakt (image), otestujte ho ve vývojovém prostředí a pak ho nasadte do produkčního prostředí bez jeho opětovného sestavení.
  • Centralizované artefakty: K ukládání imagí pro všechna vaše prostředí použijte jednu sdílenou službu Azure Container Registry (ACR).
  • Zlepšení zabezpečení: Zajistěte, aby se do produkčního prostředí nasazovaly jenom ověřené a otestované image.

azd publish umožňuje tyto scénáře zpracováním pouze kroků 1 a 2 (sestavení a nabízení). Pomocí předpublikovaného image můžete pak použít azd deploy s konkrétními flagy ke zpracování kroku 3 (Nasazení).

Klíčové funkce

  • Nezávislé publikování: Publikování imagí do registru bez aktivace nasazení
  • Vlastní cíle: Pomocí příznaku --to určete přesně, kam se má obrázek přenést ([registry/]repository[:tag], přepisuje výchozí konvence pojmenování).
  • Podpora registru třetích stran: Odesílat do externích registrů (jako je Docker Hub) kromě registru Azure Container Registry.
  • Podpora háku: Podporuje prepublish a postpublish háky pro vlastní automatizaci.
  • Cílení na služby: Aktuálně podporuje služby hostované v Azure Container Apps a AKS.

Usage

Sestavení a publikování image pro konkrétní službu definovanou ve vašem azure.yaml:

azd publish <service-name>

Sestavení a publikování všech služeb:

azd publish --all

Parametry

Flag Description
--all Publikuje všechny služby definované v .azure.yaml
--from-package <image> Používá existující místní image nebo balíček místo sestavení ze zdroje.
--to <image-ref> Určuje odkaz na cílovou image (například <your-registry>.azurecr.io/my-app:v1). Přepíše výchozí pojmenování v azure.yaml.

Examples

Publikujte konkrétní službu na vlastní značku:

azd publish api-service --to <your-registry>.azurecr.io/api-service:v1.0.0

Publikovat místní image do vzdáleného registru:

Pokud jste image už vytvořili místně (například: local-api:dev), můžete ji označit a odeslat pomocí azdpříkazu :

azd publish api-service --from-package local-api:dev --to <your-registry>.azurecr.io/api-service:v1.0.0

Scénář: Sestavení jednou, nasazení všude

Běžný produkční pracovní postup zahrnuje vytvoření image jednou a její podporu prostřednictvím několika prostředí, jako je vývoj –> testování –> Prod. Dosáhnete toho pomocí kombinace azd publish a azd deploy.

  1. Publikujte obrázek:

    Sestavte kód a nasdílejte ho do sdíleného registru.

    azd publish api-service --to <your-registry>.azurecr.io/my-app:v1.0.0
    
  2. Nasazení do vývojového prostředí:

    Nasaďte konkrétní verzi image do vývojového prostředí. Příznak --from-package říká azd deploy, aby přeskočil kroky sestavení a nahrání a pouze aktualizoval konfiguraci služby.

    azd env select dev
    azd deploy api-service --from-package <your-registry>.azurecr.io/my-app:v1.0.0
    
  3. Zvýšení úrovně do produkčního prostředí:

    Po testování ve vývojovém prostředí nasaďte stejný odkaz na image do produkčního prostředí.

    azd env select prod
    azd deploy api-service --from-package <your-registry>.azurecr.io/my-app:v1.0.0
    

Porovnání s jinými příkazy

Command Provedené akce Nejlepší pro
azd publish Sestavení -> Push Pipeliny CI/CD, vytváření artefaktů, pracovní postupy Postavit jednou
azd publish --from-package Jenom nabízení Odesílá předem vytvořené artefakty do prostředí.
azd deploy Sestavení –> Odeslání –> Nasazení Standardní iterace vývoje (vnitřní smyčka).
azd deploy --from-package Nasadit pouze Nasazení předem připravených nebo předem publikovaných artefaktů do prostředí
azd up Zajištění – Sestavení –>> Nahrání –> Nasazení Začínáme inicializací nových prostředí od začátku

Poznámka:

Výchozí chování azd up zůstává beze změny. Stále orchestruje kompletní proces od začátku do konce. Pracovní postupy v azure.yaml můžete však přizpůsobit tak, aby bylo možné v případě potřeby použít azd publish.

Konfigurace v azure.yaml

Nakonfigurujte výchozí nastavení Dockeru pro vaše služby v azure.yaml. Příkaz azd publish tato nastavení respektuje, pokud je nepřepíše příznakem jako --to.

name: my-app
services:
  api:
    project: ./src/api
    host: containerapp
    docker:
      registry: 'docker.io/myusername' # Default registry
      image: 'my-api'                  # Default image name
      tag: 'latest'                    # Default tag

Při této konfiguraci by spuštěním azd publish api přeneslo do docker.io/myusername/my-api:latest.

Další kroky