Dela via


Skapa en privat länk till en Azure Container App med Azure Front Door

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.

Viktigt!

Det finns ytterligare avgifter för att aktivera privata slutpunkter i både dedikerade och förbrukningsabonnemang.

Förutsättningar

  • Azure-konto med en aktiv prenumeration.

  • Den här funktionen stöds endast för arbetsbelastningsprofilmiljöer.

  • Kontrollera att Microsoft.Cdn resursprovidern är registrerad för din prenumeration.

    1. Börja med att logga in på Azure-portalen.
    2. Bläddra till prenumerationssidan och välj Inställningar>Resursprovidrar.
    3. Välj Microsoft.Cdn i providerlistan.
    4. Välj Registrera.

Skapa en containerapp

Skapa en resursgrupp för att organisera de tjänster som är relaterade till distributionen av containerappen.

  1. Sök efter Container Apps i det övre sökfältet.

  2. Välj Container Apps i sökresultatet.

  3. Välj knappen Skapa.

  4. Gör följande på fliken Grundläggande på sidan Skapa containerapp.

    Inställning Åtgärd
    Prenumeration Välj din Azure-prenumeration.
    Resursgrupp Välj länken Skapa ny resursgrupp och ange my-container-apps.
    Namn på containerapp Ange my-container-app.
    Distributionskälla Välj Containeravbildning.
    Region Välj Centrala USA.
  5. I fältet Skapa Container Apps-miljö väljer du länken Skapa ny miljö .

  6. På sidan Skapa Container Apps-miljö på fliken Grundläggande anger du följande värden:

    Inställning Värde
    Miljönamn Ange min miljö.
    Zon-redundans Välj Inaktiverad
  7. Välj fliken Nätverk.

  8. Ange Åtkomst till offentligt nätverk till Inaktivera: Blockera all inkommande trafik från det offentliga Internet.

  9. Lämna Använd ditt eget virtuella nätverk inställt på Nej.

  10. Låt Aktivera privata slutpunkter vara inställt på Nej.

  11. Välj Skapa.

  12. På sidan Skapa containerapp väljer du fliken Container .

  13. Välj Använd snabbstartsbild.

    Kommentar

    Snabbstartsbilden aktiverar ingång automatiskt. Om du inte använder snabbstartsbilden kontrollerar du att du aktiverar ingress. Detta gör att containerappen kan ta emot trafik från Azure Front Door via den privata slutpunkten.

Distribuera containerappen

  1. Välj Granska och skapa längst ned på sidan.

    Om inga fel hittas är knappen Skapa aktiverad.

    Om det finns fel markeras alla flikar som innehåller fel med en röd punkt. Gå till lämplig flik. Fält som innehåller ett fel är markerade i rött. När alla fel har åtgärdats väljer du Granska och skapa igen.

  2. Välj Skapa.

    En sida med meddelandet Distribution pågår visas. När distributionen har slutförts visas meddelandet: Distributionen är klar.

Verifiera driftsättningen

  1. Välj Gå till resurs för att visa din nya containerapp.

  2. Välj länken bredvid program-URL:en för att visa ditt program.

  1. När du bläddrar till slutpunkten för containerappen visas följande meddelande:

    The public network access on this managed environment is disabled. To connect to this managed environment, please use the Private Endpoint from inside your virtual network. To learn more https://aka.ms/PrivateEndpointTroubleshooting.
    

    I stället använder du en Azure Front Door-slutpunkt för att komma åt din containerapp.

Skapa en Azure Front Door-profil och slutpunkt

  1. Sök efter Front Door i det övre sökfältet.

  2. Välj Front Door- och CDN-profiler i sökresultaten.

  3. Välj Azure Front Door och Snabbskapa.

  4. Välj knappen Fortsätt för att skapa en frontdörr .

  5. På sidan Skapa en Front Door-profil gör du följande på fliken Grundläggande inställningar.

    Inställning Åtgärder
    Resursgrupp Välj my-container-apps.
    Namn Ange my-afd-profile.
    Nivå Välj Premium. Privat länk stöds inte för ursprung för Azure Front Door på standardnivån.
    Slutpunktsnamn Ange my-afd-endpoint.
    Ursprungstyp Välj ContainerAppar.
    Ursprungligt värdnamn Ange värdnamnet för containerappen. Värdnamnet ser ut som i följande exempel: my-container-app.orangeplant-77e5875b.centralus.azurecontainerapps.io.
    Aktivera privat länktjänst Aktivera den här inställningen.
    Region Välj (USA) USA, centrala.
    Delresurs för målobjekt Välj managedEnvironments.
    Begärandemeddelande Ange AFD Private Link-begäran.
  6. Välj Förhandsgranska + skapa.

  7. Välj Skapa.

  8. När distributionen är klar väljer du Gå till resurs.

  9. På översiktssidan för Front Door- och CDN-profil hittar du slutpunktens värdnamn. Det ser ut som i följande exempel. Anteckna det här värdnamnet.

    my-afd-endpoint.<HASH>.b01.azurefd.net
    

Godkänn anslutningsbegäran för privat slutpunkt

  1. Bläddra till översiktssidan för miljön med namnet my-environment som du skapade tidigare.

  2. Expandera Inställningar>Nätverk.

  3. Du ser en länk för begäranden om privat slutpunktsanslutning. Till exempel 1 private endpoint. Välj den här länken.

  4. På sidan Privata slutpunktsanslutningar godkänner du varje begäran om privat slutpunktsanslutning med beskrivningen AFD Private Link Request.

    Kommentar

    Azure Front Door har ett känt problem där det kan skapa flera privata slutpunktsanslutningsbegäranden.

Få åtkomst till din containerapp från Azure Front Door

Bläddra till värdnamnet för Azure Front Door-slutpunkten som du registrerade tidigare. Du ser utdata för avbildningen av snabbstartscontainerappen. Global distribution kan ta några minuter att distribuera, så om du inte ser förväntade utdata 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 containerappen och alla associerade tjänster genom att ta bort resursgruppen.

  1. Välj resursgruppen my-container-apps i avsnittet Översikt.

  2. Välj knappen Ta bort resursgrupp överst i resursgruppen Översikt.

  3. Ange resursgruppens namn my-container-apps i bekräftelsedialogrutan Är du säker på att du vill ta bort bekräftelsedialogrutan "my-container-apps" .

  4. Välj Ta bort.

    Det kan ta några minuter att ta bort resursgruppen.

Förutsättningar

  • Azure-konto med en aktiv prenumeration.

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

  • Den här funktionen är endast tillgänglig i regioner som stöds.

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 det här ID:t 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)
    
  3. När du navigerar till slutpunkten för containerappen får du ERR_CONNECTION_CLOSED 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

  1. Kontrollera att Microsoft.Cdn resursprovidern är registrerad för din prenumeration.

    az provider register --namespace Microsoft.Cdn
    
  2. 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.descriptionAFD 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>
    

    Förväxla inte det här ID:t 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.

    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 . Den här åtgärden 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

Tips/Råd

Har du problem? Meddela oss på GitHub genom att öppna ett problem i Azure Container Apps-lagringsplatsen.