Share via


Azure CLI を使用してタスクを自動化する

Azure タスクの自動化は、ホスト環境への継続的デプロイのための一般的な要件です。 タスクを管理し、任意の場所からデプロイするために、JavaScript 開発者には Azure CLI をお勧めします。

JavaScript 開発者のための一般的なタスク コマンドについて説明します。

Azure CLI を使用した自動化

Azure CLI を自動化するには、環境に CLI をインストールする必要があります。 一般的な方法を次に示します。

サンプル コマンドの使用

  1. 山かっこ <...> 内の変数を実際の値に置き換えます。
  2. <MY_GITHUB_DEFAULT_BRANCH_NAME> に対するご自身の GitHub リポジトリの値は、使用するリポジトリに固有です。 現在、一般的な値は main または default です。 以前のリポジトリでは、master を使用することもあります。

Azure CLI を使用した自動化されたタスクのためのマネージド ID による認証

自動化のために、マネージド ID を使用して Azure CLI への az login を認証します。

az login --identity

Azure CLI を使用した自動化されたタスクのためのサービス プリンシパルによる認証

サービス プリンシパルが作成された後に、ユーザーのサービス プリンシパルでログインします。

read -sp "Azure password: " AZ_PASS && echo && \ 
    az login --service-principal \
    -u <MY-SP-APP-URL> \
    -p $AZ_PASS \
    --tenant <MY-TENANT>

Azure CLI を使用した自動化されたタスクのためのユーザー資格情報による認証

次のコマンドを使用して、ユーザー資格情報により認証します。

az login -u <MY_AZURE_USERNAME> -p <MY_AZURE_PASSWORD>

リソースのリソースグループを作成する

リソース グループは、Azure リソースの論理的なコレクションです。 論理グループは、プロジェクトの特定のリージョンで必要とされるサービスに基づいています。 名前付け規則について確認してください。 Azure サービス リソースを作成する前に、az group create コマンドを使用してリソース グループを作成します。

az group create \
    --name <MY-AZURE-RESOURCE_GROUP_NAME> \
    --location <AZURE_REGION_LOCATION>

Azure Static Web アプリ を作成する

az staticwebapp create コマンドを使用して、新しい静的 Web アプリを作成します。

az staticwebapp create \
    --name <MY_AZURE_WEB_APP_NAME> \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --source https://github.com/<MY_GITHUB_ACCOUNT_NAME>/<MY_AZURE_WEB_APP_NAME> \
    --location <AZURE_REGION_LOCATION> \
    --branch <MY_GITHUB_DEFAULT_BRANCH_NAME> \
    --app-artifact-location "<MY_WEB_APP_BUILD_DIRECTORY_NAME>" \
    --token <MY_GITHUB_PERSONAL_ACCESS_TOKEN>

Azure 静的 Web アプリをデプロイする

アプリをデプロイするには、前のセットのリソース作成時に設定されたリモートの GitHub ブランチにプッシュします。

git push <REMOTE_NAME> <MY_GITHUB_DEFAULT_BRANCH_NAME>

このコマンドの例は次のとおりです。

git push origin main

静的 Web アプリを削除する

az staticwebapp delete コマンドを使用して、静的 Web アプリを削除します。

az staticwebapp delete && \
    --name <MY_AZURE_WEB_APP_NAME> && \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME>

Azure 関数アプリを作成する

使用量ベースの関数アプリには、関数アプリとストレージ リソースの両方が必要です。

  1. az storage account create でストレージ リソースを作成します。

    az storage account create \
      --name <MY-AZURE-STORAGE> \
      --location <AZURE_REGION_LOCATION> \
      --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
      --sku Standard_LRS    
    
  2. az functionapp create で関数アプリ リソースを作成します。

    az functionapp create \
      --name <MY-AZURE-FUNCTION> \
      --storage-account <MY-AZURE-STORAGE> \
      --consumption-plan-location <AZURE_REGION_LOCATION> \
      --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
      --functions-version 2
    

Azure 関数 API エンドポイントを作成する

ローカル開発プロジェクト用の Azure 関数 API エンドポイントを作成するための Azure CLI コマンドはありません。 Visual Studio Code の Azure 関数拡張機能は、ローカルの Azure 関数プロジェクトを作成し、API エンドポイントをプロジェクトに追加するために推奨される方法です。

Azure 関数デプロイ スロットを作成する

デプロイ スロットを作成した後にスワップすると、デプロイをすばやく元に戻すことができます。 az functionapp deployment slot create コマンドを使用してデプロイ スロットを作成します。

az functionapp deployment slot create \
    --name <MY-AZURE-FUNCTION> \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --slot <MY-SLOT-NAME> \
    --configuration-source <MY-PRODUCTION-SLOT> 

git から Azure 関数アプリをデプロイする

az functionapp deployment source config を使用して、git または Mercurial リポジトリからのデプロイを管理します。--repository-type 設定のリポジトリの種類として、externalgit、git、github、localgit、mercurial のいずれかを選択します。

az functionapp deployment source config --repo-url \
    --branch <MY-REPO-BRANCH> \
    --git-token <MY-GIT-TOKEN> \
    --name <MY-AZURE-FUNCTION> \
    --repository-type <MY-REPO-TYPE> \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --slot <MY-SLOT-NAME> \

Azure 関数スロットをスワップする

az functionapp deployment slot swap コマンドを使用してスロットをスワップします。 スロット アクションの選択肢は次のとおりです: preview、reset、swap

az functionapp deployment slot swap \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --name <MY-AZURE-FUNCTION> \
    --slot <MY-SLOT-NAME> \
    --action <YOUR-ACTION> \
    --target-slot <MY-OTHER-SLOT-NAME>

Azure 関数を削除する

関数アプリを削除するには、az functionapp delete コマンドを使用します。

az functionapp delete \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --name <MY-AZURE-FUNCTION> 

次のステップ