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.
- Als u geen account hebt, kunt u er gratis een maken.
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
Maak de Container Apps-omgeving.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
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)
Schakel openbare netwerktoegang voor de omgeving uit.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Een container-app implementeren
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
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
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
Noteer de resource-id van de privé-eindpuntverbinding vanuit het antwoord. De privé-eindpuntverbinding heeft een
properties.privateLinkServiceConnectionState.description
waarde vanAFD 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
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
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