Aracılığıyla paylaş


Öğretici: Azure CLI ile Azure Front Door Standard/Premium (Önizleme) için teslim kuralları ekleme ve özelleştirme

Azure Front Door Standard/Premium (Önizleme) hızlı ve güvenli bir modern bulut CDN'dir. Azure Front Door, Microsoft küresel uç ağını kullanır ve akıllı tehdit koruması ile tümleştirilir. Azure Front Door Standard, içerik teslime odaklanır. Azure Front Door Premium, kapsamlı güvenlik özellikleri ve özelleştirme özellikleri ekler. Bu öğreticide bir Azure Front Door profili oluşturmaya ve ardından web uygulaması davranışlarınız üzerinde daha ayrıntılı denetim için teslim kuralları eklemeye odaklanmaktadır.

Dekont

Bu belgeler Azure Front Door Standard/Premium (Önizleme) içindir. Azure Front Door hakkında bilgi mi arıyorsunuz? Azure Front Door Docs'a bakın.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Bir Azure Front Door profili oluşturun.
  • Bir web uygulamasının iki örneğini oluşturun.
  • Yeni bir güvenlik ilkesi oluşturun.
  • Web uygulamalarınıza bağlantıyı doğrulayın.
  • Kural kümesi oluşturun.
  • Bir kural oluşturun ve kural kümesine ekleyin.
  • Kurallarınıza eylemler veya koşullar ekleyin.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Ön koşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Azure Front Door oluşturma

Kaynak grubu oluşturma

Bu hızlı başlangıç için iki kaynak grubuna ihtiyacınız vardır. Biri Orta ABD'de, ikincisi Doğu ABD'de.

Kaynak grupları oluşturmak için az group create komutunu çalıştırın.

az group create \
    --name myRGFDCentral \
    --location centralus

az group create \
    --name myRGFDEast \
    --location eastus

Azure Front Door profili oluşturma

Azure Front Door profili oluşturmak için az afd profile create komutunu çalıştırın.

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --sku Premium_AzureFrontDoor \
    --subscription mysubscription

Web uygulamasının iki örneğini oluşturma

Bu öğretici için farklı Azure bölgelerinde çalışan bir web uygulamasının iki örneğine ihtiyacınız vardır. Her iki web uygulaması örneği de Etkin/Etkin modunda çalışır, böylece biri trafiğe hizmet verebilir.

Henüz bir web uygulamanız yoksa, iki örnek web uygulaması ayarlamak için aşağıdaki betiği kullanın.

App Service planları oluşturma

Web uygulamalarını oluşturabilmeniz için önce biri Orta ABD'de, ikincisi Doğu ABD'de olan iki app service planına ihtiyacınız olacaktır.

App Service planlarınızı oluşturmak için az appservice plan create komutunu çalıştırın.

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFDCentral

az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFDEast

Web uygulamaları oluşturma

Önceki adımda app service planlarının her birinde bir web uygulaması oluşturmak için az webapp create komutunu çalıştırın. Web uygulaması adları genel olarak benzersiz olmalıdır.

Web uygulamaları için yerleşik yığınların listesini görmek için az webapp list-runtimes komutunu çalıştırın.

az webapp create \
    --name WebAppContoso-001 \
    --resource-group myRGFDCentral \
    --plan myAppServicePlanCentralUS \
    --runtime "DOTNETCORE|2.1"

az webapp create \
    --name WebAppContoso-002 \
    --resource-group myRGFDEast \
    --plan myAppServicePlanEastUS \
    --runtime "DOTNETCORE|2.1"

Bir sonraki adımda Front Door'u dağıtırken arka uç adreslerini tanımlayabilmeniz için her web uygulamasının varsayılan ana bilgisayar adını not edin.

Bir uç nokta ekleme

Profilinizde bir uç nokta oluşturmak için az afd endpoint create komutunu çalıştırın. Oluşturma deneyimini tamamladıktan sonra profilinizde birden çok uç nokta oluşturabilirsiniz.

az afd endpoint create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --origin-response-timeout-seconds 60 \
    --enabled-state Enabled

Kaynak grubu oluşturma

İki web uygulamanızı içeren bir kaynak grubu oluşturmak için az afd origin-group create komutunu çalıştırın.

az afd origin-group create \
    --resource-group myRGFDCentral \
    --origin-group-name og1 \
    --profile-name contosoafd \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 120 \
    --probe-path /test1/azure.txt \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

Gruba çıkış noktaları ekleme

Kaynak grubunuza kaynak eklemek için az afd origin create komutunu çalıştırın.

az afd origin create \
    --resource-group myRGFDCentral \
    --host-name webappcontoso-1.azurewebsites.net
    --profile-name contosoafd \
    --origin-group-name og1 \
    --origin-name contoso1 \
    --origin-host-header webappcontoso-1.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

Bu adımı yineleyin ve ikinci kaynağınızı ekleyin.

az afd origin create \
    --resource-group myRGFDCentral \
    --host-name webappcontoso-2.azurewebsites.net
    --profile-name contosoafd \
    --origin-group-name og1 \
    --origin-name contoso2 \
    --origin-host-header webappcontoso-2.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

Yol ekleme

Ön uç uç noktanızı kaynak grubuna eşlemek için az afd route create komutunu çalıştırın. Bu yol uç noktadan gelen istekleri og1'e iletir.

az afd route create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --route-name route1 \
    --https-redirect Enabled \
    --origin-group og1 \
    --supported-protocols Https \
    --link-to-default-domain Enabled \
    --forwarding-protocol MatchRequest

Yeni bir güvenlik ilkesi oluşturma

WAF ilkesi oluşturma

Kaynak gruplarınızdan biri için bir WAF ilkesi oluşturmak için az network front-door waf-policy create komutunu çalıştırın.

Front Door'unuz için yeni bir WAF ilkesi oluşturun. Bu örnek, etkinleştirilmiş ve önleme modunda bir ilke oluşturur.

az network front-door waf-policy create
    --name contosoWAF /
    --resource-group myRGFDCentral /
    --sku Premium_AzureFrontDoor
    --disabled false /
    --mode Prevention

Dekont

Modu seçerseniz Detection WAF'niz hiçbir isteği engellemez.

Güvenlik ilkesini oluşturma

WAF ilkenizi uç noktanın varsayılan etki alanına uygulamak için az afd security-policy create komutunu çalıştırın.

az afd security-policy create \
    --resource-group myRGFDCentral \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contoso-frontend.z01.azurefd.net \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

Azure Front Door'un doğrulanması

Azure Front Door Standard/Premium profilini oluşturduğunuzda yapılandırmanın genel olarak dağıtılması birkaç dakika sürer. İşlem tamamlandıktan sonra, oluşturduğunuz ön uç konağına erişebilirsiniz. Tarayıcıda adresine contoso-frontend.z01.azurefd.netgidin. İsteğiniz otomatik olarak kaynak grubundaki belirtilen sunuculardan en yakın sunucuya yönlendirilir.

Anlık genel yük devretmeyi test etmek için aşağıdaki adımları kullanacağız:

  1. Yukarıda açıklandığı gibi bir tarayıcı açın ve ön uç adresine gidin: contoso-frontend.azurefd.net.

  2. Azure portalında Uygulama hizmetleri'ni arayın ve seçin. Bu örnekte WebAppContoso-1 web uygulamalarınızdan birini bulmak için ekranı aşağı kaydırın.

  3. Web uygulamanızı seçin ve ardından durdur'u ve doğrulamak için Evet'i seçin.

  4. Tarayıcınızı yenileyin. Aynı bilgi sayfasını görmeniz gerekir.

    Bahşiş

    Bu eylemler için biraz gecikme vardır. Yeniden yenilemeniz gerekebilir.

  5. Diğer web uygulamasını bulun ve durdurun.

  6. Tarayıcınızı yenileyin. Bu kez bir hata iletisi görmeniz gerekir.

    Both instances of the web app stopped

Kural kümesi oluşturma

HTTP isteklerinin uçta nasıl işleneceğini özelleştirmek için bir kural kümesi oluşturun. Kural kümesine eklenen teslim kuralları, web uygulaması davranışlarınız üzerinde daha fazla denetim sağlar. Azure Front Door profilinizde bir kural kümesi oluşturmak için az afd rule-set create komutunu çalıştırın.

az afd rule-set create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules

Teslim kuralı oluşturma ve kural kümenize ekleme

Kural kümenizde yeni bir teslim kuralı oluşturun. Kural kümenizde bir teslim kuralı oluşturmak için az afd rule create komutunu çalıştırın. Bu örnekte, http'den https'ye yeniden yönlendirme için bir kural oluşturacağız.

az afd rule create \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --order 1 \
    --match-variable RequestScheme \
    --operator Equal \
    --match-values HTTP \
    --rule-name "redirect" \
    --action-name "UrlRedirect" \
    --redirect-protocol Https \
    --redirect-type Moved

Teslim kuralınıza eylem veya koşul ekleme

Yeni teslim kuralınızı daha fazla özelleştirmeniz gerektiğini fark edebilirsiniz. Oluşturma işleminden sonra gereken eylemleri veya koşulları ekleyebilirsiniz. Kuralınızı güncelleştirmek için az afd rule action add veya az afd rule condition add komutunu çalıştırın.

Eylem ekleme

az afd rule action add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --action-name "CacheExpiration" \
    --cache-behavior BypassCache

Koşul ekleme

az afd rule condition add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --match-variable RemoteAddress \
    --operator GeoMatch \
    --match-values "TH"

Kaynakları temizleme

Front Door için kaynaklara ihtiyacınız olmadığında her iki kaynak grubunu da silin. Kaynak gruplarının silinmesi Front Door'un ve ilgili tüm kaynaklarının da silinmesine neden olur.

az group delete komutunu çalıştırın:

az group delete \
    --name myRGFDCentral

az group delete \
    --name myRGFDEast