Vytvoření privátního odkazu na aplikaci kontejneru Azure pomocí služby Azure Front Door (Preview)
V tomto článku se dozvíte, jak se připojit přímo ze služby Azure Front Door ke službě Azure Container Apps pomocí privátního propojení místo veřejného internetu. V tomto kurzu vytvoříte prostředí profilů úloh Azure Container Apps, službu Azure Front Door a bezpečně je připojíte prostřednictvím privátního propojení. Pak ověříte připojení mezi vaší aplikací kontejneru a službou Azure Front Door.
Požadavky
Účet Azure s aktivním předplatným.
- Pokud jej nemáte, můžete si jej zdarma vytvořit.
Tato funkce je dostupná jenom v Azure CLI. Pokud chcete zajistit, že používáte nejnovější verzi Azure CLI, spusťte následující příkaz.
az upgrade
Nejnovější verze rozšíření Azure Container Apps pro Azure CLI Pokud chcete zajistit, že používáte nejnovější verzi, spusťte následující příkaz.
az extension add --name containerapp --upgrade --allow-preview true
Poznámka:
Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí
--allow-preview true
nástroje .Tato funkce je podporovaná jenom pro prostředí profilu úloh.
Další informace o požadavcích a nastavení najdete v tématu Rychlý start: Nasazení první aplikace kontejneru s využitím containerapp upu.
Nastavení proměnných prostředí
Nastavte následující proměnné prostředí.
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"
Vytvoření skupiny prostředků Azure
Vytvořte skupinu prostředků pro uspořádání služeb souvisejících s nasazením aplikace kontejneru.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Vytvořit prostředí
Vytvořte prostředí Container Apps.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Načtěte ID prostředí. Použijete ho ke konfiguraci prostředí.
ENVIRONMENT_ID=$(az containerapp env show \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --query "id" \ --output tsv)
Zakažte přístup k veřejné síti pro prostředí.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Nasazení aplikace typu kontejner
Spuštěním následujícího příkazu nasaďte aplikaci kontejneru ve vašem prostředí.
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
Načtěte koncový bod aplikace kontejneru.
ACA_ENDPOINT=$(az containerapp show \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --query properties.configuration.ingress.fqdn \ --output tsv)
Pokud přejdete ke koncovému bodu aplikace kontejneru, obdržíte
ERR_CONNECTION_CLOSED
, protože prostředí aplikace kontejneru má zakázaný veřejný přístup. Místo toho použijete koncový bod AFD pro přístup k vaší aplikaci kontejneru.
Vytvoření profilu služby Azure Front Door
Vytvořte profil AFD. Private Link není podporován pro původy v profilu AFD s SKU Standard_AzureFrontDoor
.
az afd profile create \
--profile-name $AFD_PROFILE \
--resource-group $RESOURCE_GROUP \
--sku Premium_AzureFrontDoor
Vytvoření koncového bodu služby Azure Front Door
Přidejte koncový bod do profilu AFD.
az afd endpoint create \
--resource-group $RESOURCE_GROUP \
--endpoint-name $AFD_ENDPOINT \
--profile-name $AFD_PROFILE \
--enabled-state Enabled
Vytvoření skupiny původu služby Azure Front Door
Vytvořte skupinu původu AFD.
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
Vytvoření zdroje služby Azure Front Door
Přidejte zdroj AFD do skupiny původu.
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
Výpis připojení privátních koncových bodů
Spuštěním následujícího příkazu zobrazte seznam připojení privátního koncového bodu pro vaše prostředí.
az network private-endpoint-connection list \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --type Microsoft.App/managedEnvironments
Poznamenejte si ID prostředku připojení privátního koncového bodu z odpovědi. Připojení privátního koncového
AFD Private Link Request
bodu máproperties.privateLinkServiceConnectionState.description
hodnotu . ID prostředku připojení privátního koncového bodu vypadá takto./subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.App/managedEnvironments/my-environment/privateEndpointConnections/<PRIVATE_ENDPOINT_CONNECTION_ID>
Nezaměňujte ho s ID privátního koncového bodu, které vypadá takto.
/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/eafd-Prod-centralus/providers/Microsoft.Network/privateEndpoints/<PRIVATE_ENDPOINT_ID>
Schválení připojení privátního koncového bodu
Spuštěním následujícího příkazu schvalte připojení. <Zástupný symbol nahraďte> ID prostředku připojení privátního koncového bodu, které jste si poznamenali v předchozí části.
az network private-endpoint-connection approve --id <PRIVATE_ENDPOINT_CONNECTION_RESOURCE_ID>
Přidat trasu
Spuštěním následujícího příkazu namapujte koncový bod, který jste vytvořili dříve, na skupinu původu. Privátní koncové body v Azure Container Apps podporují pouze příchozí provoz HTTP. Provoz TCP není podporován.
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
Přístup k aplikaci kontejneru z Azure Front Dooru
Načtěte název hostitele vašeho koncového bodu AFD.
az afd endpoint show \ --resource-group $RESOURCE_GROUP \ --profile-name $AFD_PROFILE \ --endpoint-name $AFD_ENDPOINT \ --query hostName \ --output tsv
Název hostitele vypadá jako v následujícím příkladu.
my-afd-endpoint.<HASH>.b01.azurefd.net
Přejděte na název hostitele. Zobrazí se výstup image kontejnerové aplikace pro rychlý start.
Globální nasazení profilu AFD trvá několik minut, takže pokud zpočátku nevidíte očekávaný výstup, počkejte několik minut a pak aktualizujte.
Vyčištění prostředků
Pokud tuto aplikaci nebudete dál používat, můžete odebrat skupinu prostředků my-container-apps . Tím se odstraní instance Azure Container Apps a všechny přidružené služby. Odstraní také skupinu prostředků, kterou služba Container Apps automaticky vytvořila a která obsahuje vlastní síťové komponenty.
Upozornění
Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto průvodce existují v zadané skupině prostředků, odstraní se také.
az group delete --name $RESOURCE_GROUP