Delen via


Een privékoppeling maken naar een Azure Container App met Azure Front Door

In dit artikel leert u hoe u rechtstreeks vanuit Azure Front Door verbinding maakt met uw Azure Container Apps met behulp van een privékoppeling in plaats van het openbare internet. In deze zelfstudie maakt u een Azure Container Apps-workload-profielenomgeving, een Azure Front Door en verbindt u deze veilig via een Private Link. Vervolgens controleert u de connectiviteit tussen uw container-app en de Azure Front Door.

Vereisten

  • Azure-account met een actief abonnement.

  • Deze functie wordt alleen ondersteund voor workload-profielomgevingen.

  • Zorg ervoor dat de Microsoft.Cdn resourceprovider is geregistreerd voor uw abonnement.

    1. Begin door u aan te melden bij de Azure-portal.
    2. Blader naar uw abonnementspagina en selecteer Instellingen>Resourceproviders.
    3. Selecteer Microsoft.Cdn in de lijst met providers.
    4. Selecteer Registreren.

Een container-app maken

Maak een resourcegroep om de services te ordenen die betrekking hebben op de implementatie van uw container-app.

  1. Zoek naar Container Apps in de bovenste zoekbalk.

  2. Selecteer Container-apps in de zoekresultaten.

  3. Selecteer de knop Create.

  4. Voer op de pagina Container-app maken op het tabblad Basisbeginselen de volgende acties uit.

    Configuratie Handeling
    Abonnement Selecteer uw Azure-abonnement.
    Bronnengroep Selecteer de koppeling Nieuwe resourcegroep maken en voer my-container-apps in.
    Naam container-app Voer mijn container-app in.
    Implementatiebron Selecteer Containerinstallatiekopieën.
    Regio Selecteer Centraal-VS.
  5. Selecteer in het veld Container Apps-omgeving maken de koppeling Nieuwe omgeving maken .

  6. Voer op de pagina Container Apps-omgeving maken op het tabblad Basisinformatie de volgende waarden in:

    Configuratie Waarde
    Naam van de omgeving Voer mijn omgeving in.
    Zone-redundantie Selecteer Uitgeschakeld
  7. Selecteer het tabblad Netwerken.

  8. Stel openbare netwerktoegang in op Uitschakelen: Al het binnenkomende verkeer van het openbare internet blokkeren.

  9. Laat Uw eigen virtuele netwerk ingesteld op Nee.

  10. Laat Privé-eindpunten inschakelen ingesteld op Nee.

  11. Klik op Creëren.

  12. Selecteer op de pagina Container-app maken het tabblad Container .

  13. Selecteer De quickstart-installatiekopieën gebruiken.

De container-app implementeren

  1. Selecteer Controleren en maken onderaan de pagina.

    Als er geen fouten worden gevonden, is de knop Maken ingeschakeld.

    Als er fouten zijn, wordt een tabblad met fouten gemarkeerd met een rode stip. Navigeer naar het betreffende tabblad. Velden met een fout zijn rood gemarkeerd. Zodra alle fouten zijn opgelost, selecteert u Controleren en opnieuw maken .

  2. Klik op Creëren.

    Er wordt een pagina met het bericht Implementatie uitgevoerd . Zodra de implementatie is voltooid, ziet u het bericht: Uw implementatie is voltooid.

Implementatie verifiëren

  1. Selecteer Ga naar de resource om uw nieuwe container-app weer te geven.

  2. Selecteer de koppeling naast de toepassings-URL om uw toepassing weer te geven.

  1. Wanneer u naar het eindpunt van de container-app bladert, ziet u het volgende bericht:

    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.
    

    In plaats daarvan gebruikt u een Azure Front Door-eindpunt om toegang te krijgen tot uw container-app.

Een Azure Front Door-profiel en -eindpunt maken

  1. Zoek naar Front Door in de bovenste zoekbalk.

  2. Selecteer Front Door- en CDN-profielen in de zoekresultaten.

  3. Selecteer Azure Front Door en Snel maken.

  4. Selecteer de knop Doorgaan om een Front Door te maken.

  5. Voer op de pagina Een Front Door-profiel maken op het tabblad Basisbeginselen de volgende acties uit.

    Configuratie Acties
    Bronnengroep Selecteer mijn container-apps.
    Naam Voer mijn profiel in.
    Rang Selecteer Premium. Private Link wordt niet ondersteund voor bronnen voor Azure Front Door in de Standaard-laag.
    Eindpuntnaam Voer mijn-afd-eindpunt in.
    Oorsprongstype Selecteer Container Apps.
    Oorsprong hostnaam Voer de hostnaam van uw container-app in. Uw hostnaam ziet er als volgt uit: my-container-app.orangeplant-77e5875b.centralus.azurecontainerapps.io.
    Private Link-service inschakelen Schakel deze instelling in.
    Regio Selecteer (VS) - centraal.
    Doelsubbron Selecteer managedEnvironments.
    Bericht aanvragen Voer een AFD Private Link-aanvraag in.
  6. Kies Beoordelen + creëren.

  7. Klik op Creëren.

  8. Nadat de implementatie is voltooid, selecteert u Ga naar de resource.

  9. Zoek uw eindpunthostnaam op de overzichtspagina van het Front Door- en CDN-profiel. Het lijkt op het volgende voorbeeld. Noteer deze hostnaam.

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

De verbindingsaanvraag voor het privé-eindpunt goedkeuren

  1. Blader naar de overzichtspagina voor de omgeving met de naam mijn omgeving die u eerder hebt gemaakt.

  2. Vouw Instellingennetwerken> uit.

  3. U ziet een koppeling voor de verbindingsaanvragen voor het privé-eindpunt. Bijvoorbeeld: 1 private endpoint. Selecteer deze koppeling.

  4. Op de pagina Privé-eindpuntverbindingen keurt u elke verbindingsaanvraag voor een privé-eindpunt goed met de beschrijving AFD Private Link Request.

    Notitie

    Azure Front Door heeft een bekend probleem waarbij meerdere verbindingsaanvragen voor privé-eindpunten kunnen worden gemaakt.

Toegang tot uw container-app vanuit Azure Front Door

Blader naar de hostnaam van het Azure Front Door-eindpunt dat u eerder hebt vastgelegd. U ziet de uitvoer voor de quickstart-container-app-image. Globale uitrol kan enkele minuten duren, dus als u de verwachte uitvoer niet ziet, wacht dan een paar minuten en vernieuw de pagina.

Middelen opschonen

Als u deze toepassing niet meer gaat gebruiken, kunt u de container-app en alle bijbehorende services verwijderen door de resourcegroep te verwijderen.

  1. Selecteer de resourcegroep my-container-apps in de sectie Overzicht .

  2. Selecteer de knop Resourcegroep verwijderen bovenaan het overzicht van de resourcegroep.

  3. Voer de naam van de resourcegroep in in het bevestigingsvenster 'my-container-apps' wilt verwijderen.

  4. Selecteer Verwijderen.

    Het verwijderen van de resourcegroep kan enkele minuten duren.

Vereisten

  • Azure-account met een actief abonnement.

  • Voer de volgende opdracht uit om ervoor te zorgen dat u de nieuwste versie van de Azure CLI uitvoert.

    az upgrade
    
  • De nieuwste versie van de Azure Container Apps-extensie voor de Azure CLI. Voer de volgende opdracht uit om ervoor te zorgen dat u de nieuwste versie uitvoert.

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

    Notitie

    Vanaf mei 2024 schakelen Azure CLI-extensies standaard geen preview-functies meer in. Als u toegang wilt krijgen tot de preview-functies van Container Apps, installeert u de Container Apps-extensie met --allow-preview true.

  • Deze functie wordt alleen ondersteund voor workload-profielomgevingen.

  • Deze functie is alleen beschikbaar in ondersteunde regio's.

Zie quickstart: Uw eerste container-app implementeren met containerapp up voor meer informatie over vereisten en installatie.

Omgevingsvariabelen instellen

Stel de volgende omgevingsvariabelen in.

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"

Maak een Azure-resourcegroep

Maak een resourcegroep om de services te ordenen die betrekking hebben op de implementatie van uw container-app.

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

Een omgeving maken

  1. Maak de Container Apps-omgeving.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Haal de omgevings-id op. U gebruikt deze id om de omgeving te configureren.

    ENVIRONMENT_ID=$(az containerapp env show \
        --resource-group $RESOURCE_GROUP \
        --name $ENVIRONMENT_NAME \
        --query "id" \
        --output tsv)
    
  3. Schakel openbare netwerktoegang voor de omgeving uit.

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

Een container-app implementeren

  1. Voer de volgende opdracht uit om een container-app in uw omgeving te implementeren.

    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. Haal het eindpunt van de containerapp op.

    ACA_ENDPOINT=$(az containerapp show \
        --name $CONTAINERAPP_NAME \
        --resource-group $RESOURCE_GROUP \
        --query properties.configuration.ingress.fqdn \
        --output tsv)
    
  3. Wanneer u naar het eindpunt van de container-app navigeert, ontvangt u ERR_CONNECTION_CLOSED omdat de container-app-omgeving openbare toegang is uitgeschakeld. In plaats daarvan gebruikt u een AFD-eindpunt voor toegang tot uw container-app.

Een Azure Front Door-profiel maken

  1. Zorg ervoor dat de Microsoft.Cdn resourceprovider is geregistreerd voor uw abonnement.

    az provider register --namespace Microsoft.Cdn
    
  2. Maak een AFD-profiel. Private Link wordt niet ondersteund vanuit bronnen in een AFD-profiel met SKU Standard_AzureFrontDoor.

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

Een Azure Front Door-eindpunt maken

Voeg een eindpunt toe aan uw AFD-profiel.

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

Een Azure Front Door-origingroep maken

Maak een AFD-oorspronggroep.

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

Een Azure Front Door-bron maken

Voeg een AFD-oorsprong toe aan uw oorspronkelijke groep.

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

Privé-eindpuntverbindingen vermelden

  1. Voer de volgende opdracht uit om de privé-eindpuntverbindingen voor uw omgeving weer te geven.

    az network private-endpoint-connection list \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --type Microsoft.App/managedEnvironments
    
  2. Noteer de resource-id van de privé-eindpuntverbinding vanuit het antwoord. De privé-eindpuntverbinding heeft een properties.privateLinkServiceConnectionState.description waarde van AFD Private Link Request. De resource-id van de privé-eindpuntverbinding ziet er als volgt uit.

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

    Verwar deze id niet met de privé-eindpunt-id, die er als volgt uitziet.

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

De privé-eindpuntverbinding goedkeuren

Voer de volgende opdracht uit om de verbinding goed te keuren. Vervang de <PLACEHOLDER> door de resource-ID van de privé-eindpuntverbinding die u in de vorige sectie hebt vastgelegd.

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

Een route toevoegen

Voer de volgende opdracht uit om het eindpunt dat u eerder hebt gemaakt, toe te wijzen aan de oorspronkelijke groep. Privé-eindpunten in Azure Container Apps ondersteunen alleen inkomend HTTP-verkeer. TCP-verkeer wordt niet ondersteund.

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

Toegang tot uw container-app vanuit Azure Front Door

  1. Haal de hostnaam van uw AFD-eindpunt op.

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

    Uw hostnaam ziet eruit als in het volgende voorbeeld.

    my-afd-endpoint.<HASH>.b01.azurefd.net
    
  2. Blader naar de hostnaam. U ziet de uitvoer voor de quickstart-container-app-image.

    Als u de verwachte uitvoer in eerste instantie niet ziet, wacht dan enkele minuten en vernieuw vervolgens de pagina.

Middelen opschonen

Als u deze toepassing niet meer gaat gebruiken, kunt u de resourcegroep mijn-container-apps verwijderen. Met deze actie verwijdert u het Azure Container Apps-exemplaar en alle bijbehorende services. Ook wordt de resourcegroep verwijderd die de Container Apps-service automatisch heeft gemaakt en die de aangepaste netwerkonderdelen bevat.

Let op

Met de volgende opdracht verwijdert u de opgegeven resourcegroep en alle resources erin. Als resources buiten het bereik van deze handleiding aanwezig zijn in de opgegeven resourcegroep, worden ze ook verwijderd.

az group delete --name $RESOURCE_GROUP

Aanbeveling

Ondervindt u problemen? Laat het ons weten op GitHub door een issue aan te maken in de Azure Container Apps repo.