Sdílet prostřednictvím


Vytvoření privátního propojení s aplikací kontejneru Azure pomocí služby Azure Front Door

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.

  • Tato funkce je podporovaná jenom pro prostředí profilu úloh.

  • Ujistěte se, že je Microsoft.Cdn poskytovatel prostředků zaregistrovaný pro vaše předplatné.

    1. Začněte tím, že se přihlásíte do portálu Azure.
    2. Přejděte na stránku předplatného a vybertePoskytovatele prostředků>.
    3. V seznamu zprostředkovatelů vyberte Microsoft.Cdn .
    4. Vyberte Zaregistrovat.

Vytvoření aplikace typu kontejner

Vytvořte skupinu prostředků pro uspořádání služeb souvisejících s nasazením kontejnerové aplikace.

  1. Na horním panelu hledání vyhledejte Container Apps .

  2. Ve výsledcích hledání vyberte Kontejnerové aplikace.

  3. Vyberte tlačítko Vytvořit.

  4. Na stránce Vytvořit aplikaci kontejneru na kartě Základy proveďte následující akce.

    Nastavení Činnost
    Předplatné Vyberte své předplatné Azure.
    Skupina zdrojů Vyberte odkaz Vytvořit novou skupinu prostředků a zadejte my-container-apps.
    Název kontejnerové aplikace Zadejte my-container-app.
    Zdroj nasazení Vyberte image kontejneru.
    Región Vyberte USA – střed.
  5. V poli Vytvořit prostředí Container Apps vyberte odkaz Vytvořit nové prostředí .

  6. Na stránce Vytvořit prostředí Container Apps na kartě Základy zadejte následující hodnoty:

    Nastavení Hodnota
    Název prostředí Zadejte moje prostředí.
    Zónová redundance Vyberte Zakázáno.
  7. Vyberte kartu Sítě.

  8. Nastavte přístup k veřejné síti tak , aby se zakázal: Zablokuje veškerý příchozí provoz z veřejného internetu.

  9. Ponechte možnost Použít vlastní virtuální síť nastavenou na Ne.

  10. Možnost Povolit privátní koncové body ponechte nastavenou na Ne.

  11. Vyberte Vytvořit.

  12. Na stránce Vytvořit aplikaci kontejneru vyberte kartu Kontejner .

  13. Vyberte Použít obrázek rychlého startu.

Nasazení aplikace typu kontejner

  1. Vyberte Zkontrolovat a vytvořte v dolní části stránky.

    Pokud se nenašly žádné chyby, tlačítko Vytvořit je povolené.

    Pokud dojde k chybám, označí se všechny karty obsahující chyby červenou tečkou. Přejděte na příslušnou kartu. Pole obsahující chybu jsou červeně zvýrazněná. Po opravení všech chyb vyberte Zkontrolovat a vytvořit znovu.

  2. Vyberte Vytvořit.

    Zobrazí se stránka se zprávou Probíhá nasazení . Po úspěšném dokončení nasazení se zobrazí zpráva: Vaše nasazení je dokončené.

Ověření nasazení

  1. Výběrem možnosti Přejít k prostředku zobrazíte novou aplikaci kontejneru.

  2. Vyberte odkaz vedle adresy URL aplikace a zobrazte aplikaci.

  1. Když přejdete na koncový bod aplikace kontejneru, zobrazí se následující zpráva:

    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.
    

    Místo toho použijete koncový bod služby Azure Front Door pro přístup k aplikaci kontejneru.

Vytvoření profilu a koncového bodu služby Azure Front Door

  1. Vyhledejte Front Door v horním panelu vyhledávání.

  2. Ve výsledcích hledání vyberte profily služby Front Door a CDN .

  3. Vyberte Azure Front Door a Rychlé vytvoření.

  4. Vyberte tlačítko Pokračovat, abyste vytvořili _Front Door_.

  5. Na stránce Vytvořit profil služby Front Door na kartě Základy proveďte následující akce.

    Nastavení Akce
    Skupina zdrojů Vyberte my-container-apps.
    Název Zadejte my-afd-profile.
    Úroveň Vyberte Premium. Private Link není podporován pro zdroje služby Azure Front Door na úrovni Standard.
    Název koncového bodu Zadejte my-afd-endpoint.
    Typ původu Vyberte Kontejnerové aplikace.
    Název hostitele původu Zadejte název hostitele vaší aplikace kontejneru. Název hostitele vypadá jako v následujícím příkladu: my-container-app.orangeplant-77e5875b.centralus.azurecontainerapps.io.
    Povolení služby Private Link Povolte toto nastavení.
    Región Vyberte USA – střed.
    Cílový podzdroj Vyberte managedEnvironments.
    Žádost o zprávu Zadejte požadavek AFD Private Link.
  6. Vyberte možnost Zkontrolovat a vytvořit.

  7. Vyberte Vytvořit.

  8. Po dokončení nasazení vyberte Přejít k prostředku.

  9. Na stránce přehledu profilu služby Front Door a CDN vyhledejte název hostitele koncového bodu. Vypadá to jako v následujícím příkladu. Poznamenejte si tento název hostitele.

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

Schválení žádosti o připojení privátního koncového bodu

  1. Přejděte na stránku přehledu pro prostředí s názvem my-environment , které jste vytvořili dříve.

  2. Rozbalte položku Sítě nastavení>.

  3. Zobrazí se odkaz na žádosti o připojení privátního koncového bodu. Například: 1 private endpoint. Vyberte tento odkaz.

  4. Na stránce připojení privátního koncového bodu schvalte každou žádost o připojení privátního koncového bodu s popisem AFD Private Link Request.

    Poznámka:

    Azure Front Door má známý problém, kdy může vytvořit více žádostí o připojení privátního koncového bodu.

Přístup k aplikaci kontejneru z Azure Front Dooru

Přejděte na název hostitele koncového bodu služby Azure Front Door, který jste si poznamenali dříve. Vidíte výstup obrazu kontejnerové aplikace pro rychlý start. Globální nasazení může trvat několik minut, takže pokud nevidíte očekávaný výstup, počkejte několik minut a poté obnovte.

Uvolnění prostředků

Pokud tuto aplikaci nebudete dál používat, můžete odstranit aplikaci kontejneru a všechny přidružené služby odebráním skupiny prostředků.

  1. V části Přehled vyberte skupinu prostředků my-container-apps.

  2. V horní části přehledu skupiny prostředků vyberte tlačítko Odstranit skupinu prostředků.

  3. Zadejte název skupiny prostředků my-container-apps v potvrzovací dialogovém okně "my-container-apps" .

  4. Vyberte Odstranit.

    Dokončení procesu odstranění skupiny prostředků může trvat několik minut.

Požadavky

  • Účet Azure s aktivním předplatným.

  • 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 náhledu, nainstalujte rozšíření Container Apps pomocí --allow-preview true.

  • Tato funkce je podporovaná jenom pro prostředí profilu úloh.

  • Tato funkce je dostupná jenom v podporovaných oblastech.

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řte skupinu prostředků Azure

Vytvořte skupinu prostředků pro uspořádání služeb souvisejících s nasazením kontejnerové aplikace.

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

Vytvořit prostředí

  1. Vytvořte prostředí Container Apps.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Získejte ID prostředí. Toto ID použijete ke konfiguraci prostředí.

    ENVIRONMENT_ID=$(az containerapp env show \
        --resource-group $RESOURCE_GROUP \
        --name $ENVIRONMENT_NAME \
        --query "id" \
        --output tsv)
    
  3. Zakažte veřejný přístup k síti v prostředí.

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

Nasazení aplikace typu kontejner

  1. 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
    
  2. Načtěte koncový bod vaší kontejnerové aplikace.

    ACA_ENDPOINT=$(az containerapp show \
        --name $CONTAINERAPP_NAME \
        --resource-group $RESOURCE_GROUP \
        --query properties.configuration.ingress.fqdn \
        --output tsv)
    
  3. Když 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

  1. Ujistěte se, že je Microsoft.Cdn poskytovatel prostředků zaregistrovaný pro vaše předplatné.

    az provider register --namespace Microsoft.Cdn
    
  2. 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 zdrojovou skupinu 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 zdrojů.

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

Seznam připojení privátních koncových bodů

  1. 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
    
  2. Zaznamenejte si ID prostředku připojení privátního koncového bodu z odpovědi. Připojení privátního koncového bodu properties.privateLinkServiceConnectionState.description má hodnotu AFD Private Link Request. ID prostředku připojení privátního koncového bodu je následující.

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

    Nezaměňujte toto ID 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álit připojení privátního koncového bodu

Pokud chcete připojení schválit, spusťte následující příkaz. Nahraďte <zástupný symbol> za 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. Přenosy TCP se nepodporují.

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

  1. Získejte 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
    
  2. Přejděte na název hostitele. Vidíte výstup obrazu kontejnerové aplikace pro rychlý start.

    Pokud se zpočátku očekávaný výstup nezobrazuje, počkejte několik minut a pak aktualizujte.

Uvolnění prostředků

Pokud tuto aplikaci již nebudete používat, můžete odebrat skupinu prostředků my-container-apps. Tato akce odstraní instanci 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

Návod

Máte problémy? Dejte nám vědět na GitHubu tím, že otevřete problém v repozitáři Azure Container Apps.