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'yı kullanırken kullanabileceğiniz 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. Tüm istemci kitaplıklarının yapılandırma, günlüğe kaydetme, özel durum işleme ve sorun giderme için ortak desenlerle tutarlı, yüksek standartlı bir şekilde derlenmesini sağlıyoruz. 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 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.
Bu genel sorun giderme kılavuzlarıyla birlikte, kitaplığa özgü sorun giderme kılavuzları da sağlıyoruz. Ş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 öncelikle uygulamanızın davranışını izlemek için günlüğe kaydetmeyi etkinleştirmek önemlidir. 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 hizmetleri arasında gönderilen ve alınan HTTP isteklerini gözden geçirmek yararlı olur. 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 istemci oluşturucularında Java istemci kitaplıkları için neredeyse tüm Azure SDK'sını yapılandırabilirsiniz. İ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ği/yanıt günlüğünü değiştirir. Alternatif olarak, AZURE_HTTP_LOG_DETAIL_LEVEL çevre değişkenini aşağıdaki tabloda yer alan değerlerden birine ayarlayarak uygulamanızın tamamı için HTTP isteklerinin ve yanıtlarının günlüğe kaydedilmesini yapılandırabilirsiniz. Azure'da HTTP istek/cevaplarını loglamayı destekleyen her istemci için loglamayı etkinleştiren bu değişikliği hatırlamak önemlidir.
| Değer | Kayıt seviyesi |
|---|---|
none |
HTTP isteği/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 kaydetmesi güvenli olan ek sorgu parametreleri ve üst bilgileri eklemek mümkündür:
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
Çoğu Java için Azure SDK istemci hizmeti yöntemi, hata durumunda httpResponseException veya daha özel 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'sını kullanırken karşılaşabileceğiniz sorunları çözmeye yardımcı olmazsa, Azure SDK for Java GitHub deposunda bir sorun bildirmenizi tavsiye ederiz.