選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Apache Kafka 串流作為 EventBridge 管道中的來源

焦點模式
Apache Kafka 串流作為 EventBridge 管道中的來源 - Amazon EventBridge

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Apache Kafka 是開源事件串流平台,可支援資料管道和串流分析等工作負載。您可以使用 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 或自我管理的 Apache Kafka 叢集。在 AWS 術語中,自我管理叢集是指任何非 託管的 Apache Kafka 叢集 AWS。這包括您自行管理的叢集,以及由第三方供應商託管的叢集,例如 Confluent CloudCloudKarafkaRedpanda

如需叢集其他 AWS 託管選項的詳細資訊,請參閱 AWS 大數據部落格上的在 上執行 Apache Kafka 的最佳實務 AWS

Apache Kafka 做為來源的運作方式類似於使用 Amazon Simple Queue Service (Amazon SQS) 或 Amazon Kinesis。EventBridge 會在內部輪詢來源中的新訊息,然後同步調用目標。EventBridge 會批次讀取訊息,並將這些訊息作為事件裝載提供給函數。批次大小上限可設定。(預設值為 100 則訊息。)

針對基於 Apache Kafka 的來源,EventBridge 支援處理控制參數,例如批次間隔和批次大小。

EventBridge 會在調用您的管道時在事件參數中傳送訊息批次。事件裝載包含訊息陣列。陣列中的每個項目包含 Apache Kafka 主題和 Kafka 分割區識別符的詳細資訊,以及時間戳記和 base64 編碼的訊息。

範例事件

下列範例事件顯示管道接收的資訊。您可以使用此事件來建立和篩選事件模式,或定義輸入轉換。並非所有欄位都可以篩選。如需有關所能篩選欄位的詳細資訊,請參閱 Amazon EventBridge 管道中的事件篩選

[ { "eventSource": "SelfManagedKafka", "bootstrapServers": "b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", "eventSourceKey": "mytopic-0", "topic": "mytopic", "partition": 0, "offset": 15, "timestamp": 1545084650987, "timestampType": "CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers": [ { "headerKey": [ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ]

Apache Kafka 叢集身分驗證

EventBridge 支持多種方法來進行您自我管理 Apache Kafka 叢集的身分驗證。請確保您已設定 Apache Kafka 叢集使用其中一種支援的身分驗證方法。如需有關 Apache Kafka 安全性的詳細資訊,請參閱 Kafka 文件的安全性區段。

VPC 存取

如果您使用的是自我管理的 Apache Kafka 環境,其中只有 VPC 中的 Apache Kafka 使用者可以存取您的 Apache Kafka 代理程式,您必須在 Apache Kafka 來源中設定 Amazon Virtual Private Cloud (Amazon VPC)。

SASL/SCRAM 身分驗證

EventBridge 管道支援 Simple Authentication and Security Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) 身分驗證與 Transport Layer Security (TLS) 加密。EventBridge 管道會傳送加密的憑證,以便向叢集進行身分驗證。如需 SASL/SCRAM 身分驗證的詳細資訊,請參閱 RFC 5802

EventBridge 管道支援 SASL/PLAIN 身分驗證與 TLS 加密。使用 SASL/PLAIN 身分驗證時, EventBridge 管道會以純文字 (未加密) 將憑證傳送到伺服器。

若使用 SASL 身分驗證,您需將登入憑證儲存為 AWS Secrets Manager中的秘密。

交互 TLS 驗證

相互 TLS (mTLS) 可提供用戶端與伺服器之間的雙向身分驗證。用戶端會將憑證傳送至伺服器以供伺服器驗證用戶端,而伺服器會將憑證傳送至用戶端以供用戶端驗證伺服器。

在自我管理 Apache Kafka 中,EventBridge 管道會以用戶端的身分運作。您可以設定用戶端憑證 (做為 Secrets Manager 中的機密) 來驗證 EventBridge 管道與 Kafka 代理程式。客户憑證必須由伺服器信任存放區中的憑證授權機構 (CA) 簽署。

Apache Kafka 叢集會傳送伺服器憑證到 EventBridge 管道,通过 EventBridge 管道來驗證 Kafka 代理程式。伺服器憑證可以是公有憑證授權機構憑證或私有憑證授權機構/自行簽署的憑證。公有 CA 憑證必須由 EventBridge 管道信任存放區中的 CA 簽署。若為私有憑證授權機構/自行簽署的憑證,您可以設定伺服器根憑證授權機構憑證 (做為 Secrets Manager 中的機密)。EventBridge 管道使用根憑證來驗證 Apache Kafka 代理程式。

如需有關 mTLS 的詳細資訊,請參閱將 Amazon MSK 的相互 TLS 身分驗證作為來源

設定用戶端憑證機密

CLIENT_CERTIFICATE_TLS_AUTH 機密必須有憑證欄位和私有金鑰欄位。若為加密的私有金鑰,機密需要私有金鑰密碼。憑證與私有金鑰均必須為 PEM 格式。

注意

EventBridge 管道支援 PBES1 (但不支援 PBES2) 私有金鑰加密演算法。

憑證欄位必須包含憑證清單,以用戶端憑證開頭,隨後則是任何中繼憑證,並以根憑證結尾。每個憑證均必須以新的一行開始,結構如下:

-----BEGIN CERTIFICATE----- <certificate contents> -----END CERTIFICATE-----

Secrets Manager 支援高達 65,536 個位元組的機密,此空間足以容納長憑證鏈。

私有金鑰必須為 PKCS #8 格式,結構如下:

-----BEGIN PRIVATE KEY----- <private key contents> -----END PRIVATE KEY-----

對於已加密的私有金鑰,請使用下列結構:

-----BEGIN ENCRYPTED PRIVATE KEY----- <private key contents> -----END ENCRYPTED PRIVATE KEY-----

下列範例顯示的是使用了已加密私有金鑰之 mTLS 身分驗證的機密內容。若為加密的私有金鑰,請在機密中包含私有金鑰密碼。

{ "privateKeyPassword": "testpassword", "certificate": "-----BEGIN CERTIFICATE----- MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw ... j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk cmUuiAii9R0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb ... rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg== -----END CERTIFICATE-----", "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp ... QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA== -----END ENCRYPTED PRIVATE KEY-----" }

設定伺服器根憑證授權機構憑證機密

如果您的 Kafka 代理程式使用 TLS 加密與私有憑證授權機構簽署的憑證,則您建立此機密。您可以使用 TLS 加密以供 VPC、SASL/SCRAM、SASL/PLAIN 或 mTLS 身分驗證之用。

伺服器根 CA 憑證密碼必須有包含 PEM 格式的 Apache Kafka 代理程式根 CA 憑證的欄位。下列範例說明機密的結構。

{ "certificate": "-----BEGIN CERTIFICATE----- MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dG... -----END CERTIFICATE-----"

網路組態

如果您使用的是使用私有 VPC 連線的自我管理 Apache Kafka 環境,EventBridge 必須能夠存取與您的 Apache Kafka 代理程式相關聯的 Amazon Virtual Private Cloud (Amazon VPC) 資源。

  • 若要存取 Apache Kafka 叢集的 VPC,EventBridge 可以使用來源子網路的傳出網際網路存取。對於私有子網路,它可以是 NAT 閘道,也可以是您自己的 NAT。確定 NAT 具有公有 IP 地址,可連線至網際網路。對於公有子網路,您必須使用 VPC 端點 (如下所述)。

  • EventBridge 管道也支援透過 交付事件AWS PrivateLink,可讓您從位於 Amazon Virtual Private Cloud (Amazon VPC) 的事件來源將事件傳送至管道目標,而無須周遊公有網際網路。您可以使用管道從 Amazon Managed Streaming for Apache Kafka (Amazon MSK)、自我管理的 Apache Kafka 和位於私有子網路中的 Amazon MQ 來源輪詢,而不需要部署網際網路閘道、設定防火牆規則或設定代理伺服器。您也可以使用 VPC 端點來支援從公有子網路中的 Kafka 叢集交付。

    若要設定 VPC 端點,請參閱AWS PrivateLink 《 使用者指南》中的建立 VPC 端點。針對服務名稱,選取 com.amazonaws.region.pipes-data

使用下列規則 (最低限度) 設定 Amazon VPC 安全群組:

  • 傳入規則 – 允許 Apache Kafka 代理程式連接埠上針對來源指定的安全群組的所有流量。

  • 傳出規則:針對所有目的地,允許連接埠 443 上的所有流量。允許 Apache Kafka 代理程式連接埠上針對來源指定的安全群組的所有流量。

    中介裝置連接埠包括:

    • 適用於純文字的 9092

    • 適用於 TLS 的 9094

    • 9096 for SASL

    • 適用於 IAM 的 9098

使用 Apache Kafka 來源進行消費者自動擴展

當您最初建立 Apache Kafka 來源時,EventBridge 會分配一個取用者來處理 Kafka 主題的所有分割區。每個取用者都有多個並行運行的處理器以處理增加的工作負載。此外,EventBridge 會根據工作負載自動縱向擴展或縮小取用者數量。為了保留每個分割區中的訊息順序,主題中每個分割區的取用者數上限是一個取用者。

每隔 1 分鐘,EventBridge 會評估主題中所有分割區的取用者偏移延遲。如果延遲太高,則表示分割區接收訊息的速度比 EventBridge 處理訊息的速度更快。如有必要,EventBridge 會新增或移除主題取用者。新增或刪除取用者的擴展過程,將在三分鐘的評估期間內完成。

如果您的目標過載,則 EventBridge 會減少取用者的數量。此動作可透過減少取用者可擷取和傳送至函數的訊息數量,減少函數的工作負載。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。