Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 uruchamianie kodu aplikacji spakowanego w dowolnym kontenerze bez zarządzania skomplikowaną infrastrukturą chmury lub złożonymi orkiestratorami kontenerów. Eliminuje również konieczność martwienia się 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.
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, zarejestruj przestrzenie nazw Microsoft.App, Microsoft.ContainerRegistry i Microsoft.OperationalInsights.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Uwaga
Zasoby usługi Azure Container Apps zmigrowane z przestrzeni nazw Microsoft.Web do przestrzeni nazw Microsoft.App. Aby uzyskać więcej informacji, zobacz Migracja przestrzeni nazw z witryny Microsoft.Web do Microsoft.App w marcu 2022 r.
Pobieranie przykładowej aplikacji
Aby wykonać czynności opisane w tym samouczku, potrzebujesz przykładowej aplikacji do konteneryzowania. Repozytorium github msdocs-go-webapp-quickstart udostępnia przykładową aplikację internetową Języka Go. 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. Służy do przechowywania obrazu Docker zawierającego przykładową aplikację internetową Go udostępnioną w repozytorium wymienionym wcześniej.
Uruchom następujące polecenia, aby utworzyć usługę Azure Container Registry:
Ustaw zmienne środowiskowe dla zasobów, które utworzysz. Zastąp tekst zastępczy w nawiasach odpowiednimi wartościami. Nazwa usługi Azure Container Registry musi być globalnie unikatowa.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryPrzykładowe polecenia do ustawiania zmiennych środowiskowych przeznaczone są dla powłoki Bash. Jeśli używasz innej powłoki, odpowiednio dostosuj polecenia.
Grupę zasobów platformy Azure można utworzyć za pomocą polecenia az group create.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONUtwórz usługę Azure Container Registry za pomocą polecenia az acr create .
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicZaloguj się do wystąpienia kontenera platformy Azure za pomocą polecenia az acr login .
az acr login --name $ACR_NAMEUwaga
Jeśli podczas wykonania polecenia
az acr loginwystąpi błąd podobny do następującego, upewnij się, że demon platformy Docker jest uruchomiony w systemie:You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
Kompilowanie i wypychanie obrazu platformy Docker
Po utworzeniu usługi Azure Container Registry, skompiluj i wypchnij obraz Docker przykładowej aplikacji internetowej w Go.
Uruchom następujące polecenia, aby skompilować i wypchnąć obraz do rejestru.
Ustaw zmienną środowiskową dla tworzonego obrazu platformy Docker. Zastąp tekst zastępczy w nawiasach odpowiednimi wartościami.
IMAGE_NAME="go-webapp" # Name for the Docker imagePrzykładowe polecenia dotyczące ustawiania zmiennych środowiskowych przeznaczone są dla powłoki Bash. Jeśli używasz innej powłoki, zmień polecenia odpowiednio.
Uzyskaj informacje o serwerze logowania za pomocą polecenia az acr show i zapisz je w zmiennej środowiskowej.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Skompiluj obraz platformy Docker lokalnie.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .Wypchnij obraz platformy Docker do usługi Azure Container Registry.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestSprawdź, 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 $ACR_NAME \ --output table
Teraz, gdy masz 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 wymaga pewnego sposobu na ustanowienie bezpiecznych granic. Środowiska usługi Azure Container Apps zapewniają tę możliwość. 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.
Ustaw zmienne środowiskowe dla zasobów, które utworzysz. Zastąp tekst zastępczy w nawiasach odpowiednimi wartościami.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appPrzykładowe polecenia ustawiania zmiennych środowiskowych dotyczą powłoki Bash. Jeśli używasz innej powłoki, dostosuj polecenia odpowiednio.
Uruchom polecenie az containerapp env create, aby utworzyć środowisko usługi Azure Container Apps.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Wdrażanie w usłudze Azure Container Apps
W tym momencie wykonano następujące kroki:
- Utworzono usługę Azure Container Registry.
- Zbudowano i wypchnięto obraz Docker do rejestru.
- Konfigurowanie środowiska usługi Azure Container Apps.
Ostatnim krokiem jest wdrożenie aplikacji.
Uruchom polecenie az containerapp create, aby wdrożyć aplikację internetową Go w usłudze Azure Container Apps.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--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 i hasła, co jest mniej bezpieczne, do uwierzytelniania w rejestrze kontenerów. Polecenie automatycznie tworzy również przypisanie roli AcrPull dla tożsamości, co uprawnia ją do pobierania 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 $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Uruchom polecenie curl względem w pełni kwalifikowanej nazwy domeny (FQDN) i potwierdź, że dane wyjściowe odzwierciedlają kod źródłowy HTML strony internetowej. Możesz również otworzyć adres URL w przeglądarce internetowej w celu interakcji z aplikacją internetową.
curl "https://$APP_FQDN"Polecenie zwraca kod HTML dla strony głównej aplikacji internetowej podobny do następującego:
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
Uprzątnij zasoby
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 $RESOURCE_GROUP_NAME \
--no-wait