演習 - Azure DevOps 環境を設定する

完了

ここでは、デプロイ用の App Service 環境を作成します。 App Service Environment は、仮想ネットワーク内で実行される Azure App Service のシングル テナント デプロイです。 アプリケーションをホストするのは、App Service Environment 内に作成する App Service プランです。

このモジュールでは、Azure CLI を使用して、App Service インスタンスのデプロイと実行に必要なリソースを追加します。 Azure CLI には、ターミナルまたは Visual Studio Code からアクセスできます。

ここでは、Azure Cloud Shell から Azure CLI にアクセスします。 このブラウザーベースのシェル エクスペリエンスは、クラウドでホストされています。 Cloud Shell では、Azure CLI は Azure サブスクリプションで使用するように構成されています。

重要

このモジュールの演習を完了するには、自分の Azure サブスクリプションが必要です。

Azure portal から Cloud Shell を起動する

  1. Azure Portal にアクセスしてサインインします。

  2. メニューから [Cloud Shell] を選択します。 プロンプトが表示されたら、[Bash] エクスペリエンスを選択します。

    Cloud Shell メニュー項目の場所が示されている Azure portal のスクリーンショット。

    Note

    Cloud Shell では、Cloud Shell で作成するすべてのファイルを保持する Azure ストレージ リソースが必要です。 ユーザーが Cloud Shell を初めて開くとき、リソース グループ、ストレージ アカウント、Azure Files 共有の作成を求められます。 この設定は、以降のすべての Cloud Shell セッションで自動的に使用されます。

Azure リージョンを選択する

"リージョン" は、1 つの地理的な場所内にある 1 つ以上の Azure データ センターです。 米国東部、米国西部、北ヨーロッパなどがリージョンの例です。 App Service インスタンスなどのすべての Azure リソースには、リージョンが割り当てられています。

コマンドをより簡単に実行するには、まず、既定のリージョンを選択します。 既定のリージョンを指定すると、別のリージョンを指定しない限り、そのリージョンが以降のコマンドで使用されます。

  1. Cloud Shell から次の az account list-locations コマンドを実行して、お使いの Azure サブスクリプションで使用可能なリージョンの一覧を表示します。

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. 出力の Name 列から、最寄りのリージョンを選択します。 たとえば、eastasia または westus2 を選択します。

  3. az configure を実行して、自分の既定のリージョンを設定します。 <REGION> を、任意のリージョン名に置き換えます。

    az configure --defaults location=<REGION>
    

    この例では、westus2 が既定のリージョンとして設定されています。

    az configure --defaults location=westus2
    

Bash 変数の作成

設定プロセスをより便利にし、エラーが発生しにくくするために、Bash 変数を作成します。 共有のテキスト文字列に変数を使用すると、偶発的な入力ミスを防ぐことができます。

  1. Cloud Shell から、ランダムな数値を生成します。 これにより、次の手順で特定のサービスのグローバルに一意の名前を簡単に作成できます。

    resourceSuffix=$RANDOM
    
  2. App Service Web アプリのグローバルに一意の名前を作成します。 このコマンドで二重引用符が使用されていることに注意してください。これは、インライン構文を使用して変数を補間するように Bash に指示するものです。

    webName="helloworld-nodejs-${resourceSuffix}"
    
  3. リソース グループと App Service プランの名前を格納するために、さらに 2 つの Bash 変数を作成します。

    rgName='hello-world-nodejs-rg'
    planName='helloworld-nodejs-plan'
    

Azure リソースの作成

このソリューションをデプロイするには、いくつかの Azure リソースが必要です。ここで、これらを作成します。

Note

学習が目的であるため、ここでは、既定のネットワーク設定を使用します。 これらの設定により、インターネットからサイトにアクセスできるようになります。 実際には、インターネットにルーティングできず、あなたやあなたのチームのみがアクセスできるネットワークに Azure 仮想ネットワークを構成して、自分の Web サイトを配置することが可能です。 後で自分のネットワークを再構成し、自分のユーザーが Web サイトを利用できるようにできます。

  1. 次の az group create コマンドを実行し、先ほど定義した名前を使用してリソース グループを作成します。

    az group create --name $rgName
    
  2. 次の az appservice plan create コマンドを実行し、先ほど定義した名前を使用して App Service プランを作成します。

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    --sku 引数は、B1 プランを指定しています。 このプランは、Basic サービス レベルで実行されます。 --is-linux 引数では、Linux ワーカーを使用するよう指定しています。

    重要

    ご自分の Azure サブスクリプションで B1 SKU を使用できない場合、S1 (Standard) などの別のプランを選択します。

  3. 次の az webapp create コマンドを実行して、App Service インスタンスを作成します。

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --runtime "node|16-lts"
    

重要

このモジュールの「Azure DevOps 環境をクリーンアップする」ページには、重要なクリーンアップ手順が含まれています。 クリーンアップは、このモジュールを完了した後に Azure リソースに対して課金されないようにするために役立ちます。 このモジュールを最後まで実行しなかったとしても、クリーンアップ手順は必ず行ってください。

作業を確認

  1. 次の az webapp list コマンドを実行して、App Service インスタンスのホスト名と状態を一覧表示します。

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    自分の実行中の各サービスのホスト名をメモします。 この Web ホスト名は、後で自分の作業を確認するときに必要です。 次に例を示します。

    HostName                             State
    -----------------------------------  -------
    helloworld-nodejs-16353.azurewebsites.net  Running
    
  2. ブラウザーでホーム ページにアクセスします。 それが実行されていることと、既定のホーム ページが表示されていることを確認します。

    次のようなページが表示されます。

    Azure App Service の既定のホーム ページのスクリーンショット。