Udostępnij za pośrednictwem


Rozwiązywanie problemów z walidacją subskrypcji usługi Azure Event Grid

Podczas tworzenia subskrypcji zdarzeń, jeśli widzisz komunikat o błędzie, taki jak The attempt to validate the provided endpoint https://your-endpoint-here failed. For more details, visit https://aka.ms/esvalidation, wskazuje, że wystąpił błąd uzgadniania weryfikacji. Aby rozwiązać ten błąd, sprawdź następujące aspekty:

  • Wykonaj żądanie HTTP POST do adresu URL elementu webhook z przykładową treścią żądania SubscriptionValidationEvent przy użyciu narzędzia curl lub podobnego.
  • Jeśli element webhook implementuje mechanizm uzgadniania weryfikacji synchronicznej, sprawdź, czy kod ValidationCode jest zwracany w ramach odpowiedzi.
  • Jeśli element webhook implementuje mechanizm uzgadniania walidacji asynchronicznej, sprawdź, czy zwracasz 200 ok.
  • Jeśli element webhook zwraca 403 (Forbidden) odpowiedź, sprawdź, czy element webhook znajduje się za bramą aplikacja systemu Azure lub zaporą aplikacji internetowej. Jeśli tak jest, musisz wyłączyć te reguły zapory i wykonać ponownie wpis HTTP POST:
    • 920300 (Żądanie braku nagłówka akceptacji)
    • 942430 (Ograniczone wykrywanie anomalii znaków SQL (args): liczba znaków specjalnych przekroczyła (12))
    • 920230 (Wykryto kodowanie wielu adresów URL)
    • 942130 (atak polegający na wstrzyknięciu kodu SQL: wykryto tautologię SQL).
    • 931130 (Możliwy atak zdalnego dołączania plików (RFI) = odwołanie poza domeną/łącze)

Ważne

Aby uzyskać szczegółowe informacje na temat sprawdzania poprawności punktów końcowych dla elementów webhook, zobacz Webhook event delivery (Dostarczanie zdarzeń elementu webhook).

Oto przykładowy kod JSON SubscriptionValidationEvent , który można wysłać przy użyciu narzędzia takiego jak CURL:

[
  {
    "id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
    "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "subject": "",
    "data": {
      "validationCode": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    },
    "eventType": "Microsoft.EventGrid.SubscriptionValidationEvent",
    "eventTime": "2018-01-25T22:12:19.4556811Z",
    "metadataVersion": "1",
    "dataVersion": "1"
  }
]

Oto przykładowa pomyślna odpowiedź:

{
  "validationResponse": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}

Weryfikowanie subskrypcji zdarzeń usługi Event Grid przy użyciu narzędzia Curl

Oto przykładowe polecenie Curl służące do weryfikowania subskrypcji elementu webhook zdarzenia usługi Event Grid:

curl -X POST -d '[{"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66","topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","subject": "","data": {"validationCode": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"},"eventType": "Microsoft.EventGrid.SubscriptionValidationEvent","eventTime": "2018-01-25T22:12:19.4556811Z", "metadataVersion": "1","dataVersion": "1"}]' -H 'Content-Type: application/json' https://{your-webhook-url.com}

Aby dowiedzieć się więcej o weryfikacji zdarzeń usługi Event Grid dla elementów webhook, zobacz Walidacja punktu końcowego ze zdarzeniami usługi Event Grid.

Weryfikowanie subskrypcji zdarzeń w chmurze

Użyj metody HTTP OPTIONS na potrzeby walidacji zdarzeń w chmurze. Aby dowiedzieć się więcej na temat weryfikacji zdarzeń w chmurze dla elementów webhook, zobacz Walidacja punktu końcowego ze zdarzeniami w chmurze.

Rozwiązywanie problemów z weryfikacją subskrypcji zdarzeń

Następne kroki

Jeśli potrzebujesz dodatkowej pomocy, opublikuj swój problem na forum Stack Overflow lub otwórz bilet pomocy technicznej.