Skapa en privat länk till en Azure Container App med Azure Front Door (förhandsversion)
I den här artikeln får du lära dig hur du ansluter direkt från Azure Front Door till dina Azure Container Apps med hjälp av en privat länk i stället för det offentliga Internet. I den här självstudien skapar du en Azure Container Apps-arbetsbelastningsprofilmiljö, en Azure Front Door och ansluter dem säkert via en privat länk. Sedan kontrollerar du anslutningen mellan containerappen och Azure Front Door.
Förutsättningar
Azure-konto med en aktiv prenumeration.
- Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
Den här funktionen är endast tillgänglig med Azure CLI. Kör följande kommando för att säkerställa att du kör den senaste versionen av Azure CLI.
az upgrade
Den senaste versionen av Azure Container Apps-tillägget för Azure CLI. Kör följande kommando för att säkerställa att du kör den senaste versionen.
az extension add --name containerapp --upgrade --allow-preview true
Kommentar
Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med
--allow-preview true
.Den här funktionen stöds endast för arbetsbelastningsprofilmiljöer.
Mer information om förutsättningar och konfiguration finns i Snabbstart: Distribuera din första containerapp med containerapp up.
Ange miljövariabler
Ange följande miljövariabler.
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"
Skapa en Azure-resursgrupp
Skapa en resursgrupp för att organisera de tjänster som är relaterade till distributionen av containerappen.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Skapa en miljö
Skapa Container Apps-miljön.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Hämta miljö-ID:t. Du använder detta för att konfigurera miljön.
ENVIRONMENT_ID=$(az containerapp env show \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --query "id" \ --output tsv)
Inaktivera offentlig nätverksåtkomst för miljön.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Distribuera en containerapp
Kör följande kommando för att distribuera en containerapp i din miljö.
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
Hämta slutpunkten för containerappen.
ACA_ENDPOINT=$(az containerapp show \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --query properties.configuration.ingress.fqdn \ --output tsv)
Om du bläddrar till containerappens slutpunkt får
ERR_CONNECTION_CLOSED
du det eftersom containerappmiljön har offentlig åtkomst inaktiverad. I stället använder du en AFD-slutpunkt för att komma åt din containerapp.
Skapa en Azure Front Door-profil
Skapa en AFD-profil. Privat länk stöds inte för ursprung i en AFD-profil med SKU Standard_AzureFrontDoor
.
az afd profile create \
--profile-name $AFD_PROFILE \
--resource-group $RESOURCE_GROUP \
--sku Premium_AzureFrontDoor
Skapa en Azure Front Door-slutpunkt
Lägg till en slutpunkt i din AFD-profil.
az afd endpoint create \
--resource-group $RESOURCE_GROUP \
--endpoint-name $AFD_ENDPOINT \
--profile-name $AFD_PROFILE \
--enabled-state Enabled
Skapa en Azure Front Door-ursprungsgrupp
Skapa en AFD-ursprungsgrupp.
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
Skapa ett Azure Front Door-ursprung
Lägg till ett AFD-ursprung i din ursprungsgrupp.
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
Lista privata slutpunktsanslutningar
Kör följande kommando för att visa en lista över privata slutpunktsanslutningar för din miljö.
az network private-endpoint-connection list \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --type Microsoft.App/managedEnvironments
Registrera resurs-ID för privat slutpunktsanslutning från svaret. Den privata slutpunktsanslutningen har värdet
properties.privateLinkServiceConnectionState.description
AFD Private Link Request
. Resurs-ID för privat slutpunktsanslutning ser ut så här./subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.App/managedEnvironments/my-environment/privateEndpointConnections/<PRIVATE_ENDPOINT_CONNECTION_ID>
Blanda inte ihop detta med det privata slutpunkts-ID:t, som ser ut så här.
/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/eafd-Prod-centralus/providers/Microsoft.Network/privateEndpoints/<PRIVATE_ENDPOINT_ID>
Godkänna den privata slutpunktsanslutningen
Kör följande kommando för att godkänna anslutningen. <Ersätt PLACEHOLDER> med resurs-ID för privat slutpunktsanslutning som du registrerade i föregående avsnitt.
az network private-endpoint-connection approve --id <PRIVATE_ENDPOINT_CONNECTION_RESOURCE_ID>
Lägg till en väg
Kör följande kommando för att mappa slutpunkten som du skapade tidigare till ursprungsgruppen. Privata slutpunkter i Azure Container Apps stöder endast inkommande HTTP-trafik. TCP-trafik stöds inte.
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
Få åtkomst till din containerapp från Azure Front Door
Hämta värdnamnet för AFD-slutpunkten.
az afd endpoint show \ --resource-group $RESOURCE_GROUP \ --profile-name $AFD_PROFILE \ --endpoint-name $AFD_ENDPOINT \ --query hostName \ --output tsv
Värdnamnet ser ut som i följande exempel.
my-afd-endpoint.<HASH>.b01.azurefd.net
Bläddra till värdnamnet. Du ser utdata för avbildningen av snabbstartscontainerappen.
Det tar några minuter innan AFD-profilen distribueras globalt, så om du inte ser förväntade utdata först väntar du några minuter och uppdaterar sedan.
Rensa resurser
Om du inte kommer att fortsätta att använda det här programmet kan du ta bort resursgruppen my-container-apps . Detta tar bort Azure Container Apps-instansen och alla associerade tjänster. Den tar också bort den resursgrupp som Container Apps-tjänsten skapade automatiskt och som innehåller de anpassade nätverkskomponenterna.
Varning
Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här guiden i den angivna resursgruppen tas de också bort.
az group delete --name $RESOURCE_GROUP