教學課程:在 Azure Spring 應用程式中部署 Spring Boot 應用程式,並使用服務連接器連線至 Confluent Cloud 上的 Apache Kafka
了解如何為執行於 Azure Spring 應用程式上的 Spring Boot 應用程式存取 Confluent Cloud 上的 Apache Kafka。 在本教學課程中,您會完成下列工作:
- 建立 Confluent Cloud 上的 Apache Kafka
- 建立 Spring Cloud 應用程式
- 建置和部署 Spring Boot 應用程式
- 使用服務連接器將 Confluent Cloud 上的 Apache Kafka 連線至 Azure Spring 應用程式
警告
Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
具有長期支援 (LTS) 1 的 JAVA 8 或更新版本。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
複製或下載範例應用程式
複製範例存放庫:
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
瀏覽到下列資料夾:
cd serviceconnector-springcloud-confluent-springboot
準備雲端服務
建立適用於 Confluent Cloud 的 Apache Kafka 執行個體
依照此指引,建立適用於 Confluent Cloud 的 Apache Kafka 執行個體。
在 Confluent Cloud 上建立 Kafka 叢集和結構描述登錄
使用 Azure 提供的 SSO 登入 Confluent Cloud
使用預設環境或建立新的環境
使用下列資訊建立 Kafka 叢集:
- 叢集類型:標準
- 區域:eastus (維吉尼亞州)、單一區域
- 叢集名稱:
cluster_1
或任何其他名稱。
在 [叢集概觀] ->[叢集設定] 中,記下 Kafka Bootstrap 伺服器 URL。
在 [資料整合] ->[API 金鑰] ->[+ 新增金鑰] 中,為叢集建立具有全域存取權的 API 金鑰。 記下金鑰和秘密。
在 [主題] ->[+ 新增主題] 中,建立名為
test
、具有分割區 6 的主題在預設環境中,選取 [結構描述登錄] 索引標籤。啟用結構描述登錄,並記下 API 端點。
建立結構描述登錄的 API 金鑰。 儲存金鑰和秘密。
建立 Azure Spring Apps 執行個體
遵循 JAVA 中的 Azure Spring 應用程式快速入門,建立 Azure Spring 應用程式的執行個體。 請確定您的 Azure Spring 應用程式執行個體是在具有服務連接器支援的區域中建立的。
建置並部署應用程式
建置範例應用程式並建立新的 Spring 應用程式
登入 Azure 並選擇您的訂用帳戶。
az login az account set --subscription <Name or ID of your subscription>
使用 Gradle 建置專案。
./gradlew build
建立已指派公用端點的應用程式。 如果您在產生 Spring Cloud 專案時選取 Java 第 11 版,請加上
--runtime-version=Java_11
參數。az spring app create -n hellospring -s <service-instance-name> -g <your-resource-group-name> --assign-endpoint true
使用服務連接器建立服務連線
執行下列命令,將 Confluent Cloud 上的Apache Kafka 連線至 Spring Cloud 應用程式。
az spring connection create confluent-cloud -g <your-spring-cloud-resource-group> --service <your-spring-cloud-service> --app <your-spring-cloud-app> --deployment <your-spring-cloud-deployment> --bootstrap-server <kafka-bootstrap-server-url> --kafka-key <cluster-api-key> --kafka-secret <cluster-api-secret> --schema-registry <kafka-schema-registry-endpoint> --schema-key <registry-api-key> --schema-secret <registry-api-secret>
將下列預留位置文字換成您自己的資料:
- 將
<your-resource-group-name>
取代為您為 Apps Spring 應用程式執行個體建立的資源群組名稱。 - 將
<kafka-bootstrap-server-url>
取代為您的 Kafka 啟動程序伺服器 URL。 例如:pkc-xxxx.eastus.azure.confluent.cloud:9092
。 - 將
<cluster-api-key>
和<cluster-api-secret>
取代為您的叢集 API 金鑰和秘密。 - 將
<kafka-schema-registry-endpoint>
取代為您的 Kafka 結構描述登錄端點。 例如:https://psrc-xxxx.westus2.azure.confluent.cloud
。 - 將
<registry-api-key>
和<registry-api-secret>
取代為您的 kafka 結構描述登錄 API 金鑰和秘密。
注意
如果您看到「未註冊訂用帳戶,無法使用 Microsoft.ServiceLinker」錯誤訊息,請執行 az provider register -n Microsoft.ServiceLinker
以註冊服務連接器資源提供者,然後再次執行連線命令。
部署 JAR 檔案
執行下列命令,將 JAR 檔案 (build/libs/java-springboot-0.0.1-SNAPSHOT.jar
) 上傳至您的 Spring Cloud 應用程式。
az spring app deploy -n hellospring -s <service-instance-name> -g <your-resource-group-name> --artifact-path build/libs/java-springboot-0.0.1-SNAPSHOT.jar
驗證 Kafka 資料擷取
從 Azure 入口網站瀏覽至 Spring Cloud 應用程式的端點,然後選取應用程式 URL。 您會看到「已為主題測試產生了 10 則訊息」。
然後,移至 Confluent 入口網站,主題的頁面會顯示生產輸送量。
下一步
請遵循下方列出的教學課程以深入了解服務連接器。