本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Amazon URLs 的 AWS Lambda 功能接收 SaaS 事件 EventBridge
注意
為了讓我們的合作夥伴能夠存取輸入 Webhook,我們在您的 AWS 帳戶中建立一個 Open Lambda,藉由驗證第三方合作夥伴傳送的驗證簽章,在 Lambda 應用程式層級保護。請與您的安全團隊一起檢閱此組態。如需詳細資訊,請參閱 Lambda 函數的安全性和驗證模型URLs。
您的 Amazon EventBridge 事件匯流排可以使用 AWS CloudFormation 範本URL建立的AWS Lambda 函數,從支援的 SaaS 供應商接收事件。透過函數URLs,事件資料會傳送至 Lambda 函數。然後,函數會將此資料轉換成可由擷取 EventBridge 並傳送至事件匯流排以進行處理的事件。事件位於事件匯流排上之後,您可以使用規則來篩選事件、套用任何已設定的輸入轉換,然後將其路由至正確的目標。
注意
建立 Lambda 函數URLs會增加您的每月成本。如需詳細資訊,請參閱 AWS Lambda 定價
若要設定連線 EventBridge,請先選取要設定連線的 SaaS 提供者。然後,您提供使用該提供者建立的簽署密碼,然後選取要傳送 EventBridge 事件的事件匯流排。最後,您可以使用 AWS CloudFormation 範本並建立完成連線所需的資源。
下列 SaaS 提供者目前可與使用 Lambda 函數搭配 EventBridge 使用URLs:
-
GitHub
-
Twilio
主題
步驟 1:建立 AWS CloudFormation 堆疊
首先,使用 Amazon EventBridge 控制台創建一個 CloudFormation 堆棧:
在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/
。 -
從導覽窗格選擇快速入門。
-
在使用 Lambda 的輸入網路掛接下fURLs,選擇 [開始使用]
-
在 GitHub 下,選擇設定。
-
在步驟 1:選取事件匯流排下,從下拉式清單中選取事件匯流排。此事件匯流排會從您提供的 Lambda 函URL數接收資料GitHub。您也可以選取新事件匯流排来建立事件匯流排。
-
在「步驟 2:設定方式」下 CloudFormation,選擇「新增GitHub網路掛接」。
-
選取我確認我建立的傳入 Webhook 將可公開存取。然後選擇確認。
-
輸入堆疊名稱。
-
在參數下,確認已列出正確的事件匯流排,然後為 GitHubWebhookSecret 確定安全字符。有關建立安全字符的更多信息,請參閱 GitHub 文件中的設定私密字符
。 -
在功能和轉換下,選取下列每一項:
-
我承認 AWS CloudFormation 可能會創建IAM資源。
-
我承認 AWS CloudFormation 可能會使用自定義名稱創建IAM資源。
-
我確認 AWS CloudFormation 可能需要以下功能:
CAPABILITY_AUTO_EXPAND
-
-
選擇建立堆疊。
步驟 2:建立 GitHub Webhook
接下來,建立 GitHub 上的 Webhook。您需要在步驟 2 中建立的安全權杖和 Lambda 函數URL,才能完成此步驟。如需詳細資訊,請參閱文件 GitHub 中的建立 Webhook
設定與 Twilio 的連線
步驟 1:尋找您的 Twilio 身分驗證權杖
要在Twilio和之間設置連接 EventBridge,請首先為您的Twilio帳戶設置Twilio與身份驗證令牌或秘密的連接。如需詳細資訊,請參閱 Twilio 文件中的身分驗證權杖和變更方法
步驟 2:建立 AWS CloudFormation 堆疊
在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/
。 -
在導覽窗格中,選擇快速入門。
-
在使用 Lambda 的輸入網路掛接下fURLs,選擇 [開始使用]
-
在 Twilio 下,選擇設定。
-
在步驟 1:選取和啟用事件匯流排下,從下拉式清單中選取事件匯流排。此事件匯流排會從您提供的 Lambda 函URL數接收資料Twilio。您也可以選取新事件匯流排来建立事件匯流排。
-
在「步驟 2:設定方式」下 CloudFormation,選擇「新增Twilio網路掛接」。
-
選取我確認我建立的傳入 Webhook 將可公開存取。然後選擇確認。
-
輸入堆疊名稱。
-
在參數設定中,確認已列出正確的事件匯流排,然後輸入您在步驟 1 中建立的 TwilioWebhookSecret。
-
在功能和轉換下,選取下列每一項:
-
我承認 AWS CloudFormation 可能會創建IAM資源。
-
我承認 AWS CloudFormation 可能會使用自定義名稱創建IAM資源。
-
我確認 AWS CloudFormation 可能需要以下功能:CAPABILITY_ AUTO _ EXPAND
-
-
選擇建立堆疊。
步驟 3:建立 Twilio Webhook
設定 Lambda 函數之後URL,您需要將它提供給 Twilio,以便能夠傳送事件資料。如需詳細資訊,請參閱Twilio文件Twilio中URL的「設定公用
更新 Webhook 機密或身分驗證權杖
更新 GitHub 機密
注意
GitHub 不支援同時擁有兩個機密。當 AWS CloudFormation 堆疊中的GitHub密碼和密碼不同步時,您可能會遇到資源停機時間。 GitHub密碼不同步時傳送的訊息將會失敗,因為簽章不正確。請等到GitHub和 CloudFormation 密碼同步,然後再試一次。
-
建立新 GitHub 機密。如需詳細資訊,請參閱 GitHub 文件中的加密機密
。 在 https://console.aws.amazon.com/雲
形成開啟 AWS CloudFormation 主控台。 -
從導覽窗格選擇堆疊。
-
選擇用於 Webhook 的堆疊,該 Webhook 包含您準備更新的機密。
-
選擇更新。
-
確保已選取使用目前範本,然後選擇下一步。
-
在下 GitHubWebhookSecret,清除使用現有值,輸入您在步驟 1 中建立的新GitHub密碼,然後選擇下一步。
-
選擇 Next (下一步)。
-
請選擇更新堆疊。
機密的傳播可能需要長達一小時的時間。若要減少停機時間,可更新 Lambda 執行內容。
更新 Twilio 機密
注意
Twilio 不支援同時擁有兩個機密。當 AWS CloudFormation 堆疊中的Twilio密碼和密碼不同步時,您可能會遇到資源停機時間。 Twilio密碼不同步時傳送的訊息會因為簽章不正確而失敗。請等到Twilio和 CloudFormation 密碼同步,然後再試一次。
-
建立新 Twilio 機密。如需詳細資訊,請參閱 Twilio 文件中的身分驗證權杖和變更方法
。 在 https://console.aws.amazon.com/雲
形成開啟 AWS CloudFormation 主控台。 -
從導覽窗格選擇堆疊。
-
選擇用於 Webhook 的堆疊,該 Webhook 包含您準備更新的機密。
-
選擇更新。
-
確保已選取使用目前範本,然後選擇下一步。
-
在下 TwilioWebhookSecret,清除使用現有值,輸入您在步驟 1 中建立的新Twilio密碼,然後選擇下一步。
-
選擇 Next (下一步)。
-
請選擇更新堆疊。
機密的傳播可能需要長達一小時的時間。若要減少停機時間,可更新 Lambda 執行內容。
更新 Lambda 函數
由 CloudFormation 堆棧創建的 Lambda 函數創建基本的網絡掛鉤。如果您想要針對特定使用案例 (例如自訂記錄) 自訂 Lambda 函數,請使用 CloudFormation 主控台存取函數,然後使用 Lambda 主控台更新 Lambda 函數程式碼。
存取 Lambda 函數
在 https://console.aws.amazon.com/雲
形成開啟 AWS CloudFormation 主控台。 -
從導覽窗格選擇堆疊。
-
選擇用於 Webhook 的堆疊,該 Webhook 包含您準備更新的 Lambda 函數。
-
選擇資源標籤。
-
若要在 Lambda 主控台中開啟 Lambda 函數,請在實體 ID 下選擇 Lambda 函數的 ID。
現在您已存取 Lambda 函數,請使用 Lambda 主控台更新函數程式碼。
更新 Lambda 函數程式碼
-
在動作下,選擇匯出函數。
-
選擇下載部署套件並將檔案儲存至電腦。
-
解壓縮部署套件.zip 檔案,更新
app.py
檔案,然後壓縮更新的部署套件,確保原始 .zip 檔案中的所有檔案均包含在內。 -
在 Lambda 主控台中,選擇程式碼標籤。
-
在程式碼來源下,選擇上傳自。
-
選擇 .zip 檔案,然後選擇 上傳。
在檔案選擇器中,選取已更新檔案,選擇開啟,然後選擇儲存。
-
在動作下,選擇發佈新版本。
可用事件類型
事件匯流排目前支援下列 CloudFormation 事件類型:
-
GitHub— 支援所有事件類型
。 -
Twilio:支援事件後 Webhook
。
配額、錯誤碼和重試傳送
配額
對 webhook 的傳入請求數量由基礎 AWS 服務限制。下表包含相關配額。
服務 | 配額 |
---|---|
AWS Lambda |
預設值:10 個並行執行 如需有關配額的詳細資訊,包括請求增加配額,請參閱 Lambda 配額。 |
AWS Secrets Manager |
預設值:5,000 (每秒請求數) 如需有關配額的詳細資訊,包括請求增加配額,請參閱 AWS Secrets Manager 配額。 注意使用 AWS Secrets Manager Python 緩存客戶端 |
Amazon EventBridge |
動作的最大輸入大小為 PutEvents 256KB。 EventBridge 強制執行以區域為基礎的費率配額。如需詳細資訊,請參閱EventBridge 配額。 |
錯誤代碼
發生錯誤時,每個 AWS 服務都會傳回特定的錯誤碼。下表包含相關錯誤代碼。
服務 | 錯誤代碼 | 描述 |
---|---|---|
AWS Lambda |
429「」TooManyRequestsExption |
超過並行執行配額。 |
AWS Secrets Manager |
500「內部伺服器錯誤」 |
超過每秒配額的請求數。 |
Amazon EventBridge |
500「內部伺服器錯誤」 |
超過基於區域的費率配額。 |
重新傳遞事件
發生錯誤時,您可以重新傳遞受影響的事件。每個 SaaS 提供者都有不同的重新傳遞程序。
GitHub
使用 GitHub Webhook API 來檢查任何 webhook 呼叫的傳送狀態,並視需要重新傳送事件。如需詳細資訊,請參閱下列 GitHub 文件:
-
儲存庫:重新傳遞儲存庫 Webhook
-
應用程式:重新傳遞應用程式 Webhook
Twilio
Twilio 使用者可以使用連線覆寫來自訂事件重試選項。如需詳細資訊,請參閱文件中的 Webhook (HTTP回呼):連線覆寫