Megosztás a következőn keresztül:


Azure Front Door: Egyéni tartomány üzembe helyezése

Fontos

Az Azure Front Door (klasszikus) 2027. március 31-én megszűnik. A szolgáltatáskimaradás elkerülése érdekében fontos, hogy az Azure Front Door (klasszikus) profiljait 2027 márciusára migrálja az Azure Front Door Standard vagy Prémium szintre. További információkért lásd az Azure Front Door (klasszikus) kivonását.

Ez az Azure CLI-példaszkript egyéni tartománynevet és TLS-tanúsítványt helyez üzembe egy Azure Front Door előtérben. Ez a szkript bemutatja az Azure Front Door teljesen automatizált üzembe helyezését egy egyéni tartománynévvel (az Azure DNS által üzemeltetett) és a TLS-tanúsítványsal.

Fontos

Ez a szkript megköveteli, hogy az Azure DNS nyilvános zónája már létezik a tartománynévhez. Oktatóanyagért lásd : Tartomány gazdagépe az Azure DNS-ben.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

Példaszkript

Az Azure Cloud Shell elindítása

Az Azure Cloud Shell egy olyan ingyenes interaktív kezelőfelület, amelyet a jelen cikkben található lépések futtatására használhat. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta.

A Cloud Shell megnyitásához válassza a Kipróbálás lehetőséget egy kódblokk jobb felső sarkában. A Cloud Shellt egy külön böngészőlapon is elindíthatja a https://shell.azure.com cím megnyitásával.

Amikor megnyílik a Cloud Shell, ellenőrizze, hogy a Bash ki van-e jelölve a környezetében. A következő munkamenetek az Azure CLI-t használják Bash-környezetben, a Másolás lehetőséget választva másolja ki a kódblokkokat, illessze be a Cloud Shellbe, és nyomja le az Enter billentyűt a futtatáshoz.

Bejelentkezés az Azure-ba

A Cloud Shell automatikusan hitelesítve lesz a kezdeti fiókkal, amellyel bejelentkezett. A következő szkripttel egy másik előfizetéssel jelentkezhet be, lecserélve <Subscription ID> az Azure-előfizetés azonosítóját. Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

További információ: Aktív előfizetés beállítása vagy interaktív bejelentkezés

Első lépések

A szkript a következőket hajtja végre:

  1. Erőforráscsoport létrehozása
  2. Tárfiók létrehozása SPA üzemeltetéséhez
  3. SPA-üzemeltetés engedélyezése tárfiókon
  4. "Hello world!" index.html feltöltése Fájl
  5. Front Door-profil létrehozása
  6. Dns-alias létrehozása a Front Doorhoz feloldó Apexhez
  7. CNAME létrehozása a adverify gazdagépnévhez
  8. Front Door előtérbeli végpont létrehozása az egyéni tartományhoz
  9. Útvonal hozzáadása az egyéni tartomány előtérétől az SPA-forrásig
  10. Útválasztási szabály hozzáadása a HTTP átirányításához –> HTTPS
  11. HTTPS engedélyezése a Front Door által felügyelt tanúsítványokkal

A szkript futtatása

A szkript futtatásához másolja a következő kódot egy .sh fájlba, módosítsa a rögzített változókat a tartomány értékeire, majd hajtsa végre a következő parancsot a változók szkriptbe való továbbításához

AZURE_DNS_ZONE_NAME=www.contoso.com AZURE_DNS_ZONE_RESOURCE_GROUP=contoso-rg ./deploy-custom-apex-domain.sh
# Deploy a Custom Domain name and TLS certificate at the apex (root) on an Azure Front Door front-end.

# VARIABLES
# Change these hardcoded values if required

let "randomIdentifier=$RANDOM*$RANDOM"

# Use resource group environment variable if set
if [ "$RESOURCE_GROUP" == '' ];  
    then
        resourceGroup="msdocs-frontdoor-rg-$randomIdentifier"
    else
        resourceGroup="${RESOURCE_GROUP}"
fi

location='AustraliaEast'
tag='deploy-custom-domain'

storage="msdocsafd$randomIdentifier"

frontDoor="msdocs-frontdoor-$randomIdentifier"
frontDoorFrontEnd='www-contoso'

ttl=300

if [ "$AZURE_DNS_ZONE_NAME" == '' ]; 
   then 
        echo -e "\033[33mAZURE_DNS_ZONE_NAME environment variable is not set. Front Door will be created but custom frontend will not be configured because custom domain name not provided. Try:\n\n    AZURE_DNS_ZONE_NAME=www.contoso.com AZURE_DNS_ZONE_RESOURCE_GROUP=contoso-dns-rg ./deploy-custom-apex-domain.sh\n\nSee Readme for details.\033[0m"
   else     
        if [ "$AZURE_DNS_ZONE_RESOURCE_GROUP" == '' ]; 
            then 
                # write error text
                echo -e "\033[31mAZURE_DNS_ZONE_RESOURCE_GROUP environment variable is not set. Provide the resource group for the Azure DNS Zone. Try:\n\n    AZURE_DNS_ZONE_NAME=www.contoso.com AZURE_DNS_ZONE_RESOURCE_GROUP=contoso-dns-rg ./deploy-custom-apex-domain.sh\n\nSee Readme for details.\033[0m"
                
                # write stderr and exit
                >&2 echo "AZURE_DNS_ZONE_RESOURCE_GROUP environment variable is not set."
                exit 1
    fi
fi

# Resource group
az group create -n $resourceGroup -l $location --tags $tag


# STORAGE ACCOUNT
az storage account create -n $storage -g $resourceGroup -l $location --sku Standard_LRS --kind StorageV2

# Make Storage Account a SPA
az storage blob service-properties update --account-name $storage --static-website \
    --index-document 'index.html' --404-document 'index.html' 

# Upload index.html
az storage blob upload --account-name $storage -f ./index.html -c '$web' -n 'index.html' --content-type 'text/html'

# Get the URL to use as the origin URL on the Front Door backend
spaFQUrl=$( az storage account show -n $storage --query 'primaryEndpoints.web' -o tsv )

# Remove 'https://' and trailing '/'
spaUrl=${spaFQUrl/https:\/\//} ; spaUrl=${spaUrl/\//}


# FRONT DOOR
frontDoorId=$( az network front-door create -n $frontDoor -g $resourceGroup --tags $tag --accepted-protocols Http Https --backend-address $spaUrl --query 'id' -o tsv )


if [ "$AZURE_DNS_ZONE_NAME" != '' ]; 
   then 

    # AZURE DNS
    # Apex hostname on contoso.com
    # Create an Alias DNS recordset
    az network dns record-set a create -n "@" -g $AZURE_DNS_ZONE_RESOURCE_GROUP --zone-name $AZURE_DNS_ZONE_NAME --target-resource $frontDoorId --ttl $ttl

    # Create the domain verify CNAME
    az network dns record-set cname set-record -g $AZURE_DNS_ZONE_RESOURCE_GROUP --zone-name $AZURE_DNS_ZONE_NAME --record-set-name "afdverify" --cname "afdverify.$frontDoor.azurefd.net" --ttl $ttl


    # FRONT DOOR FRONT END
    # Create a frontend for the custom domain
    az network front-door frontend-endpoint create --front-door-name $frontDoor --host-name $AZURE_DNS_ZONE_NAME \
        --name $frontDoorFrontEnd -g $resourceGroup --session-affinity-enabled 'Disabled'

    # Update the default routing rule to include the new frontend
    az network front-door routing-rule update --front-door-name $frontDoor -n 'DefaultRoutingRule' -g $resourceGroup \
        --caching 'Enabled' --accepted-protocols 'Https' \
        --frontend-endpoints 'DefaultFrontendEndpoint' $frontDoorFrontEnd

    # Create http redirect to https routing rule
    az network front-door routing-rule create -f $frontDoor -g $resourceGroup -n 'httpRedirect' \
        --frontend-endpoints $frontDoorFrontEnd --accepted-protocols 'Http' --route-type 'Redirect' \
        --patterns '/*' --redirect-protocol 'HttpsOnly'

    # Update the default routing rule to include the new frontend
    az network front-door routing-rule update --front-door-name $frontDoor -n 'DefaultRoutingRule' -g $resourceGroup \
        --caching 'Enabled' --frontend-endpoints 'DefaultFrontendEndpoint' $frontDoorFrontEnd


    # Enable HTTPS. This command will return quickly but provisioning can take up to an hour to complete
    az network front-door frontend-endpoint enable-https \
        --front-door-name $frontDoor -n $frontDoorFrontEnd -g $resourceGroup
fi

Az erőforrások eltávolítása

Az alábbi paranccsal eltávolíthatja az erőforráscsoportot és a hozzá társított összes erőforrást az az csoporttörlés paranccsal – kivéve, ha folyamatosan szüksége van ezekre az erőforrásokra. Ezen erőforrások némelyikének létrehozása és törlése eltarthat egy ideig.

az group delete --name $resourceGroup

Mintahivatkozás

A szkript a következő parancsokat használja. A táblázatban lévő összes parancs a hozzá tartozó dokumentációra hivatkozik.

Parancs Leírás
az group create Létrehoz egy erőforráscsoportot, amelyben minden erőforrást tárol..
az storage account create Létrehoz egy Azure Storage-fiókot a megadott erőforráscsoportban.
az storage blob service-properties update A storage blobszolgáltatás tulajdonságainak frissítése.
az storage blob upload A blob rendszertulajdonságainak beállítása.
az storage account show Tárfiók tulajdonságainak megjelenítése.
az network front-door create Hozzon létre egy bejárati ajtót.
az network dns record-set DNS-rekordok és rekordkészletek kezelése.
az network front-door Bejárati ajtók kezelése.

Következő lépések

Az Azure CLI-vel kapcsolatos további információkért tekintse meg az Azure CLI dokumentációját.