針對 Azure 事件方格的訂閱驗證進行疑難排解

在事件訂閱建立期間,如果您看到錯誤訊息,例如 The attempt to validate the provided endpoint https://your-endpoint-here failed. For more details, visit https://aka.ms/esvalidation,表示驗證交握失敗。 若要解決此錯誤,請執行以下幾方面的驗證:

  • 使用 Postman 或 curl 或類似工具,以範例 SubscriptionValidationEvent 作為要求本文,向 Webhook URL 執行 HTTP POST。
  • 如果您的 Webhook 正在實作同步驗證交握機制,請確認 ValidationCode 已當成回應的一部分回傳。
  • 如果您的 Webhook 正在實作非同步驗證交握機制,請確認您執行的 HTTP POST 傳回 200 OK。
  • 如果您的 Webhook 在回應中傳回 403 (Forbidden),請檢查您的 Webhook 是否位於 Azure 應用程式閘道或 Web 應用程式防火牆後方。 如果是,則您必須停用這些防火牆規則,然後再次執行 HTTP POST:
    • 920300 (要求遺漏 Accept 標頭)
    • 942430 (受限制的 SQL 字元異常偵測 (args):超出的特殊字元數目 (12))
    • 920230 (偵測到多個 URL 編碼)
    • 942130 (SQL 插入式攻擊:偵測到 SQL 恆真式。)
    • 931130 (可能的遠端檔案包含 (RFI) 攻擊:關閉網域參考/連結)

重要

如需 Webhook 端點驗證的詳細資訊,請參閱 Webhook 事件傳遞

下列各節說明如何使用 Postman 和 Curl 來驗證事件訂閱。

使用 Postman 驗證事件方格的事件訂閱

以下範例使用 Postman 來驗證事件方格事件的 Webhook 訂閱:

Event grid event subscription validation using Postman

以下是 SubscriptionValidationEvent 範例 JSON:

[
  {
    "id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
    "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "subject": "",
    "data": {
      "validationCode": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6",
    },
    "eventType": "Microsoft.EventGrid.SubscriptionValidationEvent",
    "eventTime": "2018-01-25T22:12:19.4556811Z",
    "metadataVersion": "1",
    "dataVersion": "1"
  }
]

以下是成功回應的範例:

{
  "validationResponse": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"
}

若要深入瞭解 Webhook 的事件方格事件驗證,請參閱事件方格事件的端點驗證

使用 Curl 驗證事件方格的事件訂閱

以下範例 Curl 命令是用來驗證事件方格事件的 Webhook 訂閱:

curl -X POST -d '[{"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66","topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","subject": "","data": {"validationCode": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"},"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}

使用 Postman 驗證雲端事件訂閱

以下範例使用 Postman 來驗證雲端事件的 Webhook 訂閱:

Cloud event subscription validation using Postman

使用 HTTP 選項方法進行雲端事件驗證。 若要深入瞭解 Webhook 的雲端事件驗證,請參閱雲端事件的端點驗證

針對事件訂用帳戶驗證進行疑難排解

下一步

如果您需要更多協助,請將您的問題張貼在 Stack Overflow 論壇,或開啟支援票證