Azure SRE Aracısı'nda HTTP tetikleyicileri

Azure SRE Aracısı'ndaki HTTP tetikleyicileri, dış sistemlerin aracınızı isteğe bağlı olarak çağırmak için kullandığı web kancası uç noktalarıdır. Sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hattı başarısız olduğunda, bir uyarı aracı bir anomali algılar veya herhangi bir HTTP istemcisi bir POST istek gönderirse, aracı olay bağlamını alır ve hemen çalışmaya başlar.

Sorun: Uyarılar ve işlem hattı hataları için manuel ayıklama gerekiyor

Ekibinizin zaten Datadog, Dynatrace, Jira, Splunk ve Grafana gibi uyarı, gözlemlenebilirlik ve iş akışı araçları ve bozulan CI/CD işlem hatları var. Bir sorun olduğunda yanıt her seferinde aynı olur:

  • Mühendis bir uyarı alır: Mühendis izleme aracını açar, uyarıyı okur ve durumu anlamak için birden fazla panoda el ile günlükleri, ölçümleri ve dağıtım geçmişini açar.
  • İşlem hattı başarısız oluyor: Birinin yaptığı işi durdurması, derleme çıkışını denetlemesi, son değişikliklerle bağıntı kurması ve geri mi yoksa ileriye doğru mu düzelteceğine karar vermesi gerekir.
  • Bağlam dağılımlı: Datadog uyarısı "prod-api'de CPU ani artışı" diyor. Sorunun kök nedeni, üç hizmetin günlüklerini ilişkilendirmeyi, son dağıtımları kontrol etmeyi ve Dynatrace takiplerini gözden geçirmeyi gerektirir.

HTTP tetikleyicileri nasıl çalışır?

HTTP tetikleyicileri, web kancalarını destekleyen tüm araçları doğrudan SRE Aracısı örneğine bağlamanıza olanak tanır. Sorunu algılayan sistem, bir mühendisin manuel önceliklendirme yapması yerine, bir Datadog uyarısı, Dynatrace anomalisi, Jira iş akışı geçişi veya bir işlem hattı hatası olup olmadığını belirleyip aracıya araştırma yapmasını söyler. Bağlam otomatik olarak geçirilir.

Her tetikleyici, aracınızda benzersiz bir URL'ye sahip adlandırılmış bir web kancası uç noktasıdır. Bir dış sistem o URL'yi HTTP POST aracılığıyla çağırdığında, aracı tetikleyicinin yapılandırılmış komutunu yürütür ve bu komut istek gövdesindeki tüm JSON verileriyle zenginleştirilmiştir.

Temel kavramlar

Konsept Nasıl çalışır?
Tetikleyici İstemi, atanmış aracıyı (varsayılan veya alt aracı) ve özerklik düzeyini (otonom veya gözden geçirme) içeren adlandırılmış uç nokta.
Tetikleyici URL'si Tetikleyici oluşturduğunuzda oluşturulan benzersiz web kancası URL'si. Bu webhook URL'si dış araçlar tarafından çağrılır.
JSON bağlamı İstekle birlikte POST gönderilen isteğe bağlı JSON gövdesi. Tam bir bağlam sağlamak için aracın isteminin bir parçası haline gelir.
Yürütme geçmişi Her çağrı bir zaman damgası, iş parçacığı bağlantısı ve başarı veya hata durumu ile günlüğe kaydedilir.
Etkinleştir/devre dışı bırak Tetikleyicileri silmeden açın veya kapatın. Devre dışı bırakılan tetikleyiciler 404 döndürür.

Tetikleyici çağırma

Http POST isteğiyle tetikleyici URL'sini çağırın:

curl -X POST \
  https://your-agent.sre.azure.com/api/v1/httptriggers/trigger/<TRIGGER_ID> \
  -H "Authorization: Bearer <ARM_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "datadog",
    "alert_title": "High error rate on checkout-api",
    "severity": "critical",
    "service": "checkout-api",
    "region": "eastus2",
    "metric": "error_rate",
    "value": "8.2%",
    "threshold": "5%"
  }'
Bölüm Nedir?
URL Tetikleyicinin benzersiz webhook endpointi. Tetikleyici ayrıntı görünümünde, Trigger URL altında bulabilirsiniz.
Authorization Azure Resource Manager Bearer belirteci. Tetikleyici çağırma için kimlik doğrulaması bölümüne bakın.
İçerik Türü Gönderdiğiniz JSON gövdesi ise application/json olması gerekir.
JSON gövdesi (isteğe bağlı) Ajanın görmesini istediğiniz tüm JSON verileri. Bu veriler aracının isteminin bir parçası olur. Aracının, araştırmayı kolaylaştıracak uyarı adı, önem derecesi ve etkilenen hizmet gibi bağlamları ekleyin.

JSON gövdesi isteğe bağlıdır. Tetikleyiciyi gövdesiz çağırırsanız, aracı yalnızca tetikleyicinin yapılandırılmış istemiyle çalışır. Bir gövde ile aracı hem istemi hem de gönderdiğiniz verileri görür.

Tetikleyici çağırma için kimlik doğrulaması

Tetikleyici uç noktası, üst bilgide Authorization: Bearer <TOKEN> bir Azure Resource Manager Taşıyıcı belirteci gerektirir. Arayan kişinin, Microsoft.App/agents/threads/write aracı kaynağına erişim iznine ihtiyacı vardır.

Jeton almanın yolları

Yöntem En iyi kullanım alanı: Ayrıntılar
Hizmet Prensibi CI/CD işlem hatları, otomatik sistemler Bir uygulama kaydı oluşturun, aracı kaynağında rolü atayın ve belirteç almak için istemci kimlik bilgileri akışını kullanın.
Yönetilen kimlik Azure'da barındırılan hizmetler (Azure İşlevleri, Azure Sanal Makineler, Azure Container Apps) Yönetilecek gizli bilgi yok. Azure kaynağının kimliği otomatik olarak doğrulanır.
Azure Komut Satırı Arayüzü (Azure CLI) Test ve geliştirme az account get-access-token --resource https://management.azure.com --query accessToken -o tsv'i çalıştırın.

Azure kimlik doğrulamayı desteklemeyen dış araçları bağlama

Datadog, Dynatrace, Jira ve Splunk gibi araçlar web kancalarını Azure Resource Manager belirteçleriyle değil kendi kimlik doğrulama biçimleriyle gönderir. Boşluğu kapatmak için aşağıdaki aracılardan birini kullanın.

Aracı Nasıl çalışır?
Azure İşlevleri Webhook'u alır, yönetilen kimliğini kullanarak bir Azure Resource Manager belirteci edinir ve çağrıyı tetikleyici URL'ye iletir.
Azure Logic Apps Herhangi bir kaynaktan web kancaları alan ve yerleşik Azure Resource Manager kimlik doğrulamasıyla Azure API'lerini çağıran kod içermeyen iş akışı.
Azure API Management Tetikleyici URL'nin önünde konumlanır ve ilkeler aracılığıyla belirteç doğrulama ve dönüştürme işlemlerini gerçekleştirir.

Response

{
  "message": "HTTP trigger execution initiated",
  "executionTime": "2026-03-13T10:30:00Z",
  "threadId": "thread-abc123",
  "success": true
}

Tetikleyici hemen HTTP 202 (Kabul Edildi) döndürür. İşleme birimi, isteği zaman uyumsuz olarak işler.

Bu yaklaşımı farklı kılan nedir?

HTTP tetikleyicileri, mevcut uyarı ve CI/CD araçlarınızı döngüde bir mühendis olmadan doğrudan aracınıza bağlar. Sorunu algılayan sistem, aracıya soruşturma yapmasını söyler ve tüm bağlamı otomatik olarak iletir. Sayfalama, gösterge tablosu değiştirme ve manuel bağlam toplama yoktur.

Önce ve sonra

Önce (el ile sınıflandırma) Sonra (HTTP tetikleyicileri)
Datadog alarmı harekete geçer. Mühendis bir çağrı alır, üç gösterge paneli açar ve araştırmaya başlar. Datadog webhook çağrıları tetiklenir. Aracı, bulguları otomatik olarak araştırır ve yayınlar.
Boru hattı arızaları. Mühendis, derleme günlüklerini denetler, ÇEKME'leri inceler ve bir sonraki adıma karar verir. Boruhattı arıza işleyicisi tetikleyicileri çağırır. Etmen, hatayı analiz eder ve temel nedeni raporlar.
Dynatrace anomaliyi algılar. Mühendis, hizmetler arasında el ile bağıntı sağlar. Dynatrace webhooks, anomali bağlamıyla tetiklenir. Aracı günlükler, ölçümler ve dağıtımlar arasında bağıntı oluşturur.

Zamanlanmış görevler ile HTTP tetikleyicileri karşılaştırması

Zamanlanmış görevler HTTP tetikleyicileri
Zamana dayalı (kronolojik zamanlama). Olay güdümlü (talep üzerine).
Bir şey olup olmadığından bağımsız olarak çalışır. Yalnızca çağrıldığında çalışır.
Yürütme başına dış giriş yok. Her çağrıya enjekte edilen yük verileri.
Yinelenen denetimler için en iyisidir. Olay odaklı tepkiler için en iyi.

Her ikisini birlikte kullanın. Proaktif izleme için zamanlanmış görevleri ve reaktif olay işleme için HTTP tetikleyicilerini kullanın.

Kullanım örnekleri

CI/CD boru hattı entegrasyonu

Dağıtım işlem hattı başarısız olduğunda, hatayı analiz etmek için aracıyı çağırın:

# In your pipeline's failure handler
curl -X POST "$AGENT_TRIGGER_URL" \
  -H "Authorization: Bearer $ARM_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"pipeline\": \"$PIPELINE_NAME\", \"run_id\": \"$RUN_ID\", \"error\": \"$ERROR_MESSAGE\"}"

Uyarı temelli araştırma

Kritik uyarılar tetiklendiğinde otomatik araştırmayı tetikleyebilmek için uyarı sisteminizi bağlayın:

{
  "alert_name": "Error rate > 5%",
  "severity": "P1",
  "service": "checkout-api",
  "region": "eastus2",
  "start_time": "2026-03-13T10:15:00Z"
}

Dağıtım uyumluluk denetimleri

Dağıtım tamamlandıktan sonra bir uyumluluk gözden geçirmesi tetikleyin:

curl -X POST "$AGENT_TRIGGER_URL" \
  -H "Authorization: Bearer $ARM_TOKEN" \
  -d '{"deployment_id": "deploy-456", "environment": "production", "changes": ["config update", "image bump"]}'

API referansı

Bitiş noktası Yöntem Açıklama
/api/v1/httptriggers GET Tüm tetikleyicileri listeleyin.
/api/v1/httptriggers/create POST Yeni bir tetikleyici oluşturun.
/api/v1/httptriggers/{id} GET Tetikleyici ayrıntılarını edinin.
/api/v1/httptriggers/{id} PUT Tetikleyici özelliklerini güncelleştirin.
/api/v1/httptriggers/{id} DELETE Tetikleyiciyi silme.
/api/v1/httptriggers/{id}/enable POST Tetikleyiciyi etkinleştirin.
/api/v1/httptriggers/{id}/disable POST Tetikleyiciyi devre dışı bırakın.
/api/v1/httptriggers/{id}/execute POST Tetikleyiciyi el ile çalıştırın.
/api/v1/httptriggers/{id}/executions GET Yürütme geçmişini alın.
/api/v1/httptriggers/trigger/{id} POST Dış web kancası uç noktası.

Sorun giderme

Tetikleyici 404 döndürür

  • Tetikleyicinin etkin olarak ayarlandığını doğrulayın. Devre dışı bırakılan tetikleyiciler 404 döndürür.
  • URL'deki tetikleyici kimliğinin doğru olup olmadığını denetleyin.

401 Yetkisiz

  • Belirteç izleyicisi https://management.azure.com ile değil, SRE Aracısı uygulama kimliğiyle eşleşmelidir.
  • Test için belirteç almak için kullanın az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv.

Tetikleyici yürütülür ancak aracı işlem yapmaz

  • Aracı istemini denetleyin. Boş bir istem yararlı bir çıkış üretmeyebilir.
  • Seçilen alt aracının görev için gereken araçlara sahip olduğunu doğrulayın.
  • Hata ayrıntıları için yürütme geçmişini denetleyin.

Limits

Kaynak Limit
Aracı başına tetikleyici sayısı Sabit sınır yok.
Yürütme başına en fazla dönüş sayısı 250 dönüş.
Authentication Her tetikleyici URL'si için taşıyıcı belirteci gereklidir.