Wdrażanie aplikacji internetowej w języku Go w usłudze Azure Container Apps
Z tego przewodnika Szybki start dowiesz się, jak wdrożyć konteneryzowaną aplikację internetową Języka Go w usłudze Azure Container Apps.
Usługa Azure Container Apps umożliwia wykonywanie kodu aplikacji spakowanego w dowolnym kontenerze bez konieczności zarządzania skomplikowaną infrastrukturą chmury lub złożonymi orkiestratorami kontenerów oraz bez obaw o środowisko uruchomieniowe lub model programowania. Typowe zastosowania usługi Azure Container Apps to: wdrażanie punktów końcowych interfejsu API, hostowanie aplikacji przetwarzania w tle, obsługa przetwarzania sterowanego zdarzeniami i uruchamianie mikrousług.
Postępuj zgodnie z tym samouczkiem, aby utworzyć obraz platformy Docker, wdrożyć ten obraz w usłudze Azure Container Registry i wdrożyć aplikację internetową Go w usłudze Azure Container Apps.
Wymagania wstępne
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Zainstalowany program Go: wersja 1.18 lub nowsza
- Docker Desktop
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom polecenie az login i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie az upgrade .
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
Uwaga
Zasoby usługi Azure Container Apps zostały zmigrowane z Microsoft.Web
przestrzeni nazw do Microsoft.App
przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Migracja przestrzeni nazw z witryny Microsoft.Web do Microsoft.App w marcu 2022 r.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Pobieranie przykładowej aplikacji
Aby wykonać czynności opisane w tym samouczku, potrzebujesz przykładowej aplikacji do konteneryzowania. Przykładowa aplikacja internetowa Języka Go jest dostępna w repozytorium gitHub msdocs-go-webapp-quickstart . Pobierz lub sklonuj przykładową aplikację na lokalną stację roboczą.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Tworzenie rejestru Azure Container Registry
Usługa Azure Container Registry umożliwia tworzenie i przechowywanie obrazów kontenerów oraz zarządzanie nimi. Użyjesz go do przechowywania obrazu platformy Docker zawierającego przykładową aplikację internetową Języka Go udostępnioną w przykładowym repozytorium wymienionym wcześniej.
Uruchom następujące polecenia, aby utworzyć usługę Azure Container Registry:
Grupę zasobów platformy Azure można utworzyć za pomocą polecenia az group create.
az group create \ --name <resourceGroupName> \ --location eastus
Utwórz usługę Azure Container Registry za pomocą polecenia az acr create .
az acr create \ --resource-group <resourceGroupName> \ --name <azureContainerRegistryName> \ --sku basic
Zaloguj się do wystąpienia kontenera platformy Azure za pomocą polecenia az acr login .
az acr login --name <azureContainerRegistryName>
Zastąp <resourceGroupName>
wartości i <azureContainerRegistryName>
odpowiednimi wartościami. Nazwa usługi Azure Container Registry musi być globalnie unikatowa.
Uwaga
Jeśli podczas uruchamiania polecenia wystąpi błąd podobny do poniższego az acr login
, upewnij się, że deamon platformy Docker jest uruchomiony w systemie:
You may want to use 'az acr login -n <azureContainerRegistryName> --expose-token' to get an access token, which does not require Docker to be installed.
2024-09-12 17:25:25.127779 An error occurred: DOCKER_COMMAND_ERROR
Kompilowanie i wypychanie obrazu platformy Docker
Po utworzeniu usługi Azure Container Registry skompiluj i wypchnij obraz platformy Docker przykładowej aplikacji internetowej Języka Go.
Uruchom następujące polecenia skompiluj i wypchnij obraz do rejestru:
Uzyskaj informacje o serwerze logowania za pomocą polecenia az acr show .
az acr show \ --name <azureContainerRegistryName> \ --resource-group <resourceGroupName> \ --query loginServer \ --output tsv
Skompiluj obraz platformy Docker lokalnie.
docker build -t <loginServer>/<imageName>:latest .
Wypchnij obraz platformy Docker do usługi Azure Container Registry.
docker push <loginServer>/<imageName>:latest
Sprawdź, czy obraz został pomyślnie wypchnięty do usługi Azure Container Registry za pomocą polecenia az acr repository list .
az acr repository list \ --name <azureContainerRegistryName> \ --output table
Zastąp loginServer
wartości , imageName
i azureContainerRegistryName
odpowiednimi wartościami. Nazwa obrazu to obraz platformy Docker, który jest wypychany do usługi Azure Container Registry, a później używany do wdrażania w usłudze Azure Container Apps.
Teraz, gdy masz już dostępny obraz w usłudze Azure Container Registry, możesz przystąpić do wdrażania aplikacji kontenera platformy Azure i jej środowiska.
Tworzenie środowiska usługi Azure Container Apps
Usługa Azure Container Apps nie ma złożoności orkiestratora kontenerów, ale nadal potrzebuje pewnego sposobu na ustanowienie bezpiecznych granic, czyli miejsc, w których wchodzą środowiska usługi Azure Container Apps. Aplikacje kontenera wdrożone w tym samym środowisku współużytkują tę samą sieć wirtualną i zapisują dzienniki w tym samym obszarze roboczym usługi Log Analytics. Przed wdrożeniem aplikacji kontenera platformy Azure należy wdrożyć środowisko.
Uruchom polecenie az containerapp env create, aby utworzyć środowisko usługi Azure Container Apps.
az containerapp env create \ --name <containerAppEnvName> \ --resource-group <resourceGroupName> \ --location "East US"
Wdrażanie w usłudze Azure Container Apps
Na tym etapie utworzono usługę Azure Container Registry, utworzono i wypchnięliśmy do niego obraz platformy Docker oraz utworzono środowisko usługi Azure Container Apps. Wszystko, co pozostało, to wdrożenie aplikacji.
Uruchom polecenie az containerapp create, aby wdrożyć aplikację internetową Go w usłudze Azure Container Apps.
az containerapp create \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--environment <containerAppEnvName> \
--image "<loginServer>/<imageName>:latest" \
--registry-server "<loginServer>" \
--registry-identity system \
--target-port 8080 \
--ingress external
Parametr --registry-identity system
konfiguruje tożsamość zarządzaną przypisaną przez system w aplikacji kontenera. Aplikacja kontenera używa tej tożsamości, a nie nazwy użytkownika/hasła, co jest mniej bezpieczne, do uwierzytelniania w rejestrze kontenerów. Polecenie automatycznie tworzy AcrPull
również przypisanie roli dla tożsamości, dzięki czemu jest autoryzowany do ściągania obrazów z rejestru. Aby używać tożsamości zarządzanych do uwierzytelniania i autoryzacji, rejestr musi być usługą Azure Container Registry.
Weryfikowanie adresu URL aplikacji internetowej
Uruchom polecenie az containerapp show, aby pobrać nazwę FQDN (w pełni kwalifikowaną nazwę domeny) ruchu przychodzącego aplikacji internetowej.
APP_FQDN=$(az containerapp show \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--query properties.configuration.ingress.fqdn \
--output tsv)
Następnie uruchom polecenie curl względem nazwy FQDN i potwierdź, że dane wyjściowe odzwierciedlają kod HTML witryny internetowej.
curl "https://$APP_FQDN"
Czyszczenie zasobów
Po zakończeniu pracy z przykładową aplikacją możesz usunąć wszystkie zasoby aplikacji z platformy Azure. Dzięki temu nie są naliczane opłaty i subskrypcja platformy Azure nie jest usuwana. Usunięcie grupy zasobów spowoduje również usunięcie wszystkich zasobów w grupie zasobów i jest najszybszym sposobem usunięcia wszystkich zasobów platformy Azure dla aplikacji.
Uruchom polecenie az group delete, aby usunąć grupę zasobów i jej zasoby.
az group delete \
--name <resourceGroupName> \
--no-wait