Apache Kafka 是一個開源的分散式串流平台,應用程式會利用它發布並訂閱即時發生的紀錄串流。 它常用於訊息傳遞、網站活動追蹤、指標、日誌彙整及串流處理。
如果你的資料是透過 Kafka 叢集流動,你可以直接連接 Azure 串流分析 到這些叢集,來擷取和處理資料,而不必建立自訂的消費者。 Kafka 輸入功能屬於低程式碼方案,由 Microsoft 全權管理,符合企業合規標準,並回溯相容於自 0.10 版起的用戶端版本。 你可以透過現有的 Kafka 配置慣例,連接虛擬網路內或公共端點的 Kafka 叢集。 支援的壓縮類型為 無、Gzip、Snappy、LZ4 和 Zstd。
本文將示範如何配置 Kafka 叢集作為 Azure 串流分析 工作中的輸入來源。
設定 Kafka 作為輸入來源
本文說明如何將 Kafka 設定為串流分析的輸入來源。 其涵蓋下列步驟:
- 建立 Azure 串流分析 作業。
- 如果您使用 mTLS 或SASL_SSL安全性通訊協定,請將 Azure 串流分析作業設定為使用受控識別。
- 如果你使用 mTLS 或SASL_SSL安全協定,請設定 Azure Key Vault。
- 將憑證作為秘密上傳到 Azure Key Vault。
- 授權 Azure 串流分析 存取上傳的憑證。
- 在您的 Azure 串流分析 作業中設定 Kafka 輸入。
注意
根據你的 Kafka 叢集配置方式以及你使用的叢集類型,有些步驟可能不適用於你。 舉例來說,如果你使用 Confluent Cloud Kafka,使用 Kafka 連接器不需要上傳憑證。 如果你的 Kafka 叢集是在虛擬網路(VNet)內或防火牆後方,你可能需要設定 Azure 串流分析 工作,透過私有連結或專用網路設定來存取 Kafka 主題。
配置 Kafka 輸入
設定 Kafka 輸入,讓你的 Azure 串流分析 工作能連接到 Kafka 叢集並從主題讀取。
重要
若要將 Kafka 叢集設定為輸入,輸入主題的時間戳記類型應該是 LogAppendTime。 串流分析支援的唯一時間戳記類型是 LogAppendTime。 串流分析僅支援數值十進位格式。
在你的 Azure 串流分析 工作中,新增一個 Kafka 輸入。
透過以下表格描述的值來設定每個輸入屬性:
屬性名稱 描述 輸入/輸出別名 一個友善的名稱,用來查詢你的輸入或輸出。 引導伺服器位址 這是連接到 Kafka 叢集的主機/埠對清單。 Kafka 題目 一個有命名、有序且分區化的資料串流,支援訊息的發佈-訂閱與事件驅動處理。 安全性通訊協定 您想要連線至 Kafka 叢集的方式。 Azure 串流分析支援 mTLS、SASL_SSL、SASL_PLAINTEXT或 None。 取用者群組標識碼 輸入應為其一部分的 Kafka 取用者群組的名稱。 如果您未提供,Azure 串流分析 會自動指派。 事件序列化格式 輸入資料流的序列化格式(JSON、CSV、Avro、Parquet 和 Protobuf)。 儲存輸入設定。
設定認證與加密
設定認證和加密,保護你的 Azure 串流分析 工作與 Kafka 叢集之間的連線。 如需連線至 Confluent Cloud Kafka 的逐步教學課程,請參閱用於輸入的使用 Azure 串流分析從 Confluent Cloud Kafka 串流資料,以及用於輸出的 將資料從 Azure 串流分析串流至 Confluent Cloud。
重要
Confluent Cloud 支援使用 API 金鑰、OAuth 或 SAML 單一登入(SSO)來認證。 串流分析不支援 OAuth 或 SAML 單一登錄 (SSO) 驗證。 你可以透過具有主題層級存取權限的 API 金鑰,經由 SASL_SSL 安全性通訊協定連線至 Confluent Cloud。
請從四種支援的安全協定中選擇一種,與你的 Kafka 叢集相符,詳見下表:
屬性名稱 描述 mTLS 加密和驗證。 支援 PLAIN、SCRAM-SHA-256 和 SCRAM-SHA-512 安全性機制。 SASL_SSL 結合兩種不同的安全機制:SASL(簡單認證與安全層)與安全套接字層(SSL),以確保資料傳輸時同時具備認證與加密功能。 SASL_SSL通訊協議支援 PLAIN、SCRAM-SHA-256 和 SCRAM-SHA-512 安全性機制。 SASL_PLAINTEXT 標準認證,使用使用者名稱,但沒有加密。 無 無驗證和加密。 在你的 Azure 串流分析 工作中設定所選協定的憑證。
與 Azure 金鑰保存庫整合
Azure 串流分析 與 Azure Key Vault 整合,以存取使用 mTLS 或SASL_SSL安全協定時所需的驗證與加密所需的儲存秘密。 您的 Azure 串流分析 工作會透過管理身份(managed identity)連接到 Azure Key Vault,以確保連線安全並避免機密資料外洩。 憑證會儲存為金鑰保存庫中的祕密,且必須是 PEM 格式。 要將您的 Azure 串流分析 工作整合到 Azure Key Vault,請完成以下任務,以下章節將詳細說明。
注意
當你使用信任儲存憑證搭配 mTLS 或SASL_SSL安全協定時,必須為你的 Azure 串流分析 工作設定 Azure Key Vault 和管理身份。 檢查金鑰保存庫的網路設定,以確保已選取 [允許來自所有網路的公用存取]。 如果你的金鑰庫位於 VNet,或只允許特定網路存取,你必須將 Azure 串流分析 工作注入包含金鑰庫的 VNet,或將 Azure 串流分析 工作注入 VNet,然後再透過服務端點將金鑰庫連接到包含 VNet 的工作。
- 設定金鑰保險庫並取得所需權限。
- 將您的憑證作為祕密上傳至金鑰保存庫。
- 為你的 Azure 串流分析 工作設定管理身份。
- 授予你的 Stream Analytics 工作權限,讓他能存取金鑰庫中的憑證。
設定金鑰保存庫的權限
要建立金鑰保險庫資源,請參見快速入門:使用 Azure 入口建立金鑰金庫。 你需要金鑰保存庫管理員權限才能上傳key vault憑證。 要授予管理員權限,請依照以下步驟操作:
注意
你需要擁有 擁有者 權限才能授予其他金鑰保險庫權限。
選取 [存取控制 (IAM)]。
選取 [新增]> [新增角色指派],開啟 [新增角色指派] 頁面。
請使用以下配置指派角色:
設定 值 角色 金鑰保存庫 系統管理員 指定存取權給 使用者、群組或服務主體 成員 <您的帳戶資訊或電子郵件>
將憑證上傳到金鑰庫
確保你已在本地用 PowerShell 配置 Azure CLI。 關於如何設定 Azure CLI 的指引,請參見「以 Azure CLI 開始」。
以下步驟將憑證作為秘密上傳到你的金鑰庫。
重要
您必須對您的金鑰保存庫擁有 金鑰保存庫 Administrator 權限,此命令才能正常運作。 你必須將憑證上傳為秘密。 您必須使用 Azure CLI 將憑證上傳至您的金鑰保存庫,並存為機密。 當你用於驗證的憑證到期時,你的 Azure 串流分析 工作就會失敗。 要解決這個問題,請更新或替換你金鑰庫中的憑證,並重新啟動你的 Azure 串流分析 工作。
登入 Azure CLI。
az login連線到包含您金鑰保存庫的訂用帳戶。
az account set --subscription <subscription name>將憑證上傳為秘密。 將
<name of the secret>替換為金鑰保存庫的名稱,將<file path to certificate>替換為您想為祕密指定的任何名稱,並將<your key vault>替換為憑證檔案的路徑。 您可以按一下滑鼠右鍵,並將路徑複製到憑證。az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>例如:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
設定受控身分識別
Azure 串流分析 需要管理身份才能存取金鑰庫。 請在配置(Conconfiguration)下的管理身份標籤中,將你的 Azure 串流分析 工作設定為使用受管理身份。
要設定受管理身份,請依照以下步驟操作:
在設定下選擇「管理身份」標籤。
選擇 交換器身份,並選擇用於該工作的身份:系統指派身份或使用者指派身份。
若為使用者指派身分識別,請選取您的使用者指派身分識別所在的訂用帳戶,並選取身分識別名稱。
檢視後選擇 儲存。
授予 Stream Analytics 工作權限以存取該憑證
若要讓串流分析作業讀取您金鑰保存庫中的祕密,此作業必須具有存取金鑰保存庫的權限。
要授予您的 Stream Analytics 工作權限,請依照以下步驟進行:
選取 [存取控制 (IAM)]。
選取 [新增]> [新增角色指派],開啟 [新增角色指派] 頁面。
請使用以下配置指派角色:
設定 值 角色 金鑰保存庫 Secrets 使用者 受控識別 適用於系統指派受控識別或使用者指派受控識別的串流分析作業。 成員 <串流分析作業的名稱>或<使用者指派的身分識別名稱>
卡夫卡輸入的限制與考量
如果你的 Kafka 叢集位於虛擬網路內或防火牆後方,請設定你的 Azure 串流分析 工作,透過私有連結或專用網路設定存取 Kafka 主題。 欲了解更多資訊,請參閱「在 Azure 虛擬網路 中執行你的 Azure 串流分析 工作」。
使用 Kafka 作為輸入來源時,請考慮以下限制:
- 當你將 Azure 串流分析 工作設定為使用 虛擬網路/SWIFT 時,請至少設定六個串流單元或一個 V2 串流單元。
- 當你使用 mTLS 或 SASL_SSL 搭配 Azure Key Vault 時,必須將 Java 金鑰庫轉換成 PEM 格式。
- Azure 串流分析 能連接的最低 Kafka 版本是 0.10。
- Azure 串流分析 不支援使用 OAuth 或 SAML 單一登入(SSO)來驗證 Confluent Cloud。 你必須透過 SASL_SSL 協定使用 API 金鑰。
如需直接協助處理 Azure 串流分析 Kafka 輸入,請聯絡 askasa@microsoft.com。