Udostępnij za pośrednictwem


Tworzenie łącza prywatnego do aplikacji kontenera platformy Azure za pomocą usługi Azure Front Door (wersja zapoznawcza)

Z tego artykułu dowiesz się, jak nawiązać połączenie bezpośrednio z usługi Azure Front Door z usługą Azure Container Apps przy użyciu linku prywatnego zamiast publicznego Internetu. W tym samouczku utworzysz środowisko profilów obciążeń usługi Azure Container Apps, usługę Azure Front Door i połączysz je bezpiecznie za pośrednictwem łącza prywatnego. Następnie zweryfikujesz łączność między aplikacją kontenera a usługą Azure Front Door.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją.

  • Ta funkcja jest dostępna tylko w interfejsie wiersza polecenia platformy Azure. Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia platformy Azure, uruchom następujące polecenie.

    az upgrade
    
  • Najnowsza wersja rozszerzenia Azure Container Apps dla interfejsu wiersza polecenia platformy Azure. Aby upewnić się, że używasz najnowszej wersji, uruchom następujące polecenie.

    az extension add --name containerapp --upgrade --allow-preview true
    

    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.

  • Ta funkcja jest obsługiwana tylko w środowiskach profilu obciążenia.

Aby uzyskać więcej informacji na temat wymagań wstępnych i konfiguracji, zobacz Szybki start: wdrażanie pierwszej aplikacji kontenera przy użyciu aplikacji kontenera.

Ustawianie zmiennych środowiskowych

Ustaw następujące zmienne środowiskowe.

RESOURCE_GROUP="my-container-apps"
LOCATION="centralus"
ENVIRONMENT_NAME="my-environment"
CONTAINERAPP_NAME="my-container-app"
AFD_PROFILE="my-afd-profile"
AFD_ENDPOINT="my-afd-endpoint"
AFD_ORIGIN_GROUP="my-afd-origin-group"
AFD_ORIGIN="my-afd-origin"
AFD_ROUTE="my-afd-route"

Tworzenie grupy zasobów platformy Azure

Utwórz grupę zasobów, aby zorganizować usługi związane z wdrożeniem aplikacji kontenera.

az group create \
    --name $RESOURCE_GROUP \
    --location $LOCATION

Utwórz środowisko

  1. Utwórz środowisko usługi Container Apps.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Pobierz identyfikator środowiska. Służy do konfigurowania środowiska.

    ENVIRONMENT_ID=$(az containerapp env show \
        --resource-group $RESOURCE_GROUP \
        --name $ENVIRONMENT_NAME \
        --query "id" \
        --output tsv)
    
  3. Wyłącz dostęp do sieci publicznej dla środowiska.

    az containerapp env update \
        --id $ENVIRONMENT_ID \
        --public-network-access Disabled
    

Wdrażanie aplikacji kontenera

  1. Uruchom następujące polecenie, aby wdrożyć aplikację kontenera w środowisku.

    az containerapp up \
        --name $CONTAINERAPP_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --environment $ENVIRONMENT_NAME \
        --image mcr.microsoft.com/k8se/quickstart:latest \
        --target-port 80 \
        --ingress external \
        --query properties.configuration.ingress.fqdn
    
  2. Pobieranie punktu końcowego aplikacji kontenera.

    ACA_ENDPOINT=$(az containerapp show \
        --name $CONTAINERAPP_NAME \
        --resource-group $RESOURCE_GROUP \
        --query properties.configuration.ingress.fqdn \
        --output tsv)
    

    Jeśli przechodzisz do punktu końcowego aplikacji kontenera, otrzymasz informację ERR_CONNECTION_CLOSED , że środowisko aplikacji kontenera ma wyłączony dostęp publiczny. Zamiast tego używasz punktu końcowego usługi AFD do uzyskiwania dostępu do aplikacji kontenera.

Tworzenie profilu usługi Azure Front Door

Utwórz profil usługi AFD. Łącze prywatne nie jest obsługiwane w przypadku źródeł w profilu usługi AFD z jednostkami SKU Standard_AzureFrontDoor.

az afd profile create \
    --profile-name $AFD_PROFILE \
    --resource-group $RESOURCE_GROUP \
    --sku Premium_AzureFrontDoor

Tworzenie punktu końcowego usługi Azure Front Door

Dodaj punkt końcowy do profilu usługi AFD.

az afd endpoint create \
    --resource-group $RESOURCE_GROUP \
    --endpoint-name $AFD_ENDPOINT \
    --profile-name $AFD_PROFILE \
    --enabled-state Enabled

Tworzenie grupy źródeł usługi Azure Front Door

Utwórz grupę pochodzenia usługi AFD.

az afd origin-group create \
    --resource-group $RESOURCE_GROUP \
    --origin-group-name $AFD_ORIGIN_GROUP \
    --profile-name $AFD_PROFILE \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 60 \
    --probe-path / \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

Tworzenie źródła usługi Azure Front Door

Dodaj źródło usługi AFD do grupy pochodzenia.

az afd origin create \
    --resource-group $RESOURCE_GROUP \
    --origin-group-name $AFD_ORIGIN_GROUP \
    --origin-name $AFD_ORIGIN \
    --profile-name $AFD_PROFILE \
    --host-name $ACA_ENDPOINT \
    --origin-host-header $ACA_ENDPOINT \
    --priority 1 \
    --weight 500 \
    --enable-private-link true \
    --private-link-location $LOCATION \
    --private-link-request-message "AFD Private Link Request" \
    --private-link-resource $ENVIRONMENT_ID \
    --private-link-sub-resource-type managedEnvironments

Wyświetlanie listy połączeń prywatnych punktów końcowych

  1. Uruchom następujące polecenie, aby wyświetlić listę połączeń prywatnych punktów końcowych dla danego środowiska.

    az network private-endpoint-connection list \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --type Microsoft.App/managedEnvironments
    
  2. Zarejestruj identyfikator zasobu połączenia prywatnego punktu końcowego z odpowiedzi. Połączenie prywatnego punktu końcowego properties.privateLinkServiceConnectionState.description ma wartość AFD Private Link Request. Identyfikator zasobu połączenia prywatnego punktu końcowego wygląda następująco.

    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.App/managedEnvironments/my-environment/privateEndpointConnections/<PRIVATE_ENDPOINT_CONNECTION_ID>
    

    Nie należy mylić tego z identyfikatorem prywatnego punktu końcowego, który wygląda następująco.

    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/eafd-Prod-centralus/providers/Microsoft.Network/privateEndpoints/<PRIVATE_ENDPOINT_ID>
    

Zatwierdzanie połączenia prywatnego punktu końcowego

Uruchom następujące polecenie, aby zatwierdzić połączenie. <Zastąp symbol> ZASTĘPCZY identyfikatorem zasobu połączenia prywatnego punktu końcowego zarejestrowanym w poprzedniej sekcji.

az network private-endpoint-connection approve --id <PRIVATE_ENDPOINT_CONNECTION_RESOURCE_ID>

Dodawanie trasy

Uruchom następujące polecenie, aby zamapować utworzony wcześniej punkt końcowy na grupę pochodzenia.

az afd route create \
    --resource-group $RESOURCE_GROUP \
    --profile-name $AFD_PROFILE \
    --endpoint-name $AFD_ENDPOINT \
    --forwarding-protocol MatchRequest \
    --route-name $AFD_ROUTE \
    --https-redirect Enabled \
    --origin-group $AFD_ORIGIN_GROUP \
    --supported-protocols Http Https \
    --link-to-default-domain Enabled

Uzyskiwanie dostępu do aplikacji kontenera z usługi Azure Front Door

  1. Pobierz nazwę hosta punktu końcowego usługi AFD.

    az afd endpoint show \
        --resource-group $RESOURCE_GROUP \
        --profile-name $AFD_PROFILE \
        --endpoint-name $AFD_ENDPOINT \
        --query hostName \
        --output tsv
    

    Nazwa hosta wygląda jak w poniższym przykładzie.

    my-afd-endpoint.<HASH>.b01.azurefd.net
    
  2. Przejdź do nazwy hosta. Zobaczysz dane wyjściowe obrazu aplikacji kontenera szybkiego startu.

    Wdrożenie profilu usługi AFD na całym świecie trwa kilka minut, więc jeśli oczekiwane dane wyjściowe nie będą widoczne na początku, zaczekaj kilka minut, a następnie odśwież.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć grupę zasobów my-container-apps . Spowoduje to usunięcie wystąpienia usługi Azure Container Apps i wszystkich skojarzonych usług. Usuwa również grupę zasobów, która automatycznie utworzyła usługę Container Apps i która zawiera niestandardowe składniki sieciowe.

Uwaga

Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika istnieją w określonej grupie zasobów, zostaną również usunięte.

az group delete --name $RESOURCE_GROUP