Delen via


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

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-workloadprofielenomgeving, een Azure Front Door en verbindt u deze veilig via een privékoppeling. Vervolgens controleert u de connectiviteit tussen uw container-app en de Azure Front Door.

Vereisten

  • Azure-account met een actief abonnement.

  • Deze functie is alleen beschikbaar met de Azure CLI. 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 workloadprofielomgevingen.

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 dit 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 container-app op.

    ACA_ENDPOINT=$(az containerapp show \
        --name $CONTAINERAPP_NAME \
        --resource-group $RESOURCE_GROUP \
        --query properties.configuration.ingress.fqdn \
        --output tsv)
    

    Als u naar het eindpunt van de container-app bladert, ontvangt ERR_CONNECTION_CLOSED u dat omdat de container-app-omgeving openbare toegang heeft uitgeschakeld. In plaats daarvan gebruikt u een AFD-eindpunt voor toegang tot uw container-app.

Een Azure Front Door-profiel maken

Maak een AFD-profiel. Private Link wordt niet ondersteund voor origins 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-oorsprong 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 dit niet met de id van het privé-eindpunt, 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 <TIJDELIJKE AANDUIDING> 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 installatiekopieën van de quickstart-container-app.

    Het duurt enkele minuten voordat uw AFD-profiel globaal is geïmplementeerd. Als u de verwachte uitvoer dus in eerste instantie niet ziet, wacht u enkele minuten en vernieuwt u vervolgens.

Resources opschonen

Als u deze toepassing niet meer gaat gebruiken, kunt u de resourcegroep mijn-container-apps verwijderen. Hiermee 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