次の方法で共有


クイック スタート: デプロイを自動化する

Note

BasicStandardEnterprise プランは、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 で使用するストレージ アカウントを作成する方法を示します。

  1. 次のコマンドを使用して、ストレージ アカウントを含む新しいリソース グループを作成します。

    az group create \
        --name <storage-resource-group> \
        --location <location>
    
  2. 次のコマンドを使用して、ストレージ アカウントを作成します。

    az storage account create \
        --resource-group <storage-resource-group> \
        --name <storage-account-name> \
        --location <location> \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. 次のコマンドを使用して、ストレージ アカウント内にストレージ コンテナーを作成します。

    az storage container create \
        --resource-group <storage-resource-group> \
        --name terraform-state-container \
        --account-name <storage-account-name> \
        --auth-mode login
    
  4. 次のコマンドを使用して 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>",
        ...
    }
    
  5. この例では、GitHub 上のフィットネス ストアのサンプルを使用しています。 サンプルをフォークし、GitHub リポジトリ ページを開き、[設定] タブを選択します。次のスクリーンショットに示すように、[シークレット] メニューを開き、[Add a new secret](新しいシークレットの追加) を選択します。

    GitHub の [設定] での新しいシークレットの追加を示すスクリーンショット。

  6. シークレット名を AZURE_CREDENTIALS に設定し、その値を「Set up your GitHub repository and authenticate (GitHub リポジトリを設定して認証する)」という見出しの下にある JSON 文字列に設定します。

    GitHub の [設定] でのシークレット データの設定を示すスクリーンショット。

  7. GitHub Actions に次のシークレットを追加します。

  8. 次の値を使用してシークレット 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 を実行できるようになりました。 プロビジョニング ワークフローは、サンプル アプリケーションを実行するために必要なすべてのリソースをプロビジョニングします。 次のスクリーンショットは、実行例を示しています。

プロビジョニング ワークフローからの出力を示す GitHub のスクリーンショット。

各アプリケーションには、そのアプリケーションに変更が加えられたときにアプリケーションを再デプロイするデプロイ ワークフローがあります。 次のスクリーンショットは、カタログ サービスからの出力例を示しています。

カタログのデプロイ ワークフローからの出力を示す GitHub のスクリーンショット。

クリーンアップ ワークフローを手動で実行して、provision ワークフローによって作成されたすべてのリソースを削除できます。 次のスクリーンショットは出力を示しています。

クリーンアップ ワークフローからの出力を示す GitHub のスクリーンショット。

リソースをクリーンアップする

後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 不要になったら、リソース グループを削除します。これにより、リソース グループ内のリソースが削除されます。 Azure CLI を使用してリソース グループを削除するには、次のコマンドを使用します。

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

次のステップ

次のいずれかの省略可能なクイックスタートに進みます: