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

注意

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象:❌ 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](新しいシークレットの追加) を選択します。

    Screenshot showing GitHub Settings Add new secret.

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

    Screenshot showing GitHub Settings Set secret data.

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

Screenshot of GitHub showing output from the provision workflow.

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

Screenshot of GitHub showing output from the Deploy Catalog workflow.

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

Screenshot of GitHub showing output from the cleanup workflow.

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

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

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

次のステップ

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