Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs wiersza polecenia Azure Developer (azd) może tworzyć, publikować i wdrażać obrazy kontenerów w kilku usługach hostingu platformy Azure. Przepływ pracy związany z kontenerami łączy środowisko docelowe, miejsce kompilacji i sposób publikowania. Najlepsza kombinacja zależy od aplikacji, narzędzi, które ma twój zespół, oraz sposobu promowania obrazów między środowiskami.
Użyj tego artykułu, aby dopasować te opcje do Twoich potrzeb. Porównuje następujące decyzje:
- Która usługa Azure hostuje kontener.
- Niezależnie od tego, czy
azdkompiluje obraz lokalnie, kompiluje go zdalnie w usłudze Azure Container Registry (ACR), czy używa istniejącego obrazu. - To, czy
azdpublikuje i wdraża obraz razem, czy w oddzielnych krokach.
Artykuł porównuje te usługi hostingu ogólnego przeznaczenia:
Zacznij od porównania elementów docelowych hostingu i opcji kompilacji obrazu. Po zapoznaniu się z tymi opcjami użyj ich, aby wybrać odpowiedni przepływ pracy w sekcji Porównanie przepływów pracy wdrażania kontenerów.
Porównanie obiektów docelowych hostingu kontenerów
Właściwość host w azure.yaml identyfikuje usługę Azure, do której azd wdraża Twój kontener. Wybierz hosta niezależnie od lokalizacji kompilacji obrazu.
| Wartość hosta | Cel hostingu Azure | Obieg kontenera | Zagadnienia do rozważenia |
|---|---|---|---|
containerapp |
Azure Container Apps i zadania usługi Container Apps | Zbuduj na podstawie projektu i pliku Dockerfile lub wdróż gotowy obraz. | Obsługuje zmienne środowiskowe na poziomie usługi i strategie wdrażania specyficzne dla aplikacji kontenerów. Użyj tej samej wartości hosta dla zadań usługi Container Apps. |
appservice |
Aplikacja internetowa systemu Linux dla kontenerów w usłudze Azure App Service | Zbuduj na podstawie projektu i pliku Dockerfile lub wdroż gotowy obraz. | Infrastruktura musi utworzyć witrynę gotową do uruchamiania kontenerów systemu Linux i skonfigurować dostęp do usługi ACR dla tożsamości zarządzanej.
azd deploy aktualizuje tylko odwołanie do obrazu. |
aks |
Azure Kubernetes Service | Utwórz obraz i wdróż manifesty platformy Kubernetes, wykresy Helm lub konfiguracje kustomize. | Zapewnia największą kontrolę, ale wymaga zarządzania konfiguracją klastra i platformy Kubernetes. Korzystanie z narzędzi Helm lub Kustomize z użyciem azd wymaga włączenia flag funkcji alfa. |
Hosty ai.endpoint i azure.ai.agent obsługują również konfigurację platformy Docker dla wyspecjalizowanych scenariuszy Microsoft Foundry. W przypadku tych scenariuszy zobacz Wdrażanie w internetowych punktach końcowych Microsoft Foundry oraz rozszerzenie agenta Microsoft Foundry.
Porównanie opcji kompilacji obrazu
Definicja usługi określa, czy azd tworzy obraz, czy zaczyna się od istniejącego obrazu.
| Opcja kompilacji | Wymagana konfiguracja | Gdzie jest uruchamiana kompilacja | Lokalny silnik kontenerów | Najlepiej nadaje się do |
|---|---|---|---|---|
| Kompilacja lokalna |
project i, opcjonalnie, docker |
Twoje środowisko programistyczne lub runner CI | Required | Szybkie iteracji programistyczne i środowiska kompilacji, które już udostępniają platformę Docker lub Podman. |
| Zdalna kompilacja usługi ACR |
project i docker.remoteBuild: true |
Azure Container Registry | Nie jest to wymagane, chyba że po niepowodzeniu kompilacji zdalnej następuje powrót do azd. |
Spójne kompilacje i środowiska w chmurze bez lokalnego silnika kontenerów. Udokumentowany przepływ pracy zdalnej kompilacji jest przeznaczony dla usługi Azure Container Apps. |
Istniejący obraz zarządzany przez program azd |
image |
Brak kompilacji źródłowej | Może być wymagane w przypadku operacji związanych z cyklem życia obrazu | Obrazy, które już istnieją lokalnie lub w rejestrze i które azd może pobrać, otagować i przesłać do rejestru. |
| Zdalne bezpośrednie przekazywanie obrazu |
image i docker.imagePassthrough: true |
Brak kompilacji | Niewymagane | W pełni określone obrazy zdalne, których zasób hostujący powinien używać bez zmian. |
Podczas czytania artykułów dotyczących konfiguracji poszczególnych opcji należy pamiętać o tych różnicach koncepcyjnych:
-
Wstępnie utworzony obraz używa
imagewłaściwości zamiastproject, iazdmoże nadal ściągać, tagować i wypychać. - Zdalna kompilacja ACR przechodzi na lokalną kompilację w Dockerze lub Podmanie, gdy kompilacja zdalna kończy się niepowodzeniem i jest dostępny obsługiwany silnik kontenerów.
-
Przekazywanie obrazu dalej wymaga w pełni kwalifikowanego odwołania do zdalnego obrazu obejmującego rejestr, nie można go łączyć z opcją
remoteBuild, i nie obsługuje też opcjiazd publish --from-packageaniazd publish --to, ponieważazdnie zarządza obrazem.
Aby uzyskać pełną konfigurację poszczególnych opcji, zobacz Obsługa kompilacji zdalnych za pomocą Azure Container Registry, Korzystanie z rejestrów kontenerów innych firm, Wdrożenia kontenerów App Service przy użyciu interfejsu wiersza polecenia Azure Developer CLI oraz docker schemat.
Porównanie przepływów pracy wdrażania kontenerów
Po porównaniu obiektów docelowych hostingu w sekcji Porównanie obiektów docelowych hostingu kontenerów i opcji kompilacji w obszarze Porównanie opcji kompilacji obrazu użyj poniższej tabeli, aby zidentyfikować najbardziej prawdopodobne przepływy pracy dla Twoich potrzeb.
| Jeśli musisz | Rozpocznij od | Dlaczego |
|---|---|---|
| Wdrażanie konteneryzowanej aplikacji na platformie bezserwerowej | Azure Container Apps z kompilacją lokalną | Ten przepływ pracy kompiluje i wdraża projekt oparty na pliku Dockerfile w jednym przepływie pracy programowania. |
| Kompilowanie bez lokalnego instalowania platformy Docker lub narzędzia Podman | Azure Container Apps ze zdalnym kompilowaniem w ACR | ACR kompiluje obraz na podstawie projektu i pliku Dockerfile na platformie Azure. |
| Wdrażanie obrazu generowanego przez inny system kompilacji | Azure Container Apps lub App Service ze wstępnie utworzonym obrazem | Właściwość image identyfikuje istniejący obraz zamiast kodu źródłowego do skompilowania. |
| Ponowne używanie obrazu zdalnego bez ściągania, tagowania lub wypychania go | Azure Container Apps z przekazywaniem obrazu |
azd przekazuje w pełni kwalifikowane odwołanie do obrazu bezpośrednio do zasobu hostującego. |
| Hostowanie tradycyjnej aplikacji internetowej jako kontenera systemu Linux | Usługa Web App for Containers w usłudze Azure App Service | Usługa App Service zapewnia zintegrowaną platformę hostingu aplikacji internetowych, natomiast infrastruktura steruje konfiguracją witryny przystosowanej do kontenerów. |
| Kontrolowanie manifestów platformy Kubernetes i konfiguracji klastra | Azure Kubernetes Service (AKS) |
azd może zbudować i opublikować obraz, a następnie wdrożyć manifesty Kubernetes, charty Helm lub konfiguracje Kustomize. |
| Kompiluj raz i promuj ten sam obraz za pomocą środowisk |
azd publish, a następnie azd deploy --from-package |
Publikowanie i wdrażanie są oddzielne, więc każde środowisko otrzymuje ten sam obraz. |
Każdy wiersz łączy opcje hostowania z Porównania miejsc docelowych hostowania kontenerów oraz opcje kompilacji z Porównania opcji kompilacji obrazu, stanowiąc punkt wyjścia. Skonfiguruj swój wybór w azure.yaml i pozwól plikom Bicep lub Terraform aprowizować odpowiednie zasoby hostingu i rejestru.
Minimalna definicja usługi określa element host, źródło kompilacji i plik Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Aby dostosować tę definicję do innego hosta, zmień host wartość i postępuj zgodnie z kontraktem konfiguracji dla hosta:
- Wdrażanie do usługi Azure Container Apps przy użyciu Azure Developer CLI
- Wdrożenia kontenerów usługi App Service za pomocą interfejsu wiersza polecenia dewelopera Azure
- Obsługa narzędzi Helm i Kustomize
Porównanie poleceń publikowania i wdrażania
Po wybraniu hosta i opcji kompilacji wybierz, czy chcesz połączyć czy rozdzielić publikowanie obrazu i wdrożenie.
| Command | Działania na obrazie | Akcja zasobu platformy Azure | Użyj, gdy |
|---|---|---|---|
azd up |
Kompilowanie i wypychanie | Aprowizuj i wdróż | Chcesz utworzyć lub zaktualizować kompletne środowisko i wdrożyć aplikację w jednym przepływie pracy. |
azd deploy |
Kompilowanie i wypychanie | Wdrażanie | Infrastruktura już istnieje i chcesz wdrożyć zmiany aplikacji. |
azd publish |
Kompilowanie i wypychanie | Żadne | Chcesz utworzyć artefakt w rejestrze bez wdrażania go.
azd publish obsługuje usługi Container Apps i AKS. |
azd publish --from-package <image> |
Wypychanie istniejącego obrazu lokalnego | Żadne | Inny proces zbudował obraz i chcesz, aby azd go opublikował. |
azd deploy --from-package <image> |
Żadne | Wdrażanie | Chcesz wdrożyć określony obraz bez jego ponownego kompilowania. |
Na przykład opublikuj wersję obrazu i wdróż ten sam obraz w innym środowisku:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Ten przepływ pracy zapobiega różnicom, które mogą wystąpić podczas odbudowywania obrazu dla każdego środowiska. Aby zapoznać się z kompletnym przepływem pracy publikowania, zobacz przepływy pracy publikowania w Azure Developer CLI.