チュートリアル: Azure Spring Apps の Service Connector を使用して、Confluent Cloud で Apache Kafka に接続された Spring Boot アプリをデプロイする

Azure Spring Apps で実行される Spring Boot アプリケーション用に、Confluent Cloud で Apache Kafka にアクセスする方法について学習します。 このチュートリアルでは、次のタスクを実行します。

  • Confluent Cloud で Apache Kafka を作成する
  • Spring Cloud アプリケーションを作成する
  • Spring Boot アプリをビルドしてデプロイする
  • Service Connector を使用して Confluent Cloud 上の Apache Kafka を Azure Spring Apps に接続する

前提条件

  • 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 を実行します。

サンプル アプリをクローンまたはダウンロードする

  1. サンプル リポジトリをクローンします。

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. 次のフォルダーに移動します。

    cd serviceconnector-springcloud-confluent-springboot
    

クラウド サービスを準備する

Apache Kafka for Confluent Cloud のインスタンスを作成する

Apache Kafka for Confluent Cloud のインスタンスを作成するには、このガイダンスに従います。

Confluent Cloud で Kafka クラスターとスキーマ レジストリを作成する

  1. Azure によって提供される SSO を使用して Confluent Cloud にサインインする

    The link of Confluent cloud SSO login using Azure portal

  2. 既定の環境を使用するか、新しい環境を作成します

    Cloud environment of Apache Kafka on Confluent Cloud

  3. 次の情報を使って Kafka クラスターを作成します。

    • クラスターの種類: 標準
    • リージョン/ゾーン: eastus (バージニア)、単一ゾーン
    • クラスター名: cluster_1 またはその他の任意の名前。
  4. [クラスターの概要] ->[クラスター設定] で、Kafka ブートストラップ サーバーの URL をメモします。

    Cluster settings of Apache Kafka on Confluent Cloud

  5. [データ統合] ->[API キー] ->[キーの追加] で、[グローバル アクセス] を有効にしてクラスターの API キーを作成します。 キーとシークレットをメモしておきます。

  6. [トピック] ->[+ トピックの追加] で、パーティションが 6 個の test という名前のトピックを作成します。

  7. 既定の環境で、[スキーマ レジストリ] タブをクリックします。スキーマ レジストリを有効にし、[API エンドポイント] をメモします。

  8. スキーマ レジストリの API キーを作成します。 キーとシークレットを保存します。

Azure Spring Apps インスタンスを作成する

Azure Spring Apps のクイックスタートに関するページの Java の手順に従って、Azure Spring Apps のインスタンスを作成します。 Azure Spring Apps インスタンスが Service Connector をサポートしているリージョンに作成されていることを確認します。

アプリを構築してデプロイする

サンプル アプリをビルドし、新しい Spring アプリを作成する

  1. Azure にサインインしてサブスクリプションを選択します。

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. Gradle を使ってプロジェクトをビルドします。

    ./gradlew build
    
  3. パブリック エンドポイントが割り当てられるアプリを作成します。 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
    

Service Connector を使ってサービス接続を作成する

次のコマンドを実行して、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> を、Azure Spring Apps インスタンス用に作成したリソース グループ名に置き換えます。
  • <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 キーとシークレットに置き換えます。

Note

"The subscription is not registered to use Microsoft.ServiceLinker (サブスクリプションが Microsoft.ServiceLinker を使用するように登録されていません)" というエラー メッセージが表示される場合は、az provider register -n Microsoft.ServiceLinker を実行して Service Connector リソース プロバイダーを登録し、接続コマンドを再度実行してください。

JAR ファイルをデプロイする

次のコマンドを実行して、Spring Cloud アプリに JAR ファイル (build/libs/java-springboot-0.0.1-SNAPSHOT.jar) をアップロードします。

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 portal から Spring Cloud アプリのエンドポイントに移動し、アプリケーションの URL を選択します。 "トピック テストに対して 10 個のメッセージが生成されました" と表示されます。

次に、Confluent ポータルにアクセスすると、トピックのページに運用スループットが表示されます。

Sample metrics

次のステップ

Service Connector の詳細については、以下のチュートリアルに従ってください。