クイック スタート: デプロイを自動化する
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象: ❎ Basic/Standard ✅ Enterprise
このクイックスタートでは、GitHub Actions と Terraform を使用して Azure Spring Apps Enterprise プランへのデプロイを自動化する方法を示します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure Marketplace の Enterprise プランの「要件」セクションを理解し、要件を満たします。
- Azure CLI バージョン 2.45.0 以降。
- Git.
- jq
- Azure Spring Apps Enterprise プランの拡張機能。 次のコマンドを使用して、以前のバージョンを削除し、最新の Enterprise プランの拡張機能をインストールします。 以前に
spring-cloud
拡張機能をインストールした場合は、構成とバージョンの不一致を回避するためにそれをアンインストールします。az extension add --upgrade --name spring az extension remove --name spring-cloud
GitHub リポジトリを設定して認証する
サンプル アプリケーションに関連付けられている自動化には、Terraform 状態を維持するためのストレージ アカウントが必要です。 次の手順では、GitHub Actions と Terraform で使用するストレージ アカウントを作成する方法を示します。
次のコマンドを使用して、ストレージ アカウントを含む新しいリソース グループを作成します。
az group create \ --name <storage-resource-group> \ --location <location>
次のコマンドを使用して、ストレージ アカウントを作成します。
az storage account create \ --resource-group <storage-resource-group> \ --name <storage-account-name> \ --location <location> \ --sku Standard_RAGRS \ --kind StorageV2
次のコマンドを使用して、ストレージ アカウント内にストレージ コンテナーを作成します。
az storage container create \ --resource-group <storage-resource-group> \ --name terraform-state-container \ --account-name <storage-account-name> \ --auth-mode login
次のコマンドを使用して Azure 資格情報を取得します。 Azure ログイン アクションを承認するには、Azure サービス プリンシパルの資格情報が必要です。
az login az ad sp create-for-rbac \ --role contributor \ --scopes /subscriptions/<SUBSCRIPTION_ID> \ --json-auth
このコマンドからは、次のような JSON オブジェクトが出力されます。
{ "clientId": "<GUID>", "clientSecret": "<GUID>", "subscriptionId": "<GUID>", "tenantId": "<GUID>", ... }
この例では、GitHub 上のフィットネス ストアのサンプルを使用しています。 サンプルをフォークし、GitHub リポジトリ ページを開き、[設定] タブを選択します。次のスクリーンショットに示すように、[シークレット] メニューを開き、[Add a new secret](新しいシークレットの追加) を選択します。
シークレット名を
AZURE_CREDENTIALS
に設定し、その値を「Set up your GitHub repository and authenticate (GitHub リポジトリを設定して認証する)」という見出しの下にある JSON 文字列に設定します。GitHub Actions に次のシークレットを追加します。
TF_PROJECT_NAME
: 選択した値を使用します。 この値は、Terraform プロジェクトの名前になります。AZURE_LOCATION
: リソースが作成される Azure リージョン。OIDC_JWK_SET_URI
: 「クイック スタート: Azure Spring Apps Enterprise プランを使用してアプリケーションのシングル サインオンを構成する」で定義されているJWK_SET_URI
を使用します。OIDC_CLIENT_ID
: 「クイック スタート: Azure Spring Apps Enterprise プランを使用してアプリケーションのシングル サインオンを構成する」で定義されているCLIENT_ID
を使用します。OIDC_CLIENT_SECRET
: 「クイック スタート: Azure Spring Apps Enterprise プランを使用してアプリケーションのシングル サインオンを構成する」で定義されているCLIENT_SECRET
を使用します。OIDC_ISSUER_URI
: 「クイック スタート: Azure Spring Apps Enterprise プランを使用してアプリケーションのシングル サインオンを構成する」で定義されているISSUER_URI
を使用します。
次の値を使用してシークレット
TF_BACKEND_CONFIG
を GitHub Actions に追加します。resource_group_name = "<storage-resource-group>" storage_account_name = "<storage-account-name>" container_name = "terraform-state-container" key = "dev.terraform.tfstate"
GitHub Actions による自動化
リポジトリで GitHub Actions を実行できるようになりました。 プロビジョニング ワークフローは、サンプル アプリケーションを実行するために必要なすべてのリソースをプロビジョニングします。 次のスクリーンショットは、実行例を示しています。
各アプリケーションには、そのアプリケーションに変更が加えられたときにアプリケーションを再デプロイするデプロイ ワークフローがあります。 次のスクリーンショットは、カタログ サービスからの出力例を示しています。
クリーンアップ ワークフローを手動で実行して、provision
ワークフローによって作成されたすべてのリソースを削除できます。 次のスクリーンショットは出力を示しています。
リソースをクリーンアップする
後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 不要になったら、リソース グループを削除します。これにより、リソース グループ内のリソースが削除されます。 Azure CLI を使用してリソース グループを削除するには、次のコマンドを使用します。
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
次のステップ
次のいずれかの省略可能なクイックスタートに進みます: