Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yüksek kullanılabilirlik ve hataya dayanıklılık, iyi tasarlanmış bir çözümün temel bileşenleridir. Sağlam bir yapılandırma, kapalı kalma süresini azaltmak ve sistemlerin otomatik olarak çalışmasını sağlamak için beklenmeyen hatalara yönelik bir acil durum planı içerir.
Bir uygulamayı buluta dağıttığınızda, uygulama altyapısı tabanı için bu bulutta bir bölge seçersiniz. Bir uygulamayı yalnızca tek bir bölgeye dağıtırsanız ve bu bölge kullanılamaz duruma gelirse, uygulama da kullanılamaz. Kullanılabilirlik eksikliği, uygulamanın hizmet düzeyi sözleşmesinin (SLA) koşulları altında kabul edilemez olabilir. Kullanılabilirliği sağlamak için uygulamayı ve hizmetlerini bulutta birden çok bölgeye dağıtın.
Bu öğreticide, yüksek oranda kullanılabilir çok bölgeli bir web uygulamasının nasıl dağıtılacağı açıklanmaktadır. Yordam, bir web uygulaması ve Azure Front Door içeren basit bir senaryo uygular. Diğer altyapı desenlerini desteklemek için kavramları genişletebilirsiniz. Örneğin, uygulamanız bir Azure veritabanı teklifine veya depolama hesabına bağlanıyorsa bkz. SQL veritabanları için Aktif coğrafi çoğaltma ve Azure Depolama yedeklilik. Daha ayrıntılı bir senaryo için .NET için Güvenilir web uygulama deseni referans mimarisine bakın.
Bu eğitimde, siz:
- Ayrı bölgelerde aynı App Service uygulamaları oluşturma
- App Service'e genel erişimi engellemek için erişim kısıtlamalarıyla Azure Front Door oluşturma
Önkoşullar
Azure hesabınız yoksa başlamadan önce free hesabı oluşturun.
Bu öğreticiyi tamamlamak için:
bash ortamını Azure Cloud Shell kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell ile çalışmaya başlama.
CLI'yi yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalıştırıyorsanız Azure CLI Docker kapsayıcısında çalıştırmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Docker kapsayıcısında Azure CLI çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI 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 kullanarak Azure'a Kimlik Doğrulama.
İ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 ve yönetme.
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.
Senaryo mimarisini gözden geçirin
Aşağıdaki mimari diyagramı, bu öğreticide oluşturduğunuz altyapıyı gösterir. Ayrı bölgelerdeki iki aynı App Service uygulamasından oluşur. İlk web uygulaması etkin bölgededir. Gelen trafiği işlemeden sorumlu birincil uygulamadır. İkinci uygulama bekleme bölgesindedir ve birincil uygulamanın kullanılabilirliğini bekler. Azure Front Door trafiği birincil web uygulamasına yönlendirmeye çalışır. Birincil bölge kullanılamadığında, trafik beklemedeki web'e yönlendirilir. Diyagramda noktalı çizgi, bölge durumuna göre trafik yönlendirmesini temsil eder. Erişim kısıtlamaları yapılandırıldığından, uygulamalara İnternet'ten doğrudan erişimi engelleyin.
Azure yük dengeleme ve trafik yönlendirme için çeşitli seçenekler sağlar. Azure Front Door, birden çok bölgede dağıtılan ve Azure App Service üzerinde barındırılan internet'e yönelik web uygulamalarını içermesi nedeniyle bu ders için seçilmiştir. Yapılandırmanız bu öğreticideki örnekten farklıysa bkz. Senaryonuz için yük dengeleme çözümü seçme.
Bu öğreticideki senaryo aşağıdaki davranışı sağlar:
- Aynı App Service uygulamaları iki ayrı bölgeye dağıtılır.
- Doğrudan web uygulamalarına gönderilen genel trafik engellenir.
- Azure Front Door trafiği birincil bölgedeki etkin uygulamaya yönlendirir.
- İkincil bölgedeki bekleme uygulaması gerektiğinde trafiğe hizmet vermek için kullanılabilir.
Bir kaynak grubu oluşturun
Bu öğretici için farklı Azure bölgelerinde çalışan bir web uygulamasının iki örneğine ihtiyacınız vardır.
Kullanılabilir bölge çiftlerini gözden geçirin ve web uygulamalarınız için eşleştirilmiş iki bölge seçin.
Bu öğreticide, iki bölge
<primary-region>(eastus) ve<standby-region>(westus) olarak adlandırılır.Bu öğreticide yapılandırdığınız tüm kaynaklar için bir kaynak grubu oluşturun. Bu öğretici,
<primary-region>konumunda kaynak grubunu oluşturur.az group create --name <resource-group> --location <primary-region>Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --name<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--location<primary-region>Kaynak grubunun bölge konumu. Bu öğreticide kaynak grubu ve birincil web uygulaması için aynı bölge konumu kullanılır. eastusGerçek bir uygulamada, her bölge/kaynak için ayrı kaynak grupları kullanın. Ayırma, olağanüstü durum kurtarma durumunda kaynakların yalıtılmasını sağlar.
Daha fazla bilgi için az group create command başvurusuna bakın.
İki App Service planı oluşturma
Her web uygulaması için bir tane olacak şekilde iki App Service planı oluşturun. Her planı ilgili uygulamayı oluşturmayı beklediğiniz bölge konumunda oluşturun.
Bu komut için daha önce seçtiğiniz bölge çiftini kullanırsınız. Birincil web uygulaması için etkin bölgeyi ve hazır bekleyen web uygulaması için pasif bölgeyi kullanın.
Birincil web uygulaması için App Service planını oluşturmak için aşağıdaki komutu çalıştırın ve komutu yeniden çalıştırarak hazır bekleyen uygulamanın planını oluşturun.
az appservice plan create --name <app-service-plan> --resource-group <resource-group> --is-linux --location `<region>`
Aşağıdaki <placeholder> parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:
| Parametre | Değer | Açıklama | Example |
|---|---|---|---|
--name |
<app-service-plan> |
Web uygulaması için uygulama hizmet planının adı. Her plan örneğinin benzersiz bir adı olmalıdır. | zava-primary-planzava-standby-plan |
--resource-group |
<resource-group> |
Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. | zava-resource-group |
--location |
<region> |
Web uygulamasının bölge konumu. | - Birincil web uygulaması, etkin bölge eastus - Bekleme web uygulaması, pasif bölge westus |
Daha fazla bilgi için az appservice plan create command başvurusuna bakın.
İki uygulama oluşturma
İki App Service web uygulaması oluşturun. Her uygulamayı ilgili App Service planına ve bölge konumuna yerleştirin.
Web uygulamalarının
--runtimedil sürümünü belirleyin.Kullanılabilir çalışma zamanlarının listesi için aşağıdaki komutu çalıştırabilirsiniz:
az webapp list-runtimesBu öğreticide açıklanan örnek Node.js uygulamasını kullanmayı planlıyorsanız, değeri
<language-version>olarakNODE:24-ltsayarlayın.İki web uygulaması oluşturun. Birincil web uygulamasını oluşturmak için aşağıdaki komutu çalıştırın ve bekleme uygulamasını oluşturmak için komutunu yeniden çalıştırın.
az webapp create --name <web-app-name> --resource-group <resource-group> --plan <app-service-plan> --runtime <language-version>Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --name<web-app-name>Web uygulamasının adı. Her uygulamanın genel olarak benzersiz bir adı olmalıdır. Geçerli karakterler , a-zve0-9şeklindedir-.zava-primary-appzava-standby-app--resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--name<app-service-plan>Web uygulaması için uygulama hizmet planının adı. zava-primary-planzava-standby-plan--runtime<language-version>Web uygulamasının çalışma zamanı dil sürümü. NODE:24-ltsDaha fazla bilgi için az webapp create command başvurusuna bakın.
Her web uygulamasının
defaultHostNamedeğerini belirleyin. Ana bilgisayar adı biçimi şeklindedir<web-app-name>.azurewebsites.net.Her web uygulaması için komut çıkışını tarayın ve değeri bulun veya her web uygulaması için aşağıdaki komutu çalıştırın:
az webapp show --name <web-app-name> --resource-group <resource-group> --query "hostNames"Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --name<web-app-name>Web uygulamasının adı. zava-primary-appzava-standby-app--resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-groupAzure portalında, her uygulamanın ana bilgisayar adı web uygulaması Overview sayfasında görünür.
Daha sonra için konak adı değerlerini kaydedin. Azure Front Door dağıtımının arka uç adreslerini tanımlamak için konak adlarını kullanırsınız.
Yeni web uygulamalarına erişebildiğinizden emin olun.
Tarayıcıda, birincil web uygulamasının ana bilgisayar adını girin, örneğin
zava-primary-app.azurewebsites.net.Bağlantı başarılı olduğunda aşağıdaki iletiyi görürsünüz:
Testi hazır bekleyen web uygulamanızın ana bilgisayar adıyla tekrarlayın.
Azure Front Door'u yapılandırın
Bir çok bölgeli dağıtım etkin-etkin veya etkin-pasif bir yapılandırma kullanabilir. Birincil bölge etkindir ve bekleme bölgesi pasiftir.
- Etkin-etkin yapılandırma, istekleri birden çok etkin bölgeye dağıtır.
- Etkin-pasif yapılandırma, bekleyen (pasif) bölgede çalışan örnekleri tutar, ancak birincil (etkin) bölge başarısız olmadığı sürece oraya trafik göndermez.
Azure Front Door her iki yapılandırmayı da etkinleştirmenizi sağlar. Yüksek kullanılabilirlik ve hataya dayanıklılık için uygulama tasarlama hakkında daha fazla bilgi için bkz. Güvenilirlik için tasarım gözden geçirme denetim listesi.
Profil oluşturun
Trafiği web uygulamalarınıza yönlendirmek için Azure Front Door Premium örneği oluşturun.
Azure Front Door katman karşılaştırmasını gözden geçirin ve dağıtımınız için katmanı seçin.
Bu öğreticide Azure Front Door Premium (
Premium_AzureFrontDoor) kullanılır.Azure Front Door Standard'ı dağıtmayı tercih ediyorsanız, Standart katmanının WAF İlkesi ile yönetilen kuralların dağıtımını desteklemediğini unutmayın.
Profili oluşturmak için aşağıdaki komutu çalıştırın:
az afd profile create --profile-name <front-door-profile> --resource-group <resource-group> --sku <front-door-tier>Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --profile-name<front-door-profile>Azure Front Door profilinin adı. Ad, kaynak grubu içinde benzersiz olmalıdır. zava-profile--resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--sku<front-door-tier>Dağıtım için Azure Front Door'un katman ürün kodu. Premium_AzureFrontDoor(önerilir)
Standard_AzureFrontDoorDaha fazla bilgi için az afd profile create komut başvurusuna bakın.
Bir uç nokta ekleme
Profilinizde bir uç nokta oluşturun. İlk uç noktayı oluşturduktan sonra profilinizde birden çok uç nokta oluşturabilirsiniz.
az afd endpoint create --resource-group <resource-group> --endpoint-name <front-door-endpoint> --profile-name <front-door-profile> --enabled-state Enabled
Aşağıdaki <placeholder> parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:
| Parametre | Değer | Açıklama | Example |
|---|---|---|---|
--resource-group |
<resource-group> |
Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. | zava-resource-group |
--endpoint-name |
<front-door-endpoint> |
Azure Front Door profili altındaki uç noktanın adı. Adın genel olarak benzersiz olması gerekir. | zava-endpoint |
--profile-name |
<front-door-profile> |
Azure Front Door profilinizin adı. | zava-profile |
Daha fazla bilgi için az afd endpoint create komut başvurusuna bakın.
Kaynak grubu oluşturma
Azure Front Door'a dağıtım yaptığınızda, web uygulamanızın arka ucu için uç nokta olarak hizmet vermek üzere bir orijine ihtiyacınız gereklidir. Daha fazla bilgi için Azure Front Door'daki kökenler ve köken gruplarına bakın. Orijinler bir orijin grubunda depolanır.
İki web uygulamanızın çıkış noktalarını içermesi için Azure Front Door profilinizde bir kaynak grubu oluşturun.
az afd origin-group create --resource-group <resource-group> --origin-group-name <front-door-origin-group> --profile-name <front-door-profile> \
--probe-request-type <probe-request> \
--probe-protocol <probe-protocol> \
--probe-interval-in-seconds <probe-interval> \
--probe-path <probe-path> \
--sample-size <sample-size> \
--successful-samples-required <required-samples> \
--additional-latency-in-milliseconds <extra-latency>
Aşağıdaki <placeholder> parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:
| Parametre | Değer | Açıklama | Example |
|---|---|---|---|
--resource-group |
<resource-group> |
Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. | zava-resource-group |
--origin-group-name |
<front-door-origin-group> |
Azure Front Door kaynak grubunun adı. Adın genel olarak benzersiz olması gerekir. | zava-origin-group |
--profile-name |
<front-door-profile> |
Azure Front Door profilinizin adı. | zava-profile |
--probe-request-type |
<probe-request> |
Sağlık denetimi istek türü. | GET |
--probe-protocol |
<probe-protocol> |
Sağlık kontrolü için kullanılacak protokol. | Http |
--probe-interval-in-seconds |
<probe-interval> |
Sağlık denetimleri arasındaki saniye sayısı. | 60 |
--probe-path |
<probe-path> |
Kaynağın sağlığını belirlemek için kullanılan, kaynağa göre göreceli olan yol. |
/ (ters eğik çizgi) |
--sample-size |
<sample-size> |
Yük dengeleme kararları için dikkate alınacak örnek sayısı. | 4 |
--successful-samples-required |
<required-samples> |
Örnekleme periyodu içinde başarılı olması gereken örnek sayısı. | 3 |
--additional-latency-in-milliseconds |
<extra-latency> |
Probların en düşük gecikme süresi kovasına girmesi için milisaniye cinsinden ek gecikme süresi. | 50 |
Daha fazla bilgi için az afd origin-group create komut başvurusuna bakın.
Kaynak grubuna çıkış noktaları ekleme
Web uygulamalarınızın her biri için Azure Front Door kaynak grubunuza bir çıkış noktası ekleyin.
Birincil web uygulaması için bir kaynak ekleyin.
--priorityparametresini1olarak ayarlayın ve bu Azure Front Door bu uygulamanın trafik için birincil alıcı olduğunu bildirir.az afd origin create --resource-group <resource-group> --host-name <web-app-name>.azurewebsites.net --profile-name <front-door-profile> \ --origin-group-name <front-door-origin-group> \ --origin-name <web-app-origin-name> \ --origin-host-header <web-app-name>.azurewebsites.net \ --priority <origin-priority> --weight <origin-weight> --enabled-state <origin-state> \ --http-port <origin-port> --https-port <origin-secure-port>Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--host-name<web-app-name>.azurewebsites.netBirincil web uygulamanızın ana bilgisayar adı. Ana bilgisayar adı, web uygulaması adını (örneğin zava-primary-app, konak tanımlayıcısıazurewebsites.net) ile birleştirir.zava-primary-app.azurewebsites.net--profile-name<front-door-profile>Azure Front Door profilinizin adı. zava-profile--origin-group-name<front-door-origin-group>Azure Front Door kaynak grubunun adı. zava-origin-group--origin-name<web-app-origin-name>Birincil web uygulamasının orijininin adı. Adın kaynak grubu içinde benzersiz olması gerekir. primary-origin--origin-host-header<web-app-name>.azurewebsites.netana web uygulaması kaynağına istekler için gönderilecek host başlığı. Bir değer belirtmezseniz, istek ana bilgisayar adı bu değeri belirler. Web Apps, Blob Depolama ve Cloud Services gibi Azure CDN çıkış noktaları, bu ana bilgisayar üst bilgisi değerinin varsayılan olarak kaynak ana bilgisayar adıyla eşleşmesini gerektirir. zava-primary-app.azurewebsites.net--priority<origin-priority>Kaynak grubu içindeki bu kaynağın önceliği. Birincil web uygulaması için önceliği 1 olarak ayarlayın. Azure Front Door kaynaklar ve etkin bölgeler arasında yük dengeleme için öncelik değerlerini kullanır. Değer 1 ile 5 arasında olmalıdır. 1 --weight<origin-weight>Yük dengeleme için çıkış noktası grubu içindeki kaynağın ağırlığı. Değer 1 ile 1000 arasında olmalıdır. 1000 --enabled-state<origin-state>Bu kaynağın trafiği almasının etkinleştirilip etkinleştirilmeymeyeceğini belirtin. Enabled--http-port<origin-port>HTTP isteklerinin kaynağa gönderilmesi için kullanılan bağlantı noktası. 80 --https-port<origin-secure-port>Kaynak için güvenli HTTPS istekleri için kullanılan bağlantı noktası. 443 Daha fazla bilgi için az afd origin create komut başvurusuna bakın.
Komutunu yeniden çalıştırın ve hazır bekleyen web uygulaması için bir kaynak ekleyin. komut aynı parametreleri kullanır, ancak aşağıdaki benzersiz parametre değerleriyle birlikte:
Parametre Değer Açıklama Example --host-name<web-app-name>.azurewebsites.netHazır bekleyen web uygulamanızın ana bilgisayar adı. zava-standby-app.azurewebsites.net--origin-name<web-app-origin-name>Hazır bekleyen web uygulamasının kaynağının adı. standby-origin--origin-host-header<web-app-name>.azurewebsites.netYedek web uygulaması kaynağına istek göndermek için kullanılacak ana bilgisayar üst bilgisi. zava-standby-app.azurewebsites.net--priority<origin-priority>Kaynak grubu içindeki bu kaynağın önceliği. Hazır bekleyen web uygulaması için önceliği 2 olarak ayarlayın. Azure Front Door tüm trafiği birincil çıkış noktasıyla yönlendirmeye çalışır. Birincil kaynak kullanılamadığında, trafik bekleme kaynağına yönlendirilir. 2
Yol kuralı ekleme
Azure Front Door uç noktasını kaynak grubuna eşlemek için bir yönlendirme kuralı ekleyin. Rota, uç noktadan gelen istekleri kaynak grubuna iletir.
Azure Front Door uç noktasını kaynak grubuna eşlemek için bir yol kuralı oluşturun:
az afd route create --resource-group <resource-group> --profile-name <front-door-profile> --endpoint-name <front-door-endpoint> ` --forwarding-protocol <protocol-type> --route-name <route-rule-name> --https-redirect <secure-redirect> ` --origin-group <front-door-origin-group> --supported-protocols <protocol-list> --link-to-default-domain <domain-link>Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--profile-name<front-door-profile>Azure Front Door profilinizin adı. zava-profile--endpoint-name<front-door-endpoint>Azure Front Door profilinizin altındaki uç noktanın adı. zava-endpoint--forwarding-protocol<protocol-type>Trafiği arka uç uygulamalarına iletirken bu yol kuralı tarafından kullanılan protokol. MatchRequest--route-name<route-rule-name>Yol kuralının adı. Azure Front Door profili içinde benzersiz olmalıdır. zava-route-rule--https-redirect<secure-redirect>HTTP trafiğinin otomatik olarak HTTPS trafiğine yönlendirilip yönlendirilmeyeceğini gösterir. Enabled--origin-group-name<front-door-origin-group>Azure Front Door kaynak grubunun adı. zava-origin-group--supported-protocols<protocol-list>Bu yol kuralı için desteklenen protokollerin listesi. Protokol türlerini ayırmak için bir boşluk kullanın. Http Https--link-to-default-domain<domain-link>Bu yolun varsayılan uç nokta etki alanına bağlı olup olmadığını belirtin. EnabledDaha fazla bilgi için az afd route create komut başvurusuna bakın.
Dağıtımın tamamlanması için yaklaşık 15 dakika bekleyin. Değişikliklerin genel olarak yayılması biraz zaman alabilir.
Erişimi yalnızca Azure Front Door kısıtla
Şu anda web uygulamalarınıza bir tarayıcıya konak adlarını girerek doğrudan erişebilirsiniz. Uygulamalarınızda erişim kısıtlamaları ayarlarsanız trafiğin uygulamalarınıza yalnızca Azure Front Door üzerinden ulaşmasını sağlayabilirsiniz.
Azure Front Door özellikleri, trafik yalnızca hizmet üzerinden aktığında en iyi şekilde çalışır. Web uygulamanızın çıkış noktalarını, Azure Front Door üzerinden gönderilmemiş trafiği engelleyecek şekilde yapılandırmak en iyi yöntemdir. Aksi takdirde trafik Azure Front Door web uygulaması güvenlik duvarını, DDoS korumasını ve diğer güvenlik özelliklerini atlayabilir.
Azure Front Door uygulamalarınıza gelen trafik, AzureFrontDoor.Backend hizmet etiketinde tanımlanan iyi bilinen bir IP aralığı kümesinden kaynaklanır. Hizmet etiketi kısıtlama kuralı kullanarak, trafiği yalnızca Azure Front Door'dan kaynaklanacak şekilde sınırlayabilirsiniz.
Azure Front Door profilinizin tanımlayıcısını alın.
Trafiğin yalnızca belirli bir Azure Front Door örneğinden kaynaklanmasını sağlamak için profil kimliğine ihtiyacınız vardır. Erişim kısıtlaması, gelen istekleri Azure Front Door profilinizden gönderilen benzersiz HTTP üst bilgisine göre daha fazla filtreler.
az afd profile show --resource-group <resource-group> --profile-name <front-door-profile> --query "frontDoorId"Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--profile-name<front-door-profile>Azure Front Door profilinizin adı. zava-profileKomut çıktısı profil kimliğini (32 basamaklı alfasayısal değer) görüntüler:
"0000aaaa-1b1b-2c2c-3d3d-444444eeeeee"Sonraki adımda, değer için
<profile-identifier>profil kimliğini kullanacaksınız.Birincil web uygulamanızda erişim kısıtlamalarını ayarlamak için aşağıdaki komutu çalıştırın ve beklemedeki uygulamada kısıtlamalar ayarlamak için komutunu yeniden çalıştırın.
az webapp config access-restriction add --resource-group <resource-group> --name <web-app-name> ` --priority <access-priority> --service-tag <tag-name> --http-header x-azure-fdid=<front-door-id>Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--name<web-app-name>Erişim kısıtlamalarını ayarladığınız web uygulamasının adı. zava-primary-appzava-standby-app--priority<access-priority>Profil için tanımlanan tüm kurallarda erişim kısıtlama kuralının önceliğini belirtin. Daha düşük bir değer daha yüksek bir önceliğe eşittir. 100 --service-tag<tag-name>Azure Front Door tarafından tanınan bir hizmet etiketi adı. Erişim kısıtlamaları, hizmet etiketiyle belirtilen IP aralığına uygulanır. AzureFrontDoor.Backend--http-headerx-azure-fdid=<profile-identifier>Gelen trafiğin ek filtrelemesi için bir veya daha fazla benzersiz HTTP üst bilgisi belirtin. Erişim kısıtlamaları, gelen istekleri Azure Front Door profilinizden gönderilen benzersiz HTTP üst bilgisine göre filtreler. Azure Front Door örneğiniz için üst bilgi, Azure Front Door ön ekini ve profil tanımlayıcısını birleştirir. x-azure-fdid=0000aaaa-1b1b-2c2c-3d3d-444444eeeeeeDaha fazla bilgi için az webapp config access-restriction add komut başvurusuna bakın.
Erişim kısıtlamalarını test et
Erişim kısıtlamalarınızın uygulamalarınıza doğrudan erişimi önleyeni onaylayın.
Tarayıcıda, birincil web uygulamasının ana bilgisayar adını girin, örneğin
zava-primary-app.azurewebsites.net.Bağlantının aşağıdaki iletiyle başarısız olması bekleniyor:
Testi,
zava-standby-app.azurewebsites.netgibi hazır bekleyen web uygulamanızın ana bilgisayar adıyla tekrarlayın.
Azure Front Door dağıtımlarını test edin
Azure Front Door Standard veya Premium profili oluşturduğunuzda yapılandırmanın genel olarak dağıtılması biraz zaman alabilir. Dağıtım tamamlandıktan sonra frontend sunucusuna erişebilirsiniz.
Azure Front Door uç noktanızın ana bilgisayar adını alın:
az afd endpoint show --resource-group <resource-group> --profile-name <front-door-profile> --endpoint-name <front-door-endpoint> --query "hostName"Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:Parametre Değer Açıklama Example --resource-group<resource-group>Bu öğreticide oluşturulan kaynakları içeren kaynak grubu. zava-resource-group--profile-name<front-door-profile>Azure Front Door profilinizin adı. zava-profile--endpoint-name<front-door-endpoint>Azure Front Door profilinizin altındaki uç noktanın adı. zava-endpointKomut çıktısı uç nokta ana bilgisayar adını görüntüler:
"zava-endpoint-0a1b2c3d4e5f6g78.z00.azurefd.net"Konak adı uç nokta adından, benzersiz bir alfasayısal karmadan, tanımlayıcıdan ve Azure Front Door sonekinden oluşur. Sonraki adımda uç nokta ana bilgisayar adını kullanacaksınız.
Daha fazla bilgi için az afd endpoint show komut başvurusuna bakın.
Tarayıcıda,
zava-endpoint-0a1b2c3d4e5f6g78.z00.azurefd.netgibi uç nokta ana bilgisayar adını girin.İsteğiniz otomatik olarak etkin bölgedeki birincil uygulamanıza yönlendirilmelidir.
Bağlantı başarılı olduğunda aşağıdaki iletiyi görürsünüz:
Eşleştirilmiş bölgelerdeki uygulamalar arasında anında genel yük devretmeyi test edin.
Tarayıcıda,
zava-endpoint-0a1b2c3d4e5f6g78.z00.azurefd.netgibi uç nokta ana bilgisayar adını girin.az webapp stop komutunu çalıştırarak birincil uygulamayı durdurun.
Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:az webapp stop --name <primary-web-app> --resource-group <resource-group>Tarayıcınızı yenileyin.
Trafik diğer bölgedeki bekleme uygulamasına doğru şekilde yeniden yönlendiriliyorsa aynı sayfayı ve iletiyi görmeniz gerekir.
İpucu
Yük devretmenin tamamlanması için sayfayı birkaç kez yenilemeniz gerekebilir.
Azure portalında web uygulamalarının durumunu denetleyerek Azure Front Door bekleme uygulamasına yönlendirildiğinden emin olabilirsiniz. Birincil web uygulamasının Genel Bakış sayfasında Başlangıç seçeneği kullanılabilir (gri değil) olmalıdır. Hazır bekleyen web uygulamasının Genel Bakış sayfasında Başlangıç seçeneğinin kullanılamaması (gri) olması gerekir.
az webapp stopKomutu yeniden çalıştırın ve hazır bekleyen uygulamanızı durdurun.Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:az webapp stop --name <standby-web-app> --resource-group <resource-group>Tarayıcınızı yeniden yenileyin.
Yedek uygulama da durursa, tüm trafik yönlendirmesi durdurulmalıdır. Bu kez bir hata iletisi görmeniz gerekir:
az webapp startkomutunu çalıştırın ve hazır bekleyen uygulamanızı yeniden başlatın.Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin:az webapp start --name <standby-web-app> --resource-group <resource-group>Tarayıcınızı yenilediğinizde başarılı bir uygulama bağlantısı görmeniz gerekir.
Doğrulama, artık Azure Front Door ve yük devretme işlevleri aracılığıyla uygulamalarınıza istediğiniz gibi erişebildiğinizden emin olur.
Yük devretme testini bitirdiyseniz birincil uygulamanızı yeniden başlatın.
Kaynakları temizleme
Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Gelecekte bu kaynaklara ihtiyaç duymayı beklemiyorsanız, Cloud Shell aşağıdaki komutu çalıştırarak kaynak grubunu silin.
<placeholder> parametre değerini kendi kaynağınızın bilgileriyle değiştirin:
az group delete --name <resource-group>
Bu komutun çalıştırılması birkaç dakika sürebilir.
ARM veya Bicep'den dağıtım
Bu öğreticide oluşturduğunuz kaynaklar bir Azure Resource Manager şablonu (ARM şablonu) veya Bicep şablonu kullanılarak dağıtılabilir. GitHub'da yer alan yüksek erişilebilirlikli çok bölgeli web uygulaması Bicep dosyası ile başlayabilirsiniz. Bu şablon, Azure Front Door arkasında farklı bölgelerdeki iki web uygulamasıyla güvenli, yüksek oranda kullanılabilir, çok bölgeli bir uçtan uca çözüm oluşturmanıza yardımcı olur.
ARM ve Bicep şablonlarının nasıl dağıtılacağını öğrenmek için Azure CLI ile Bicep dosyalarını dağıtma belgesine bakın.
Sık sorulan sorular
Bu öğreticide, çok bölgeli bir web uygulamasını etkinleştirmek için bir temel altyapı dağıttınız. App Service, güvenlikle ilgili en iyi yöntemleri ve önerileri takip eden uygulamalar çalıştırdığınızdan emin olmanıza yardımcı olabilecek özellikler sağlar.
Bu bölüm, uygulamalarınızı daha da güvenli bir şekilde korumanıza ve kaynaklarınızı en iyi yöntemlere göre dağıtmanıza ve yönetmenize yardımcı olabilecek sık sorulan soruların yanıtlarını içerir.
Altyapı ve Azure kaynaklarını yönetme ve dağıtma
Bu öğreticide altyapı kaynaklarınızı dağıtmak için Azure CLI kullandınız. Uygulama altyapınızı yönetmek için sürekli bir dağıtım mekanizması yapılandırmayı göz önünde bulundurun. Kaynakları farklı bölgelere dağıttığınız için, bu kaynakları bölgeler arasında bağımsız olarak yönetmeniz gerekir. Kaynakların her bölgede aynı olduğundan emin olmak için ARM şablonu veya Terraform gibi kod olarak altyapı (IaC), Azure Pipelines veya GitHub Actions gibi dağıtım işlem hatlarıyla kullanılmalıdır. Bu yapılandırmayı uygun şekilde ayarladığınızda, kaynaklarda yapılan tüm değişiklikler tüm dağıtım bölgelerinde güncelleştirmeleri tetikler. Daha fazla bilgi için bkz. Azure App Service için sürekli dağıtımı yapılandırma.
Üretime güvenli dağıtım için hazırlık yuvalarını kullanın.
Uygulama kodunu doğrudan üretim uygulamalarına ve yuvalarına dağıtmanız önerilmez. Uygulamalarınızı test etmek ve üretime göndermeden önce değişiklikleri doğrulamak için güvenli bir yere sahip olmak önemlidir. Kodu test ortamından üretim ortamına taşımak için hazırlama yuvalarının ve yuva değişim işleminin bir kombinasyonunu kullanın.
Bu öğreticide, hazırlık yuvalarının kullanımını destekleyen temel altyapıyı oluşturdunuz. Web uygulamanızın her örneği için dağıtım yuvaları oluşturabilir ve GitHub Actions ile bu hazırlama yuvalarına sürekli dağıtım yapılandırabilirsiniz. Altyapı yönetiminde olduğu gibi, bölgeler arasındaki değişikliklerin eşitlenmiş durumda kalmasını sağlamak için uygulama kaynak kodunuz için sürekli dağıtımı yapılandırmanız da önerilir. Sürekli dağıtımı yapılandırmazsanız, her kod değişikliği olduğunda her bölgedeki her uygulamayı el ile güncelleştirmeniz gerekir.
Hazırlık yuvalarını kullanmak için şu adımları izleyin:
Bu yordam için App Service uygulamanıza dağıtmaya hazır bir uygulamaya ihtiyacınız vardır.
Öğreticiyi tamamladıysanız birincil web uygulamanızı ve yedek web uygulamanızı kullanabilirsiniz. Ancak, yeterli dağıtım yuvalarını destekleyen bir App Service planına ihtiyacınız vardır. Daha fazla bilgi için bkz. Azure abonelik ve hizmet sınırları, kotalar ve kısıtlamalar.
Uygulamanız yoksa Node.js Merhaba Dünya örnek uygulaması ile başlayabilirsiniz. Değişiklik yapabilmek için GitHub deposunu çatallayarak kendi kopyanızı oluşturun.
Web uygulamalarınız için App Service yığını ayarlarını yapılandırın.
Yığın ayarları, uygulamanız için kullanılan dil sürümüne veya çalışma zamanına başvurur.
ayarları Azure portalında yapılandırabilir veya
az webapp config setkomutunu kullanabilirsiniz. Node.js örneğini kullanıyorsanız yığın ayarlarını olarakNode 24 LTSayarlayın.Azure portalındaprimary web uygulamanıza gidin.
Sol menüde Ayarlar
Yığın ayarları sekmesinde aşağıdaki ayarları yapılandırın:
Node gibi Yığın değerini seçin.
Node 24 LTS gibi Sürüm değerini seçin.
seçin, sonra daUygula'yı seçin.
Hazır bekleyen web uygulamanız için App Service yığını ayarlarını yapılandırmak için işlemi yineleyin.
Azure portalında sürekli dağıtımı ayarlayın. GitHub Actions gibi sağlayıcılarla sürekli dağıtımı yapılandırma hakkında ayrıntılı yönergeler için bkz. >Azure App Service için sürekli dağıtımı yapılandırma.
Birincil web uygulamanız için
adlı bir hazırlama yuvası oluşturmak üzere aşağıdaki komutu çalıştırın. az webapp deployment slot create --resource-group <resource-group> --name <web-app-name> --slot stage --configuration-source <web-app-name>az webapp deployment slot createkomutunu yeniden çalıştırın vestageweb uygulaması için adlı bir hazırlama yuvası oluşturun.Her hazırlama yuvası için GitHub Actions ile sürekli dağıtımı yapılandırın:
Azure portalındaprimary web uygulamanıza gidin.
Sol menüde Dağıtım>yuvalarını seçin.
Listede sahne yuvasını bulun ve detaylar bölmesini açmak için yuvayı seçin.
Sol menüde Dağıtım>merkezini seçin.
Settings sekmesindeSource seçeneğiniGitHub :
GitHub'den ilk kez dağıtıyorsanız Authorize öğesini seçin ve yetkilendirme istemlerini izleyin. Farklı bir kullanıcının deposundan dağıtmak istiyorsanız Hesabı Değiştir'i seçin.
Azure hesabınıza GitHub yetki verdikten sonra CI/CD'yi yapılandırmak için Organization, Repository ve Branch seçin. Bir kuruluş veya depo bulamazsanız, GitHub üzerinde daha fazla izin etkinleştirmeniz gerekebilir. Daha fazla bilgi için bkz. Kuruluşunuzun depolarına kullanıcı erişimini yönetme.
Node.js örnek uygulamasını kullanıyorsanız aşağıdaki ayarları kullanın.
Ayar Değer Organizasyon <your-GitHub-organization>Depo nodejs-docs-hello-world Şube ana Kaydet'i seçin.
Seçilen depodaki ve daldaki yeni işlemeler artık App Service uygulama yuvanıza sürekli olarak dağıtılır. İşlemeleri ve dağıtımları Günlükler sekmesinden izleyebilirsiniz.
App Service'de kimlik doğrulaması yapmak için yayımlama profili kullanan varsayılan iş akışı dosyası, GitHub deponuza eklenir. Dizine <repo-name>/.github/workflows/ giderek bu dosyayı görüntüleyebilirsiniz.
App Service'te temel kimlik doğrulamayı devre dışı bırakma
FTP ve SCM uç noktalarına erişimi temel kimlik doğrulamasını devre dışı bırakarak, Microsoft Entra ID tarafından doğrulanan kullanıcılarla sınırlayabilirsiniz.
Uygulama kaynak kodunuzu dağıtmak için sürekli dağıtım aracı kullanıyorsanız, temel kimlik doğrulamasını devre dışı bırakmak için sürekli dağıtımı yapılandırmak için ek adımlar gerekir. Örneğin, Microsoft Entra kimlik bilgilerini kullanmadığından yayımlama profili kullanamazsınız. Bunun yerine bir hizmet sorumlusu veya OpenID Connect kimlik bilgisi kullanmanız gerekir.
Aşağıdaki komutlar, App Service birincil web uygulaması ve aşama yuvası ile yedek web uygulaması ve aşama yuvası için temel kimlik doğrulamayı devre dışı bırakır. Aşağıdaki <placeholder> parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin.
Üretim siteleri için FTP erişimini ve birincil web uygulamanız için hazırlama yuvalarını devre dışı bırakın:
az resource update --resource-group <resource-group> --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies \ --parent sites/<web-app-name> --set properties.allow=false az resource update --resource-group <resource-group> --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies \ --parent sites/<web-app-name>/slots/stage --set properties.allow=falseHazır bekleyen web uygulamanız için komutları yeniden çalıştırın.
Üretim siteleri ve birincil web uygulamanız için hazırlama yuvaları için WebDeploy bağlantı noktası ve SCM sitesine temel kimlik doğrulaması erişimini devre dışı bırakın:
az resource update --resource-group <resource-group> --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies \ --parent sites/<primary-web-app> --set properties.allow=false az resource update --resource-group <resource-group> --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies \ --parent sites/<primary-web-app>/slots/stage --set properties.allow=falseHazır bekleyen web uygulamanız için komutları yeniden çalıştırın.
Oturum açmaları test etme ve izleme de dahil olmak üzere temel kimlik doğrulamasını devre dışı bırakma hakkında daha fazla bilgi için bkz. App Service dağıtımlarında temel kimlik doğrulamasını devre dışı bırakma.
Temel kimlik doğrulaması devre dışı bırakıldığında sürekli dağıtımı kullanma
App Service uygulamalarınızda temel kimlik doğrulamasına izin vermeyi seçerseniz, App Service'te kullanılabilir dağıtım yöntemlerinden herhangi birini kullanabilirsiniz. Örneğin, hazırlama yuvaları bölümünde yapılandırdığınız yayımlama profilini kullanabilirsiniz.
App Service uygulamalarınız için temel kimlik doğrulamasını devre dışı bırakırsanız, sürekli dağıtım için bir hizmet sorumlusu veya kimlik doğrulaması için OpenID Connect gerekir. Kod deponuz olarak GitHub Actions kullanıyorsanız GitHub Actions kullanarak Azure App Service'e Dağıtım bölümüne bakın. Öğretici, App Service'e dağıtım yapmak amacıyla GitHub Actions kullanarak bir hizmet sorumlusu oluşturmak veya OpenID Connect yapılandırmak için adım adım yönergeler sağlar. Sonraki bölümdeki yordamı izleyerek de işlemi tamamlayabilirsiniz.
GitHub Actions ile hizmet sorumlusu ve kimlik bilgileri oluşturma
GitHub Actions ve hizmet sorumlusuyla sürekli dağıtımı yapılandırın:
Birincil web uygulamanız ve hazır bekleyen web uygulamanız için hizmet sorumlusunu oluşturun:
Aşağıdaki
<placeholder>parametre değerlerini kendi kaynaklarınız için bilgilerle değiştirin.az ad sp create-for-rbac --name <service-principal-name> --role contributor --scopes \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<primary-web-app> \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<standby-web-app>Çıkış, App Service uygulamalarınıza erişim sağlayan rol ataması kimlik bilgilerine sahip bir JSON nesnesidir.
{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecret": "ffffffff-5a5a-6b6b-7c7c-888888888888", "subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tenantId": "aaaabbbb-6666-cccc-7777-dddd8888eeee", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com/", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net/" }JSON, istemci gizli dizinizi içerir ve bu gizli dizi yalnızca şu anda görülebilir.
İpucu
Minimum erişim vermek iyi bir uygulamadır. Bu örnekte kapsam, kaynak grubunun tamamıyla değil yalnızca uygulamalarla sınırlıdır.
İstemci sırlarınızı kaydetmek için JSON nesnesini kopyalayın.
GitHub Eylem iş akışınızın bir parçası olarak Azure oturum açma işlemine hizmet sorumlusu kimlik bilgilerinizi sağlayın.
Değerleri doğrudan iş akışında sağlayabilir veya iş akışınızda başvurulabilecek GitHub gizli diziler olarak depolayabilirsiniz. Değerleri gizli GitHub olarak kaydetmek daha güvenli bir seçenektir.
Uygulamanızın GitHub deposunu açın.
Ayarlar>Güvenlik>Gizli bilgileri ve değişkenler>Eylemler'e gidin.
Yeni depo gizlisi'ni seçin ve aşağıdaki ayarların her biri için bir gizli oluşturun. JSON çıkışınızdaki değerleri kullanın.
Ayar Değer Example AZURE_APP_ID <application/client-id>00001111-aaaa-2222-bbbb-3333cccc4444AZURE_PASSWORD <client-secret>ffffffff-5a5a-6b6b-7c7c-888888888888AZURE_TENANT_ID <tenant-id>aaaabbbb-6666-cccc-7777-dddd8888eeeeAZURE_SUBSCRIPTION_ID <subscription-id>cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a
GitHub Actions iş akışı oluşturma
App Service uygulamalarınıza erişebilen bir hizmet sorumlunuz olduktan sonra, uygulamalarınız için varsayılan iş akışlarını düzenleyin. Bu iş akışları, sürekli dağıtımı yapılandırdığınızda otomatik olarak oluşturulur.
Kimlik doğrulaması, yayımlama profili yerine hizmet sorumlunuz kullanılarak yapılmalıdır. Örnek iş akışları için, Service principal sekmesine İş akışı dosyasını GitHub deponuza ekleme bölümünde bakın. Aşağıdaki örnek iş akışı Node.js örnek uygulaması için kullanılabilir.
Uygulamanızın GitHub deposunu açın.
Dizine
<repo-name>/.github/workflows/gidin. Otomatik olarak oluşturulan iş akışlarını görmeniz gerekir.Her iş akışı dosyası için Düzenle (kalem) öğesini seçin.
İş akışı dosyasının içeriğini aşağıdaki içerikle değiştirin. Kod, yetkilendirme bilgilerinizi içeren GitHub gizli anahtarlarını oluşturduğunuzu varsayar.
envbölümünde aşağıdaki ayarları yapılandırın:-
AZURE_WEBAPP_NAME: Yer tutucuyu<web-app-name>web uygulamanızın adıyla değiştirin. -
NODE_VERSION: Kullanılacak düğüm sürümünü belirtin. Node.js örneği için değeridir'24.x'. -
AZURE_WEBAPP_PACKAGE_PATH: Web uygulaması projenizin yolunu belirtin. Varsayılan, depo köküdür'.'. -
AZURE_WEBAPP_SLOT_NAME: Uygulama yuvanızın adını belirtin. Ortak addırstage.
name: Build and deploy Node.js app to Azure Web App on: push: branches: - main workflow_dispatch: env: AZURE_WEBAPP_NAME: <web-app-name> # Your application name NODE_VERSION: '24.x' # Node version to use AZURE_WEBAPP_PACKAGE_PATH: '.' # Path to your web app project AZURE_WEBAPP_SLOT_NAME: stage # Application slot name jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Node.js version uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: npm install, build run: | npm install npm run build --if-present - name: Upload artifact for deployment job uses: actions/upload-artifact@v4 with: name: node-app path: . deploy: runs-on: ubuntu-latest needs: build environment: name: 'stage' url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} steps: - name: Download artifact from build job uses: actions/download-artifact@v4 with: name: node-app - uses: azure/login@v2 with: creds: | { "clientId": "${{ secrets.AZURE_APP_ID }}", "clientSecret": "${{ secrets.AZURE_PASSWORD }}", "subscriptionId": "${{ secrets.AZURE_SUBSCRIPTION_ID }}", "tenantId": "${{ secrets.AZURE_TENANT_ID }}" } - name: 'Deploy to Azure Web App' id: deploy-to-webapp uses: azure/webapps-deploy@v3 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} slot-name: ${{ env.AZURE_WEBAPP_SLOT_NAME }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} - name: logout run: | az logout-
İş akışı dosyası değişikliklerini doğrudan deponuzun ana dalına kaydedip commit edin.
İşleme, GitHub Eyleminin yeniden çalıştırılmasını ve kodunuzun dağıtılması için tetikler. Bu kez, hizmet sorumlusu kimlik doğrulaması için kullanılır.
Yuva trafiği yönlendirmeyi kullanarak uygulama güncelleştirmelerini test edin
Yuvalarla trafik yönlendirme, kullanıcı trafiğinizin önceden tanımlanmış bir bölümünü her yuvaya yönlendirmenizi sağlar. Başlangıçta trafiğin %100'ünün üretim alanına yönlendirilmesi gerekir. Ancak, trafiğinizin %10’unu hazırlık alanınıza gönderebilirsiniz. Bu slot trafiği yönlendirme yaklaşımı, hazırlık slotuna erişmeye çalışan kullanıcıların %10'unu otomatik olarak gönderir. Yaklaşım, Azure Front Door örneğinizde değişiklik yapılmasını gerektirmez. App Service'te yuva değiştirme ve hazırlama ortamları hakkında daha fazla bilgi edinmek için bkz. Azure App Service'da hazırlama ortamlarını ayarlama.
Kodu hazırlama yuvasından üretim yuvasına taşıma
Hazırlama yuvalarınızda test ve doğrulamayı tamamladıktan sonra, hazırlama yuvanızdan üretim sitenize yuva değişimi gerçekleştirebilirsiniz. Uygulamanızın her bölgedeki tüm örnekleri için değiştirme işlemini tamamlarsınız. Yuva değiştirme sırasında App Service platformu hedef yuvanın aksama süresi yaşamamasını garanti eder.
Birincil web uygulamanız için değiştirme işlemini gerçekleştirin:
az webapp deployment slot swap --resource-group <resource-group> -name <primary-web-app-name> --slot stage --target-slot productionYedekteki web uygulamanız için swap işlemini gerçekleştirin:
az webapp deployment slot swap --resource-group <resource-group> -name <standby-web-app-name> --slot stage --target-slot productionBirkaç dakika sonra Azure portalında Azure Front Door uç noktanıza gidin ve yuva değişiminin başarılı olduğunu doğrulayın.
Bu noktada, uygulamalarınız çalışır durumdadır ve uygulama kaynak kodunuzda yaptığınız tüm değişiklikler her iki hazırlama yuvanızda da otomatik olarak bir güncelleştirme tetikler. Daha sonra bu kodu üretime taşımaya hazır olduğunuzda yuva değiştirme işlemini yineleyebilirsiniz.
Çok bölgeli dağıtımları kullanarak kesintilerden ve süreklilik sorunlarından kaçının
Yuva değişimi yapılan bir siteyi Azure Front Door kaynak grubunuzdan geçici olarak kaldırarak bölgeler arasında olası kesintileri veya süreklilik sorunlarını önleyebilirsiniz. Bu eylem, müşterilerin uygulamanızın farklı sürümlerini aynı anda görmesini önlemeye yardımcı olur. Uygulamalarınızda önemli değişiklikler yaparken de kullanışlıdır. Geçici kaldırma, tüm trafiğin diğer çıkış noktalarına yönlendirilmesine neden olur.
Azure portalında Azure Front Door örneğine gidin.
Sol menüde Ayarlar>Kaynak grupları'nı seçin.
Kaynak grupları listesinde, geçici olarak kaldırmak istediğiniz yuvayı içeren kaynak grubunu seçin.
Kaynak grubunu güncelleştir bölmesinde, Kaynak ana bilgisayar adı listesinde kaldırılacak yuvayı bulun.
Diğer eylemler 'i (...) > seçinSil'i ve ardından Güncelleştir'i seçin.
Değişikliğin uygulanması birkaç dakika sürebilir.
Kaldırılan yuvaya giden trafiğe izin vermeye hazır olduğunuzda, Kaynak grubunu güncelleştir bölmesine geri dönün.
Üstteki + Orijin ekle'yi seçerek orijin yuvasını orijin grubuna yeniden ekleyin.
Azure Front Door köken slotunun yeniden nasıl ekleneceğini gösteren ekran görüntüsü.
Ek kaynak grupları oluşturma ve rota ilişkilendirmelerini değiştirme
Azure Front Door örneğiniz için çıkış noktalarını silmek ve yeniden eklemek istemiyorsanız, ek çıkış noktası grupları oluşturabilirsiniz. Ardından rotayı hedeflenen çıkış noktasına işaret eden kaynak grubuyla ilişkilendirebilirsiniz.
Örneğin, biri birincil (etkin) bölgeniz, diğeri de bekleme (pasif) bölgeniz için iki ek kaynak grubu oluşturabilirsiniz. Birincil bölgenizde bir değişiklik yapılıyorsa, yolu bekleme bölgenizle ilişkilendirin. Bekleme bölgenizde değişiklik yapılıyorsa, yolu birincil bölgenizle ilişkilendirin. Tüm değişiklikler tamamlandığında, yolu her iki bölgeyi de içeren özgün kaynak grubunuzla ilişkilendirebilirsiniz. Bir yol aynı anda yalnızca bir kaynak grubuyla ilişkilendirilebildiği için bu yöntem çalışır.
Üç kaynak grubu olan bir yapılandırmayı göz önünde bulundurun:
- Grup
Main-Origin, her biri kendi bölgelerindeki birincil ve hazır bekleyen web uygulamalarını içerir. - Grup
Primary-Originyalnızca etkin bölgedeki birincil web uygulamasını içerir. - Grup
Standby-Originyalnızca pasif bölgedeki hazır bekleyen web uygulamasını içerir.
Birincil web uygulamasında bir değişiklik olduğunu varsayalım. Değişiklikler başlamadan önce, Main-Origin grubunun yol ilişkilendirmesi Secondary-Origin grubuna değiştirilir. Bu eylem, birincil web uygulaması ilgili bölgesinde bir değişiklik geçirirken, tüm trafik akışını o bölgedeki bekleme web uygulamasına yönlendirerek güvence altına alır.
Bir kaynak grubu için rota ilişkilendirmesini değiştirmek için şu adımları izleyin:
Azure portalında Azure Front Door örneğine gidin.
Sol menüde Ayarlar>Kaynak grupları'nı seçin.
Kaynak grupları listesinde, Yollar sütununda İlişkisiz göstergesini gösteren bir kaynak grubu bulun.
Diğer eylemler 'i (...) > seçinUç noktayı ve yolu ilişkilendirin.
Yolları ilişkilendir bölmesinde, kaynak grubuyla ilişkilendirilecek bir veya daha fazla yolu seçin ve ardından İlişkilendir'i seçin.
Gelişmiş araçlar sitesine erişimi kısıtlama
Azure Uygulaması hizmetiyle, uygulamalarınızı yönetmek ve uygulama kaynak kodunu dağıtmak için SCM/gelişmiş araçlar sitesi kullanılır. Bu siteye büyük olasılıkla Front Door üzerinden ulaşılması gerekmediğinden SCM/gelişmiş araçlar sitesini kilitlemeyi göz önünde bulundurun. Örneğin, yalnızca testlerinizi gerçekleştirmenize ve tercih ettiğiniz araçtan sürekli dağıtımı etkinleştirmenize olanak tanıyan erişim kısıtlamaları ayarlayabilirsiniz. Özellikle üretim yuvaları için dağıtım yuvaları kullanıyorsanız, test ve doğrulama aşama yuvalarınızla yapıldığından SCM sitesine neredeyse tüm erişimi reddedebilirsiniz.