共用方式為


教學課程:使用服務連接器將應用程式部署至 Azure Spring 應用程式,並將其連線至適用於 MySQL 的 Azure 資料庫彈性伺服器

在本教學課程中,您將使用 Azure 入口網站或 Azure CLI 完成下列工作。 下列程序會說明這兩種方法。

  • 佈建 Azure Spring Apps 的執行個體
  • 建置應用程式並將其部署至 Azure Spring 應用程式
  • 透過服務連接器整合 Azure Spring 應用程式與適用於 MySQL 的 Azure 資料庫

警告

Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。

必要條件

佈建 Azure Spring Apps 的執行個體

下列程序會使用 Azure CLI 延伸模組來佈建 Azure Spring Apps 的執行個體。

  1. 使用 Azure Spring 應用程式延伸模組更新 Azure CLI。

    az extension update --name spring
    
  2. 登入 Azure CLI 並選擇作用中訂用帳戶。

    az login
    az account list -o table
    az account set --subscription <Name or ID of subscription, skip if you only have 1 subscription>
    
  3. 建立資源群組以納入您的應用程式與 Azure Spring 應用程式服務執行個體。

    az group create --name ServiceConnector-tutorial-mysqlf --location eastus
    
  4. 建立 Azure Spring Apps 的執行個體。 其名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字與連字號。 Azure Spring 應用程式執行個體名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。

    az spring create -n my-azure-spring -g ServiceConnector-tutorial-mysqlf
    

建立適用於 MySQL 的 Azure 資料庫彈性伺服器

建立 MySQL 彈性伺服器執行個體。 在下列命令中,以您選擇的認證取代 <admin-username><admin-password>,以建立 MySQL 彈性伺服器的系統管理員使用者。 管理使用者名稱不能是 azure_superuserazure_pg_adminadminadministratorrootguestpublic。 它不能以 pg_ 開頭。 密碼必須為包含下列三個類別的 8 到 128 個字元:英文大寫字母、英文小寫字母、數字與非英數字元 (例如,!#%)。 密碼不能包含 username

az mysql flexible-server create \
    --resource-group ServiceConnector-tutorial-mysqlf \
    --name mysqlf-server \
    --database-name mysqlf-db \
    --admin-user <admin-username> \
    --admin-password <admin-password>

伺服器會以下列預設值來建立 (除非您手動覆寫它們):

設定 預設值 說明
server-name 由系統產生 可識別 Azure Database for MySQL 伺服器的唯一名稱。
sku-name GP_Gen5_2 SKU 的名稱。 遵循速記的慣例 {pricing tier}_{compute generation}_{vCores}。 預設是一部一般用途、具有 2 個 vCore 的第 5 代伺服器。 如需關於價格的詳細資訊,請參閱定價頁面
backup-retention 7 備份應保留的時間長度。 單位為天。
geo-redundant-backup 停用 是否應針對此伺服器啟用異地備援備份。
location westus2 伺服器的 Azure 位置。
ssl-enforcement 已啟用 是否應針對此伺服器啟用 SSL。
storage-size 5120 伺服器的儲存體容量 (單位為 MB)。
version 5.7 MySQL 主要版本。

注意

預設會使用 Standard_B1ms SKU。 如需價格詳細資料,請參閱適用於 MySQL 的 Azure 資料庫定價

注意

如需有關 az mysql flexible-server create 命令及其額外參數的詳細資訊,請參閱 Azure CLI 文件

建置並部署應用程式

  1. 建立獲指派公用端點的應用程式。 如果您在產生 Azure Spring 應用程式專案時選取 Java 第 11 版,請包含 --runtime-version=Java_11 參數。

    az spring app create -n hellospring -s my-azure-spring -g ServiceConnector-tutorial-mysqlf --assign-endpoint true
    
  2. 執行 az spring connection create 命令,將部署至 Azure Spring 應用程式的應用程式連線到 MySQL 彈性伺服器資料庫。 請將下列預留位置取代為您自己的資訊。

    az spring connection create mysql-flexible \
        --resource-group ServiceConnector-tutorial-mysqlf \
        --service my-azure-spring \
        --app hellospring \
        --target-resource-group ServiceConnector-tutorial-mysqlf \
        --server mysqlf-server \
        --database mysqlf-db \
        --secret name=<admin-username> secret=<admin-secret>
    
    設定 描述
    --resource-group 包含由 Azure Spring 應用程式裝載之應用程式的資源群組名稱。
    --service Azure Spring 應用程式資源的名稱。
    --app 裝載於連線至目標服務之 Azure Spring 應用程式的應用程式名稱。
    --target-resource-group 包含儲存體帳戶之資源群組的名稱。
    --server 您想要連線到的 MySQL 彈性伺服器
    --database 您先前所建立之資料庫的名稱。
    --secret name MySQL 彈性伺服器使用者名稱。
    --secret MySQL 彈性伺服器密碼。

    注意

    如果您看到「未註冊訂用帳戶,無法使用 Microsoft.ServiceLinker」錯誤訊息,請執行 az provider register -n Microsoft.ServiceLinker 以註冊服務連接器資源提供者,然後再次執行連線命令。

  3. 複製範例程式碼

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-mysql-springboot.git
    
  4. 使用 Maven 建立專案。

    cd serviceconnector-springcloud-mysql-springboot
    mvn clean package -DskipTests 
    
  5. 部署應用程式的 JAR 檔案 target/demo-0.0.1-SNAPSHOT.jar

    az spring app deploy \
        --name hellospring \
        --service my-azure-spring \
        --resource-group ServiceConnector-tutorial-mysqlf \
        --artifact-path target/demo-0.0.1-SNAPSHOT.jar
    
  6. 在部署之後,使用下列命令來查詢應用程式狀態。

    az spring app list  --resource-group ServiceConnector-tutorial-mysqlf --service my-azure-spring --output table
    

    您應該會看見下列輸出:

    Name         Location    ResourceGroup                     Public Url                                                 Production Deployment    Provisioning State    CPU    Memory    Running Instance    Registered Instance    Persistent Storage    Bind Service Registry    Bind Application Configuration Service
    -----------  ----------  --------------------------------  ---------------------------------------------------------  -----------------------  --------------------  -----  --------  ------------------  ---------------------  --------------------  -----------------------  ----------------------------------------
    hellospring  eastus      ServiceConnector-tutorial-mysqlf  https://my-azure-spring-hellospring.azuremicroservices.io  default                  Succeeded             1      1Gi       1/1                 0/1                    -                     -
    
    

下一步

請遵循下方列出的教學課程以深入了解服務連接器。