Dela via


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.

  • 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ö

  1. Skapa Container Apps-miljön.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. 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)
    
  3. Inaktivera offentlig nätverksåtkomst för miljön.

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

Distribuera en containerapp

  1. 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
    
  2. 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

  1. 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
    
  2. 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

  1. 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
    
  2. 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