共用方式為


教學課程:在 Azure 容器應用程式中整合適用於 Spring 的管理員與適用於 Spring 的 Eureka 伺服器

本教學課程會引導您完成在 Azure 容器應用程式內整合適用於 Spring 的受控管理員與適用於 Spring 的 Eureka 伺服器的程序。

本文有某些內容與《連線至 Azure 容器應用程式中的適用於 Spring 的受控管理員》教學課程類似,但使用適用於 Spring 的 Eureka 伺服器時,您可以將適用於 Spring 的管理員繫結至適用於 Spring 的 Eureka 伺服器,讓其可以透過 Eureka 取得應用程式資訊,而不必將個別應用程式繫結至適用於 Spring 的管理員。

藉由遵循本指南,您會設定 Eureka 伺服器以探索服務,然後建立適用於 Spring 的管理員來管理及監視向 Eureka 伺服器註冊的 Spring 應用程式。 此設定可確保其他應用程式只需要繫結至 Eureka 伺服器,從而簡化微服務的管理。

在本教學課程中,您將了解:

  1. 建立適用於 Spring 的 Eureka 伺服器。
  2. 建立適用於 Spring 的管理員,並將其連結至 Eureka 伺服器。
  3. 將其他應用程式繫結至 Eureka 伺服器,以簡化服務的探索和管理。

必要條件

若要完成此教學課程,您需要下列項目:

需求 指示
Azure 帳戶 需要有效的訂用帳戶。 如果您沒有,可以免費建立一個
Azure CLI 安裝 Azure CLI
現有的適用於 Spring 的 Eureka 伺服器 Java 元件 如果您沒有此元件,請遵循建立適用於 Spring 的 Eureka 伺服器一節來加以建立。

考量

在 Azure 容器應用程式中執行受控 Java 元件時,請注意下列詳細資料:

項目 說明
Scope 元件會在與連線的容器應用程式相同的環境中執行。
調整大小 元件無法縮放。 縮放屬性 minReplicasmaxReplicas 都會設定為 1
資源 已修正元件的容器資源配置。 CPU 核心數為 0.5,記憶體大小為 1Gi。
定價 元件的計費會低於使用量型定價。 受控元件所取用的資源會以使用/閒置費率計費。 您可以刪除不再使用的元件來停止計費。
繫結 容器應用程式會透過繫結連線到元件。 繫結會將設定插入到容器應用程式的環境變數中。 建立繫結之後,容器應用程式就可以從環境變數中讀取設定值,並連線到元件。

設定

在開始之前,請先執行下列命令來建立必要資源。

  1. 建立變數以支援您的應用程式設定。 這些值是針對本課程的目的而向您提供的。

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_NAME=eureka
    export ADMIN_COMPONENT_NAME=admin
    export CLIENT_APP_NAME=sample-service-eureka-client
    export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
    
    變數 描述
    LOCATION 您在其中建立容器應用程式和 Java 元件的 Azure 區域位置。
    RESOURCE_GROUP 示範應用程式的 Azure 資源群組名稱。
    ENVIRONMENT 適用於您示範應用程式的 Azure 容器應用程式環境名稱。
    EUREKA_COMPONENT_NAME Eureka 伺服器 Java 元件的名稱。
    ADMIN_COMPONENT_NAME 適用於 Spring 的管理員 Java 元件名稱。
    CLIENT_APP_NAME 會繫結至 Eureka 伺服器之容器應用程式的名稱。
    CLIENT_IMAGE Eureka 伺服器容器應用程式中所使用的容器映像。
  2. 使用 Azure CLI 登入 Azure。

    az login
    
  3. 建立資源群組。

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. 建立您的容器應用程式環境。

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --query "properties.provisioningState"
    

    使用 --query 參數會將回應向下篩選為簡單的成功或失敗訊息。

選用:建立適用於 Spring 的 Eureka 伺服器

如果您沒有現有的適用於 Spring 的 Eureka 伺服器,請遵循下列命令來建立 Eureka 伺服器 Java 元件。 如需詳細資訊,請參閱 [建立適用於 Spring 的 Eureka 伺服器](java-eureka-server.md#create-the-eureka server-for-spring-java-component)。

az containerapp env java-component eureka-server-for-spring create \
  --environment $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --name $EUREKA_COMPONENT_NAME

將元件繫結在一起

建立適用於 Spring 的管理員 Java 元件。

az containerapp env java-component admin-for-spring create \
  --environment $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --name $ADMIN_COMPONENT_NAME \
  --min-replicas 1 \
  --max-replicas 1 \
  --bind $EUREKA_COMPONENT_NAME

將其他應用程式繫結至 Eureka 伺服器

設定好 Eureka 伺服器之後,您現在可以將其他應用程式繫結至 Eureka 伺服器,以探索服務。 您也可以在適用於 Spring 的管理員儀表板中監視和管理這些應用程式。 請遵循下列步驟,以建立容器應用程式並將其繫結至 Eureka 伺服器:

建立容器應用程式,並將其繫結至 Eureka 伺服器。

az containerapp create \
  --name $CLIENT_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $CLIENT_IMAGE \
  --min-replicas 1 \
  --max-replicas 1 \
  --ingress external \
  --target-port 8080 \
  --bind $EUREKA_COMPONENT_NAME 

提示

由於先前的步驟已將適用於 Spring 的管理員元件繫結至適用於 Spring 的 Eureka 伺服器元件,所以管理員元件會啟用服務探索,並可讓您同時透過適用於 Spring 的管理員儀表板來進行管理。

檢視儀表板

重要

若要檢視儀表板,您必須至少將 Microsoft.App/managedEnvironments/write 角色指派給您在受控環境資源上的帳戶。 您可以在資源上明確指派 OwnerContributor 角色,或遵循步驟來建立自訂角色定義,並將其指派給您的帳戶。

  1. 建立自訂角色定義。

    az role definition create --role-definition '{
        "Name": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    請務必將 AssignableScopes 值中 <> 括號之間的預留位置取代為您的訂用帳戶識別碼。

  2. 將自訂角色指派給您在受控環境資源上的帳戶。

    取得受控環境的資源識別碼。

    export ENVIRONMENT_ID=$(az containerapp env show \
      --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
      --query id -o tsv)
    
  3. 將角色指派給您的帳戶。

    在執行此命令之前,請將 <> 括號之間的預留位置取代為您的使用者或服務主體識別碼。

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "Java Component Dashboard Access" \
      --scope $ENVIRONMENT_ID
    
  4. 取得適用於 Spring 的管理員儀表板 URL。

    az containerapp env java-component admin-for-spring show \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $ADMIN_COMPONENT_NAME \
      --query properties.ingress.fqdn -o tsv
    
  5. 取得適用於 Spring 的 Eureka 伺服器儀表板 URL。

    az containerapp env java-component eureka-server-for-spring show \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $EUREKA_COMPONENT_NAME \
      --query properties.ingress.fqdn -o tsv
    

    此命令會傳回可用來存取適用於 Spring 的 Eureka 伺服器儀表板的 URL。 透過儀表板,您的容器應用程式也會向您,如下列螢幕擷取畫面所示。

    適用於 Spring 的管理員儀表板的螢幕擷取畫面。

    適用於 Spring 的 Eureka 伺服器儀表板的螢幕擷取畫面。

清除資源

本教學課程中建立的資源會影響您的 Azure 帳單。 如果您不會長期使用這些服務,請執行下列命令來刪除本教學課程中建立的所有內容。

az group delete \
    --resource-group $RESOURCE_GROUP

下一步