Wdrażanie aplikacji internetowej w języku Go w usłudze Azure Container Apps

W tym przewodniku 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.

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:

  1. Utwórz grupę zasobów platformy Azure.

    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Utwórz rejestr Azure Container Registry.

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic \
        --admin-enabled true
    
  3. Zaloguj się do wystąpienia kontenera platformy Azure.

    az acr login --name <azureContainerRegistryName>  
    

Zastąp <resourceGroupName> wartości i <azureContainerRegistryName> odpowiednimi wartościami. Pamiętaj, że nazwa usługi Azure Container Registry musi być globalnie unikatowa.

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:

  1. Uzyskaj informacje o serwerze logowania.

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Skompiluj obraz platformy Docker lokalnie.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Wypchnij obraz platformy Docker do usługi Azure Container Registry.

    docker push <loginServer>/<imageName>:latest
    
  4. Sprawdź, czy obraz został pomyślnie wypchnięty do usługi Azure Container Registry.

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

Zastąp loginServerwartości , imageNamei 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 następujące polecenia, aby utworzyć środowisko usługi Azure Container Apps:

  1. Uzyskaj hasło administratora usługi Azure Container Registry.

    ACR_PASSWORD=$(az acr credential show \
        --name <azureContainerRegistryName> \
        --query 'passwords[0].value' \
        --out tsv)
    
  2. Tworzenie środowiska usługi 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, skompilowaliśmy 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 następujące polecenie, 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-username "<azureContainerRegistryName>" \
    --registry-password "$ACR_PASSWORD" \
    --target-port 8080 \
    --ingress 'external'

Weryfikowanie adresu URL aplikacji internetowej

Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure, aby uzyskać 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 nie są naliczane opłaty za subskrypcję platformy Azure. 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.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Następne kroki