本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
API目的地作為 Amazon 的目標 EventBridge
Amazon EventBridge API目的地是您可以叫用做為事件匯流排規則或管道目標的HTTP端點,類似於將 AWS 服務或資源作為目標叫用的方式。使用API目的地,您可以使用呼叫,在 AWS 服務、整合式軟體即服務 (SaaS) 應用程式以及您的應API用程式之間路 AWS 由事件。當您將目的API地指定為規則或管道目標時,會針對符合規則或管道中指定之事件模式的任何事件 EventBridge 叫用HTTP端點,然後將事件資訊與要求一起傳送。使用時 EventBridge,您可以使用除了要求CONNECT以外TRACE的任何HTTP方法。最常用的HTTP方法是PUT和POST。您也可以使用輸入變壓器將事件自訂為特定HTTP端點參數的參數。如需詳細資訊,請參閱Amazon EventBridge 輸入轉換。
注意
API目的地不支援私有目的地,例如介面VPC端點-包括使用私有網路和應用程式負載平衡器和介面端點的虛擬私人雲端HTTPSAPIs中的私有端點 (VPC)。VPC
如需詳細資訊,請參閱將 Amazon EventBridge 與界面VPC端點搭配使用。
重要
EventBridge 對API目標端點的要求必須有 5 秒的用戶端執行逾時上限。如果目標端點需要超過 5 秒的 EventBridge 時間來回應,請求逾時。 EventBridge 重試將要求逾時,直到重試原則上設定的上限為止。預設情況下,最大值為 24 小時和 185 次。在重試次數上限之後,如果您有無效字母佇列,則會將事件傳送至無效字母佇列。否則,會捨棄該事件。
下面的視頻演示了API目的地的使用:
目API的地的服務連結角色
當您為API目的地建立連線時,名AWS ServiceRoleForAmazonEventBridgeApiDestinations為的服務連結角色會新增至您的帳戶。 EventBridge 使用服務連結的角色在 Secret 管理員中建立和儲存密碼。若要將必要的權限授與服務連結角色,請將AmazonEventBridgeApiDestinationsServiceRolePolicy原則 EventBridge附加至角色。此政策會限制僅授予該角色與連線機密互動所需的許可。不包含其他許可,且該角色僅能與您帳戶中的連線進行互動以管理機密。
下面的政策為 AmazonEventBridgeApiDestinationsServiceRolePolicy
。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:events!connection/*" } ] }
如需有關服務連結角色的詳細資訊,請參閱文件中的使用服務連結角色。IAM
區域可用性
下列 AWS 地區支援AmazonEventBridgeApiDestinationsServiceRolePolicy
服務連結角色:
-
美國東部 (維吉尼亞北部)
-
美國東部 (俄亥俄)
-
美國西部 (加利佛尼亞北部)
-
美國西部 (奧勒岡)
-
非洲 (開普敦)
-
亞太區域 (香港)
-
亞太區域 (孟買)
-
亞太區域 (大阪)
-
亞太區域 (首爾)
-
亞太區域 (新加坡)
-
亞太區域 (雪梨)
-
亞太區域 (東京)
-
加拿大 (中部)
-
歐洲 (法蘭克福)
-
歐洲 (愛爾蘭)
-
歐洲 (倫敦)
-
歐洲 (米蘭)
-
歐洲 (巴黎)
-
歐洲 (斯德哥爾摩)
-
南美洲 (聖保羅)
-
中國 (寧夏)
-
中國 (北京)
對目的API地的要求中的標頭
以下章節詳細說明如何 EventBridge 處理對API目HTTP標的要求中的標頭。
要求目的API地中包含的標頭
除了針對用於API目的地之連接定義的授權標頭之外,每個請求中還 EventBridge 包括以下標頭。
標頭鍵 | 標頭值 |
---|---|
使用者代理程式 |
Amazon/EventBridgeApiDestinations |
內容類型 |
如果未指定自訂內容類型值,請將下列預設值 EventBridge 包含為內容類型: application/json; charset=utf-8 |
範圍 |
bytes=0-1048575 |
接受編碼 |
gzip,deflate |
連線 |
關閉 |
內容長度 |
實體標頭,是指傳送給收件者的實體主體大小 (以位元組為單位)。 |
主機 |
請求標頭,指定要傳送請求之伺服器的主機和連接埠號碼。 |
傳送至目的API地的要求中無法覆寫的標頭
EventBridge 不允許您覆寫下列標頭:
-
使用者代理程式
-
範圍
標頭 EventBridge 從要求移除API目的地
EventBridge 移除所有目的API地要求的下列標頭:
-
A-IM
-
Accept-Charset
-
Accept-Datetime
-
接受編碼
-
快取控制
-
連線
-
Content-Encoding
-
內容長度
-
內容-MD5
-
日期
-
Expect
-
Forwarded
-
從
-
主機
-
HTTP2-設置
-
If-Match
-
If-Modified-Since
-
If-None-Match
-
If-Range
-
If-Unmodified-Since
-
Max-Forwards
-
Origin
-
Pragma
-
Proxy-Authorization
-
範圍
-
Referer
-
TE
-
預告片
-
Transfer-Encoding
-
使用者代理程式
-
升級
-
Via
-
警告
API目的地錯誤碼
嘗 EventBridge 試將事件傳送至API目的地且發生錯誤時,請 EventBridge執行下列動作:
-
會重試與錯誤碼 409、429 和 5xx 相關聯的事件。
-
與錯誤代碼 1xx、2xx、3xx 和 4xx (不包括 429) 相關聯的事件不會重試。
EventBridge API目的地讀取標準HTTP響應標頭,Retry-After
以了解在提出後續請求之前要等待多長時間。 EventBridge 會在定義的重試原則和Retry-After
標頭之間選取較保守的值。如果Retry-After
值為負數,則 EventBridge 會停止重試該事件的傳送。
調用率如何影響事件交付
如果您將每秒的調用率設定為遠低於所產生之調用數目的值,則事件可能無法在 24 小時的重試時間內交付事件。例如,如果您將調用速率設定為每秒 10 次調用,但每秒產生數千個事件,則您很快就會有待交付超過 24 小時的待處理事件。若要確保沒有遺失任何事件,請設定無效字母佇列來傳送調用失敗的事件,以便您稍後可以處理這些事件。如需詳細資訊,請參閱使用無效字母佇列來處理 中未交付的事件 EventBridge。