チュートリアル: Azure Container Apps でマネージド Eureka Server for Spring に接続する (プレビュー)
Eureka Server for Spring は、マイクロサービスが自己を登録し、他のサービスを検出できるようにするサービス レジストリです。 Azure Container Apps コンポーネントとして利用可能で、Eureka サーバーに自動登録するためにお使いのコンテナー アプリを Eureka Server for Spring にバインドできます。
このチュートリアルで学習する内容は次のとおりです。
- Eureka Server for Spring の Java コンポーネントを作成する
- コンテナー アプリを Eureka Server for Spring の Java コンポーネントにバインドする
重要
このチュートリアルでは、Azure の請求書に影響する可能性のあるサービスを使用します。 手順に従う場合は、予期しない課金を回避するために、この記事で紹介されているリソースを必ず削除してください。
前提条件
このプロジェクトを完了するには、次の項目が必要です:
要件 | 手順 |
---|---|
Azure アカウント | アクティブなサブスクリプションが必要です。 持っていない場合は、無料で作成できます。 |
Azure CLI | Azure CLI をインストールします。 |
考慮事項
Azure Container Apps の Eureka Server for Spring で実行する場合は、次の詳細に注意してください。
項目 | 説明 |
---|---|
スコープ | Eureka Server for Spring コンポーネントは、接続されているコンテナー アプリと同じ環境で実行されます。 |
スケーリング | Eureka Server for Spring はスケーリングできません。 スケーリング プロパティ minReplicas と maxReplicas は両方とも 1 に設定されています。 |
リソース | Eureka Server for Spring のコンテナー リソースの割り当ては固定されています。 CPU コア数は 0.5、メモリ サイズは 1Gi です。 |
料金 | Eureka Server for Spring の課金は消費ベースの価格に該当します。 マネージド Java コンポーネントによって消費されるリソースは、アクティブ/アイドル レートで課金されます。 課金を停止するために、使用しなくなったコンポーネントを削除できます。 |
バインディング | コンテナー アプリは、バインドを介して Eureka Server for Spring コンポーネントに接続します。 バインドは、コンテナー アプリの環境変数に構成を注入します。 バインドが確立されると、コンテナー アプリで環境変数からこれらの構成値を読み取り、Eureka Server for Spring に接続できます。 |
セットアップ
Eureka Server for Spring の操作を開始する前に、まず、必要なリソースを作成する必要があります。
次のコマンドを実行して、リソース グループとコンテナー アプリ環境を作成します。
アプリケーション構成をサポートする変数を作成します。 これらの値は、このレッスンのために提供されています。
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export JAVA_COMPONENT_NAME=eureka export APP_NAME=sample-service-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
変数 説明 LOCATION
コンテナー アプリと Java コンポーネントを作成する Azure リージョンの場所。 ENVIRONMENT
デモ アプリケーションの Azure Container Apps 環境名。 RESOURCE_GROUP
デモ アプリケーションの Azure リソース グループ名。 JAVA_COMPONENT_NAME
コンテナー アプリ用に作成された Java コンポーネントの名前。 この場合、Eureka Server for Spring の Java コンポーネントを作成します。 IMAGE
コンテナー アプリで使用されるコンテナー イメージ。 Azure CLI を使用して Azure にログインします。
az login
リソース グループを作成する。
az group create --name $RESOURCE_GROUP --location $LOCATION
コンテナー アプリ環境を作成します。
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Eureka Server for Spring の Java コンポーネントを使用する
既存の環境が作成されたので、コンテナー アプリを作成し、Eureka Server for Spring の Java コンポーネント インスタンスにバインドできます。
Eureka Server for Spring の Java コンポーネントを作成します。
az containerapp env java-component eureka-server-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME
Eureka Server for Spring の Java コンポーネント構成を更新します。
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
コンテナー アプリを作成し、 Eureka Server for Spring にバインドします。
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080 \ --bind $JAVA_COMPONENT_NAME \ --query properties.configuration.ingress.fqdn
このコマンドは、Eureka サーバー コンポーネントの登録を消費するコンテナー アプリの URL を返します。 次の手順で使えるように URL をテキスト エディターにコピーします。
/allRegistrationStatus
ルートの先頭に移動して、Eureka Server for Spring に登録されているすべてのアプリケーションを表示します。バインドは、いくつかの構成を環境変数 (主に
eureka.client.service-url.defaultZone
プロパティ) としてアプリケーションに注入します。 このプロパティは、Eureka Server Java コンポーネントの内部エンドポイントを示します。バインドでは、次のプロパティも注入されます。
"eureka.client.register-with-eureka": "true" "eureka.instance.prefer-ip-address": "true"
eureka.client.register-with-eureka
プロパティはtrue
に設定され、Eureka サーバーに強制的に登録します。 この登録は、構成サーバーなどからapplication.properties
のローカル設定をオーバーライドします。 これをfalse
に設定する場合は、コンテナー アプリで環境変数を設定することでオーバーライドできます。eureka.instance.prefer-ip-address
がtrue
に設定されているのは、コンテナー アプリ環境の特定の DNS 解決ルールによるものです。 バインドを壊さないようにするため、この値は変更しないでください。アプリケーションからバインドを削除することもできます。
リソースをクリーンアップする
このチュートリアルで作成したリソースは、Azure の請求書に影響します。 これらのサービスを長期間使用しない場合は、次のコマンドを実行して、このチュートリアルで作成したすべてのものを削除してください。
az group delete \
--resource-group $RESOURCE_GROUP
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示