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.
Bu makalede, Java için Azure SDK kullandığınızda kullanılabilecek birçok sorun giderme aracı ve daha fazla ayrıntı içeren diğer makalelere bağlantılar sunulmaktadır.
Java için Azure SDK, var olan her Azure hizmeti için bir veya daha fazla istemci kitaplığından oluşur. Microsoft, tüm istemci kitaplıklarının yapılandırma, günlüğe kaydetme, özel durum işleme ve sorun giderme için ortak kalıplar kullanılarak tutarlı ve yüksek bir standartta oluşturulmasını sağlar. Daha fazla bilgi için bkz. Java için Azure SDK'yı kullanma.
Sorun giderme bu kadar geniş bir konu alanına yayılabildiği için Microsoft gözden geçirmek isteyebileceğiniz aşağıdaki sorun giderme kılavuzlarını geliştirdik:
- Azure Kimlik doğrulaması sorunlarını giderme , kimlik doğrulama hatası araştırma tekniklerini, Azure Identity Java istemci kitaplığındaki kimlik bilgisi türleri için yaygın hataları ve bu hataları düzeltmeye yönelik azaltma adımlarını kapsar.
- Bağımlılık sürümü çakışmalarında sorun giderme, bağımlılık çakışmalarını tanılama, azaltma ve en aza indirme ile ilgili konuları kapsar. Maven ve Gradle gibi araçlarla oluşturulmuş sistemlerde Java için Azure SDK istemci kitaplıklarını kullandığınızda bu çakışmalar ortaya çıkabilir.
- Ağ sorunlarını giderme , Fiddler ve Wireshark gibi araçları kullanarak istemci kitaplığı dışında HTTP hata ayıklamayla ilgili konuları kapsar.
Microsoft bu genel sorun giderme kılavuzlarıyla birlikte kitaplığa özgü sorun giderme kılavuzları da sağlar. Şu anda aşağıdaki kılavuzlar kullanılabilir:
Aşağıdaki içerik, bu belgelerin ötesinde, Java için Azure SDK'sı ile ilgili olarak günlüğe kaydetme ve özel durum işlemeyi en iyi şekilde kullanma konusunda rehberlik sağlar.
Java için Azure SDK'da günlüğe kaydetmeyi kullanma
Aşağıdaki bölümlerde farklı günlük türlerinin nasıl etkinleştirileceği açıklanmaktadır.
İstemci günlüğünü etkinleştirme
Sorunları gidermek için önce uygulamanızın davranışını izlemek için günlüğe kaydetmeyi etkinleştirin. Günlüklerdeki hatalar ve uyarılar genellikle neyin yanlış gittiğine ilişkin yararlı içgörüler sağlar ve bazen sorunları düzeltmek için düzeltici eylemler içerir. Java için Azure SDK kapsamlı günlük kaydı desteğine sahiptir. Daha fazla bilgi için bkz. Java için Azure SDK'da günlüğe kaydetmeyi yapılandırma.
HTTP isteği/yanıt günlüğünü etkinleştirme
Sorunları giderirken, Azure hizmetler arasında gönderilen ve alınan HTTP isteklerini gözden geçirin. HTTP isteğinin ve yanıt yükünün günlüğe kaydedilmesini etkinleştirmek için, aşağıdaki örnekte gösterildiği gibi Java için Azure SDK’sındaki istemci kitaplıklarının neredeyse tümünü istemci oluşturucularında yapılandırın. İstemci oluşturucusundaki httpLogOptions yöntemine ve HttpLogDetailLevel içindeki sabit listesi değerlerine dikkat edin.
ConfigurationClient configurationClient = new ConfigurationClientBuilder()
.connectionString(connectionString)
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
.buildClient();
Bu kod, tek bir istemci örneği için HTTP isteğini ve yanıt günlüğünü değiştirir. Alternatif olarak, ortam değişkenini aşağıdaki tabloda yer alan değerlerden birine ayarlayarak AZURE_HTTP_LOG_DETAIL_LEVEL tüm uygulamanız için HTTP isteklerinin ve yanıtlarının günlüğe kaydedilmesini yapılandırabilirsiniz. Bu değişiklik, HTTP istek ve yanıtlarının günlüğe kaydedilmesini destekleyen tüm Azure istemcileri için günlük kaydını etkinleştirir.
| Değer | Kayıt seviyesi |
|---|---|
none |
HTTP isteği ve yanıt günlüğü devre dışı bırakıldı. |
basic |
Yalnızca URL'leri, HTTP yöntemlerini ve isteği tamamlama süresini günlüğe kaydeder. |
headers |
BASIC'te kaydedilen her şeye ek olarak, tüm istek ve yanıt başlıklarını da günlüğe kaydeder. |
body |
BASIC'teki her şeyin yanı sıra tüm istek ve yanıt gövdesini günlüğe kaydeder. |
body_and_headers |
Başlıklar ve içerik içindeki her şeyi günlüğe kaydeder. |
Uyarı
İstek ve yanıt gövdelerini kaydederken, bunların gizli bilgiler içermediğinden emin olun. Sorgu parametreleri ve üst bilgilerini günlüğe kaydederken, istemci kitaplığının varsayılan olarak günlük kaydı için güvenli kabul edilen bir sorgu parametresi ve üst bilgisi kümesi vardır. Aşağıdaki örnekte gösterildiği gibi, günlüğe kaydedilmesi güvenli ek sorgu parametreleri ve üstbilgileri ekleyebilirsiniz:
clientBuilder.httpLogOptions(new HttpLogOptions()
.addAllowedHeaderName("safe-to-log-header-name")
.addAllowedQueryParamName("safe-to-log-query-parameter-name"))
Java için Azure SDK'da özel durum işleme
Java istemci hizmeti yöntemleri için çoğu Azure SDK, hata durumunda httpResponseException veya daha belirli bir alt sınıf oluşturur. Türü, HttpResponseException neyin yanlış gittiğine ilişkin belirli yararlı içgörüler sağlayan ve yaygın sorunları düzeltmek için düzeltici eylemler içeren ayrıntılı bir yanıt hata nesnesi içerir. Bu hata bilgilerini nesnenin ileti özelliğinde HttpResponseException bulabilirsiniz. Bu özel durumlar çalışma zamanı özel durumları olduğundan JavaDoc başvuru belgeleri bunları açıkça belirtmez.
Aşağıdaki örnekte, zaman uyumlu bir istemciyle bu özel durumu nasıl yakalayabileceğiniz gösterilmektedir:
try {
ConfigurationSetting setting = new ConfigurationSetting().setKey("myKey").setValue("myValue");
client.getConfigurationSetting(setting);
} catch (HttpResponseException e) {
System.out.println(e.getMessage());
// Do something with the exception
}
Asenkron istemcilerle, aşağıdaki örnekte gösterildiği gibi hata geri arama fonksiyonlarında özel durumları yakalayabilir ve işleyebilirsiniz.
ConfigurationSetting setting = new ConfigurationSetting().setKey("myKey").setValue("myValue");
asyncClient.getConfigurationSetting(setting)
.doOnSuccess(ignored -> System.out.println("Success!"))
.doOnError(
error -> error instanceof ResourceNotFoundException,
error -> System.out.println("Exception: 'getConfigurationSetting' could not be performed."));
Java için Azure SDK'da izlemeyi kullanma
Java için Azure SDK kapsamlı izleme desteği sunarak uygulama kodunuz ve kullanmakta olduğunuz istemci kitaplıkları aracılığıyla yürütme akışını görmenizi sağlar. OpenTelemetry SDK'sını kullanarak ve yapılandırarak veya OpenTelemetry uyumlu bir aracı kullanarak Azure istemci kitaplıklarında izlemeyi etkinleştirebilirsiniz. OpenTelemetry, bulutta yerel yazılımlar için telemetri verileri oluşturmaya, yakalamaya ve toplamaya yönelik popüler bir açık kaynak gözlemlenebilirlik çerçevesidir.
Java için Azure SDK'da izlemeyi etkinleştirme hakkında daha fazla bilgi için bkz. Java için Azure SDK'da izlemeyi yapılandırma.
Sonraki Adımlar
Bu makaledeki sorun giderme kılavuzu, Java istemci kitaplıkları için Azure SDK kullanırken karşılaşılan sorunları çözmeye yardımcı olmazsa, Java GitHub deposu için Azure SDKbir sorun oluşturun.