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ą.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
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
Utwórz środowisko usługi Container Apps.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
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)
Wyłącz dostęp do sieci publicznej dla środowiska.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Wdrażanie aplikacji kontenera
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
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
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
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
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
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