教學課程:使用服務連接器將應用程式部署至 Azure Spring 應用程式,並將其連線至適用於 MySQL 的 Azure 資料庫彈性伺服器
在本教學課程中,您將使用 Azure 入口網站或 Azure CLI 完成下列工作。 下列程序會說明這兩種方法。
- 佈建 Azure Spring Apps 的執行個體
- 建置應用程式並將其部署至 Azure Spring 應用程式
- 透過服務連接器整合 Azure Spring 應用程式與適用於 MySQL 的 Azure 資料庫
警告
Microsoft 建議您使用最安全的可用驗證流程。 這個程序描述的驗證流程需要在應用程式中具備極高的信任度,且伴隨著其他流程並未面臨的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。
必要條件
- 安裝 JDK 8 或 JDK 11
- 註冊 Azure 訂用帳戶
- 安裝 Azure CLI 2.0.67 版或更高版本 (部分機器翻譯),並使用下列命令安裝 Azure Spring 應用程式延伸模組:
az extension add --name spring
佈建 Azure Spring Apps 的執行個體
下列程序會使用 Azure CLI 延伸模組來佈建 Azure Spring Apps 的執行個體。
使用 Azure Spring 應用程式延伸模組更新 Azure CLI。
az extension update --name spring
登入 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>
建立資源群組以納入您的應用程式與 Azure Spring 應用程式服務執行個體。
az group create --name ServiceConnector-tutorial-mysqlf --location eastus
建立 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_superuser、azure_pg_adminadminadministratorrootguest 或 public。 它不能以 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 文件。
建置並部署應用程式
建立獲指派公用端點的應用程式。 如果您在產生 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
執行
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
以註冊服務連接器資源提供者,然後再次執行連線命令。複製範例程式碼
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-mysql-springboot.git
使用 Maven 建立專案。
cd serviceconnector-springcloud-mysql-springboot mvn clean package -DskipTests
部署應用程式的 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
在部署之後,使用下列命令來查詢應用程式狀態。
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 - -
下一步
請遵循下方列出的教學課程以深入了解服務連接器。