Aracılığıyla paylaş


App Service'te ad çözümlemesi (DNS)

Uygulamanız bağımlı kaynaklara çağrı yaparken DNS kullanır. Kaynaklar Key Vault, Depolama veya Azure SQL gibi Azure hizmetleri olabilir, ancak uygulamanızın bağımlı olduğu web API'leri de olabilir. Örneğin myservice.com için bir çağrı yapmak istediğinizde, adı bir IP'ye çözümlemek için DNS kullanıyorsunuz demektir. Bu makalede, App Service'in ad çözümlemesini nasıl işlediği ve hangi DNS sunucularının kullanılacağını nasıl belirlediği açıklanmaktadır. Makalede, DNS çözümlemesini yapılandırmak için kullanabileceğiniz ayarlar da açıklanmaktadır.

App Service'te ad çözümleme nasıl çalışır?

Uygulamanızı bir sanal ağ ile tümleştirmiyorsanız ve özel DNS sunucuları yapılandırılmadıysa, uygulamanız Azure DNS kullanır. Uygulamanızı bir sanal ağ ile tümleştirirseniz, uygulamanız sanal ağın DNS yapılandırmasını kullanır. Sanal ağ için varsayılan olarak Azure DNS de kullanılır. Sanal ağ üzerinden Azure DNS özel bölgelerine bağlantı vermek ve bunu özel uç nokta çözümlemesi veya özel etki alanı adı çözümlemesi için kullanmak da mümkündür.

Sanal ağınızı özel DNS sunucularının listesiyle yapılandırdıysanız, ad çözümlemesi bu sunucuları kullanır. Sanal ağınız özel DNS sunucuları kullanıyorsa ve özel uç noktalar kullanıyorsanız, bu makaleyi dikkatle okumalısınız. Özel DNS sunucularınızın uygulamanız tarafından kullanılan tüm genel DNS kayıtlarını çözümleyebildiklerine de dikkat etmeniz gerekir. DNS yapılandırmanızın istekleri bir genel DNS sunucusuna iletmesi, özel DNS sunucuları listesine Azure DNS gibi bir genel DNS sunucusu içermesi veya uygulama düzeyinde alternatif bir sunucu belirtmesi gerekir.

Uygulamanızın DNS kullanarak bir etki alanı adını çözümlemesi gerektiğinde, uygulama yapılandırılan tüm DNS sunucularına bir ad çözümleme isteği gönderir. Listedeki ilk sunucu zaman aşımı sınırı içinde bir yanıt döndürürse, hemen döndürülen sonucu alırsınız. Aksi takdirde uygulama, diğer sunucuların zaman aşımı süresi içinde yanıt vermesini bekler ve DNS sunucusu yanıtlarını sunucuları yapılandırdığınız sırada değerlendirir. Sunuculardan hiçbiri zaman aşımı içinde yanıt vermiyorsa ve yeniden denemeyi yapılandırdıysanız işlemi yinelersiniz.

DNS sunucularını yapılandırma

Tek tek uygulama, site özelliği nesnesinde dnsConfiguration özelliğini belirterek dnsServers DNS yapılandırmasını geçersiz kılmanıza olanak tanır. En fazla beş özel DNS sunucusu belirtebilirsiniz. Azure CLI'yi kullanarak özel DNS sunucularını yapılandırabilirsiniz:

az resource update --resource-group <group-name> --name <app-name> --resource-type "Microsoft.Web/sites" --set properties.dnsConfiguration.dnsServers="['168.63.129.16','xxx.xxx.xxx.xxx']"

DNS uygulaması ayarları

App Service'in DNS sunucularını ve ad çözümleme davranışını yapılandırmak için mevcut uygulama ayarları vardır. Site özellikleri, her ikisi de varsa uygulama ayarlarını geçersiz kılar. Site özellikleri, Azure İlkesi ile denetlenebilir ve yapılandırma sırasında doğrulanabilir olma avantajına sahiptir. Site özelliklerini kullanmanızı öneririz.

Mevcut WEBSITE_DNS_SERVER uygulama ayarını kullanmaya devam edebilir ve her iki ayardan biriyle özel DNS sunucuları ekleyebilirsiniz. Uygulama ayarını kullanarak birden çok DNS sunucusu eklemek istiyorsanız, sunucuları boşluk eklemeden virgülle ayırmanız gerekir.

uygulama ayarını WEBSITE_DNS_ALT_SERVERkullanarak, belirli DNS sunucusunu yapılandırılan DNS sunucuları listesine eklersiniz. Alternatif DNS sunucusu, hem açıkça yapılandırılmış DNS sunucularına hem de sanal ağdan devralınan DNS sunucularına eklenir.

Ad çözümleme davranışını yapılandırmak için uygulama ayarları da vardır ve olarak adlandırılır WEBSITE_DNS_MAX_CACHE_TIMEOUTWEBSITE_DNS_TIMEOUTWEBSITE_DNS_ATTEMPTS.

Ad çözümleme davranışını yapılandırma

Ad çözümlemesi üzerinde ayrıntılı denetime ihtiyacınız varsa, App Service varsayılan davranışı değiştirmenize olanak tanır. Yeniden deneme girişimlerini değiştirebilir, zaman aşımını ve önbellek zaman aşımını yeniden deneyebilirsiniz. Önbellek süresini devre dışı bırakma veya azaltma gibi davranışları değiştirmek performansı etkileyebilir.

Özellik adı Windows varsayılan değeri Linux varsayılan değeri İzin verilen değerler Açıklama
dnsRetryAttemptCount 1 5 1-5 Yeniden deneme yapılmadığı durumlarda çözüme kavuşturma denemelerinin sayısını tanımlar.
dnsMaxCacheTimeout 30 0 0-60 DNS sonuçları tek tek kayıt TTL'sine göre önbelleğe alınır, ancak tanımlanan en fazla önbellek zaman aşımından daha uzun değildir. Önbelleği sıfır olarak ayarlamak, önbelleğe almanın devre dışı olduğu anlamına gelir.
dnsRetryAttemptTimeout 3 1 1-30 Yeniden denemeden veya başarısız olmadan önce zaman aşımı. Zaman aşımı, birincil yanıt vermezse ikincil sunucu sonuçlarını bekleme süresini de tanımlar.

Not

  • Ad çözümleme davranışının değiştirilmesi Windows Container uygulamalarında desteklenmez.
  • yapılandırmak dnsMaxCacheTimeoutiçin ,="true" uygulama ayarını WEBSITE_ENABLE_DNS_CACHEekleyerek önbelleğe alma özelliğinin etkinleştirildiğinden emin olmanız gerekir. Önbelleğe almayı etkinleştirir ancak yapılandırmazsanız dnsMaxCacheTimeout, zaman aşımı 30 olarak ayarlanır.

Şu CLI komutlarını kullanarak ad çözümleme davranışını yapılandırın:

az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsMaxCacheTimeout=[0-60] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptCount=[1-5] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptTimeout=[1-30] --resource-type "Microsoft.Web/sites"

Şu CLI komutunu kullanarak ayarları doğrulayın:

az resource show --resource-group <group-name> --name <app-name> --query properties.dnsConfiguration --resource-type "Microsoft.Web/sites"

Sonraki adımlar