チュートリアル:Resource Manager テンプレートで Azure Deployment Manager を使用する (パブリック プレビュー)Tutorial: Use Azure Deployment Manager with Resource Manager templates (Public preview)

Azure Deployment Manager を使用して、アプリケーションを複数の地域に配備する方法を学習します。Learn how to use Azure Deployment Manager to deploy your applications across multiple regions. Deployment Manager を使用するには、次の 2 つのテンプレートを作成する必要があります。To use Deployment Manager, you need to create two templates:

  • トポロジ テンプレート: アプリケーションを構成する Azure リソースとその配備先を記述します。A topology template: describes the Azure resources the make up your applications and where to deploy them.
  • ロールアウト テンプレート: アプリケーションを配備する際に行う手順を記述します。A rollout template: describes the steps to take when deploying your applications.

重要

サブスクリプションが Azure の新機能をテストするためのカナリア用としてマークされている場合は、Azure Deployment Manager を使用したカナリア リージョンへのデプロイのみが可能です。If your subscription is marked for Canary to test out new Azure features, you can only use Azure Deployment Manager to deploy to the Canary regions. 

このチュートリアルに含まれるタスクは次のとおりです。This tutorial covers the following tasks:

  • シナリオの理解Understand the scenario
  • チュートリアル ファイルのダウンロードDownload the tutorial files
  • 成果物の準備Prepare the artifacts
  • ユーザー定義マネージド ID の作成Create the user-defined managed identity
  • サービス トポロジ テンプレートの作成Create the service topology template
  • ロールアウト テンプレートの作成Create the rollout template
  • テンプレートの配備Deploy the templates
  • デプロイを検証するVerify the deployment
  • 新規バージョンの配備Deploy the newer version
  • リソースのクリーンアップClean up resources

Azure Deployment Manager REST API のリファレンスについては、こちらでご覧いただけます。The Azure Deployment Manager REST API reference can be found here.

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. インストール手順については、Azure PowerShell のインストール を参照してください。For installation instructions, see Install Azure PowerShell.

前提条件Prerequisites

この記事を完了するには、以下が必要です。To complete this article, you need:

  • Azure Resource Manager テンプレートを開発した経験がある。Some experience with developing Azure Resource Manager templates.

  • Azure Deployment Manager はプライベート プレビュー段階です。Azure Deployment Manager is in private preview. Azure Deployment Manager を使用してサインアップするには、サインアップ シートに記入してください。To sign up using Azure Deployment Manager, fill the sign-up sheet.

  • Azure PowerShell。Azure PowerShell. 詳細については、Azure PowerShell の概要に関するページを参照してください。For more information, see Get started with Azure PowerShell.

  • Deployment Manager コマンドレット。Deployment Manager cmdlets. これらのプレリリース版のコマンドレットをインストールするには、最新バージョンの PowerShellGet が必要です。To install these prerelease cmdlets, you need the latest version of PowerShellGet. 最新バージョンを入手するには、「PowerShellGet のインストール」を参照してください。To get the latest version, see Installing PowerShellGet. PowerShellGet をインストールし終えたら、PowerShell ウィンドウを閉じます。After installing PowerShellGet, close your PowerShell window. 管理者特権の PowerShell ウィンドウを新たに開き、次のコマンドを使用します。Open a new elevated PowerShell window, and use the following command:

    Install-Module -Name Az.DeploymentManager
    
  • Microsoft Azure Storage ExplorerMicrosoft Azure Storage Explorer. Azure Storage Explorer は必須ではありませんが、作業しやすくなります。Azure Storage Explorer is not required, but it makes things easier.

シナリオの理解Understand the scenario

サービス トポロジ テンプレートでは、アプリケーションを構成する Azure リソースとその配備先を記述します。The service topology template describes the Azure resources the make up your service and where to deploy them. サービス トポロジの定義には次の階層があります。The service topology definition has the following hierarchy:

  • サービス トポロジService topology
    • サービスServices
      • サービス ユニットService units

次の図は、このチュートリアルで使用されるサービス トポロジを示したものです。The following diagram illustrates the service topology used in this tutorial:

Azure Deployment Manager チュートリアルのシナリオ図

米国西部と米国東部の場所に割り当てられた 2 つのサービスがあります。There are two services allocated in the west U.S. and the east U.S. locations. 各サービスには、Web アプリケーションのフロントエンドとバックエンド用のストレージ アカウントの 2 つのサービス ユニットがあります。Each service has two service units - a web application frontend and a storage account for the backend. サービス ユニットの定義には、Web アプリケーションとストレージ アカウントを作成するためのテンプレートとパラメータ ファイルへのリンクがあります。The service unit definitions contain links to the template and parameter files for creating the web applications and the storage accounts.

チュートリアル ファイルのダウンロードDownload the tutorial files

  1. このチュートリアルで使用されるテンプレートと成果物をダウンロードします。Download the templates and the artifacts used by this tutorial.
  2. 地域のコンピューターにファイルを解凍します。Unzip the files to your location computer.

ルート フォルダーには次の 2 つのフォルダーがあります。Under the root folder, there are two folders:

  • ADMTemplates: 次を含む Deployment Manager テンプレートが収納されます。ADMTemplates: contains the Deployment Manager templates, that include:
    • CreateADMServiceTopology.jsonCreateADMServiceTopology.json
    • CreateADMServiceTopology.Parameters.jsonCreateADMServiceTopology.Parameters.json
    • CreateADMRollout.jsonCreateADMRollout.json
    • CreateADMRollout.Parameters.jsonCreateADMRollout.Parameters.json
  • ArtifactStore: テンプレート成果物とバイナリ成果物の両方が収納されます。ArtifactStore: contains both the template artifacts and the binary artifacts. 成果物の準備」を参照してください。See Prepare the artifacts.

2 種類のテンプレートがあることに注意してください。Note there are two sets of templates. 1 つは、サービス トポロジとロールアウトを配備するために使用される Deployment Manager テンプレートです。もう 1 つは、Web サービスとストレージ アカウントを作成するために、サービス ユニットから呼び出されます。One set is the Deployment Manager templates that are used to deploy the service topology and the rollout; the other set is called from the service units to create web services and storage accounts.

成果物の準備Prepare the artifacts

ダウンロードした ArtifactStore フォルダーには、次の 2 つのフォルダーがあります。The ArtifactStore folder from the download contains two folders:

Azure Deployment Manager チュートリアルの成果物ソース図

  • テンプレート フォルダー: テンプレート成果物が収納されます。The templates folder: contains the template artifacts. 1.0.0.01.0.0.1 は、バイナリ成果物の 2 つのバージョンを表します。1.0.0.0 and 1.0.0.1 represent the two versions of the binary artifacts. 各バージョン内には、各サービス (サービス米国東部とサービス米国西部) 用のフォルダーがあります。Within each version, there is a folder for each service (Service East U.S. and Service West U.S.). 各サービスには、ストレージ アカウントを作成するためのテンプレート ファイルとパラメータ ファイルのペアと、Web アプリケーションを作成するための別のペアがあります。Each service has a pair of template and parameter files for creating a storage account, and another pair for creating a web application. Web アプリケーション テンプレートは、Web アプリケーション ファイルを収納する圧縮パッケージを呼び出します。The web application template calls a compressed package, which contains the web application files. 圧縮ファイルは、バイナリ フォルダーに格納されるバイナリ成果物です。The compressed file is a binary artifact stored in the binaries folder.
  • バイナリ フォルダー: バイナリ成果物が収納されます。The binaries folder: contains the binary artifacts. 1.0.0.01.0.0.1 は、バイナリ成果物の 2 つのバージョンを表します。1.0.0.0 and 1.0.0.1 represent the two versions of the binary artifacts. 各バージョン内には、米国西部の場所で Web アプリケーションを作成するための 1 つの zip ファイルと、米国東部の場所で Web アプリケーションを作成するための別の zip ファイルがあります。Within each version, there is one zip file for creating the web application in the west U.S. location, and the other zip file to create the web application in the east U.S. location.

2 つのバージョン (1.0.0.0 と 1.0.0.1) は、リビジョン配備用です。The two versions (1.0.0.0 and 1.0.0.1) are for the revision deployment. テンプレート成果物とバイナリ成果物の両方に 2 つのバージョンがある場合でも、2 つのバージョン間で違いがあるのはバイナリ成果物のみです。Even though both the template artifacts and the binary artifacts have two versions, only the binary artifacts are different between the two versions. 実際に、バイナリ成果物はテンプレート成果物よりも頻繁に更新されます。In practice, binary artifacts are updated more frequently comparing to template artifacts.

  1. テキスト エディターで、\ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateStorageAccount.json を開きます。Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateStorageAccount.json in a text editor. これはストレージ アカウントを作成するための基本的なテンプレートです。It is a basic template for creating a storage account.

  2. \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplication.json を開きます。Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplication.json.

    Azure Deployment Manager チュートリアルでは、Web アプリケーション テンプレートを作成します。

    そのテンプレートは、Web アプリケーションのファイルを収納する配備パッケージを呼び出します。The template calls a deploy package, which contains the files of the web application. このチュートリアルでは、圧縮パッケージには index.html ファイルのみが収納されています。In this tutorial, the compressed package only contains an index.html file.

  3. \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplicationParameters.json を開きます。Open \ArtifactStore\templates\1.0.0.0\ServiceWUS\CreateWebApplicationParameters.json.

    Azure Deployment Manager チュートリアルでは、Web アプリケーション テンプレート パラメーターの containerRoot を作成します。

    deployPackageUri の値は配備パッケージへのパスです。The value of deployPackageUri is the path to the deployment package. パラメーターには $containerRoot 変数があります。The parameter contains a $containerRoot variable. $containerRoot の値は、成果物ソース SAS の場所、成果物ルート、deployPackageUri を連結することにより、ロールアウト テンプレートで提供されます。The value of $containerRoot is provided in the rollout template by concatenating the artifact source SAS location, artifact root, and deployPackageUri.

  4. \ArtifactStore\binaries\1.0.0.0\helloWorldWebAppWUS.zip\index.html を開きます。Open \ArtifactStore\binaries\1.0.0.0\helloWorldWebAppWUS.zip\index.html.

    <html>
      <head>
        <title>Azure Deployment Manager tutorial</title>
      </head>
      <body>
        <p>Hello world from west U.S.!</p>
        <p>Version 1.0.0.0</p>
      </body>
    </html>
    

    html では場所とバージョン情報が示されます。The html shows the location and the version information. 1.0.0.1 フォルダー内のバイナリ ファイルは、"Version 1.0.0.1" であることを示します。The binary file in the 1.0.0.1 folder shows "Version 1.0.0.1". サービスを配備し終えたら、これらのページを参照できます。After you deploy the service, you can browse to these pages.

  5. その他の成果物ファイルをチェックアウトします。Check out other artifact files. これは、シナリオをさらに良く理解するのに役立ちます。It helps you to understand the scenario better.

テンプレート成果物はサービス トポロジ テンプレートで使用され、バイナリ成果物はロールアウト テンプレートで使用されます。Template artifacts are used by the service topology template, and binary artifacts are used by the rollout template. トポロジー テンプレートとロールアウト テンプレートは両方とも、成果物ソースの Azure リソースを定義します。これは、配備で使用されるテンプレート成果物とバイナリー成果物に、Resource Manager をポイントするために使用されるリソースです。Both the topology template and the rollout template define an artifact source Azure resource, which is a resource used to point Resource Manager to the template and binary artifacts that are used in the deployment. チュートリアルを簡略化するために、1 つのストレージ アカウントを使用して、テンプレート成果物とバイナリ成果物を両方とも格納します。To simplify the tutorial, one storage account is used to store both the template artifacts and the binary artifacts. どちらの成果物ソースも、同じストレージ アカウントをポイントします。Both artifact sources point to the same storage account.

  1. Azure ストレージ アカウントを作成します。Create an Azure storage account. 手順については、「クイック スタート:Azure portal を使用して BLOB をアップロード、ダウンロード、および一覧表示する」を参照してください。For the instructions, see Quickstart: Upload, download, and list blobs using the Azure portal.

  2. ストレージ アカウントに BLOB コンテナーを作成します。Create a blob container in the storage account.

  3. 2 つのフォルダー (バイナリとテンプレート) と 2 つのフォルダーの内容を BLOB コンテナーにコピーします。Copy the two folders (binaries and templates) and the content of the two folders to the blob container. Microsoft Azure Storage Explorer では、ドラッグ アンド ドロップ機能をサポートしています。Microsoft Azure Storage Explorer supports the drag and drop feature.

  4. 次の手順を使用して、コンテナーの SAS の場所を取得します。Get the SAS location of the container using the following instructions:

    1. Azure Storage Explorer から BLOB コンテナーに移動します。From Azure Storage Explorer, navigate to the blob container.
    2. 左側のウィンドウで BLOB コンテナーを右クリックしたら、[Shared Access Signature の取得] を選択します。Right-click the blob container from the left pane, and then select Get Shared Access Signature.
    3. [開始時刻][有効期限] を構成します。Configure Start time and Expiry time.
    4. 作成を選択します。Select Create.
    5. URL のコピーを作成します。Make a copy of the URL. この URL は、トポロジ パラメーター ファイルロールアウト パラメーター ファイルの 2 つのパラメーター ファイルにフィールドを設定するために必要です。This URL is needed to populate a field in the two parameter files, topology parameters file and rollout parameters file.

ユーザー割り当てマネージド ID の作成Create the user-assigned managed identity

チュートリアルの後半では、ロールアウトを配備します。Later in the tutorial, you deploy a rollout. (Web アプリケーションやストレージ アカウントの配備などの) 配備操作を実行するには、ユーザー割り当てマネージド ID が必要です。A user-assigned managed identity is needed to perform the deployment actions (for example, deploy the web applications and the storage account). この ID には、サービスを配備している Azure サブスクリプションへのアクセス権が与えられている必要があり、成果物の配備を完結するには十分な権限が必要です。This identity must be granted access to the Azure subscription you're deploying the service to, and have sufficient permission to complete the artifact deployment.

ユーザー割り当てマネージド ID を作成し、サブスクリプション用にアクセス制御を構成する必要があります。You need to create a user-assigned managed identity and configure the access control for your subscription.

重要

ユーザー割り当てマネージド ID は、ロールアウトと同じ場所になければなりません。The user-assigned managed identity must be in the same location as the rollout. 現在、ロールアウトを含む Deployment Manager のリソースは、米国中部または米国東部 2 のいずれかでのみ作成できます。Currently, the Deployment Manager resources, including rollout, can only be created in either Central US or East US 2. ただし、これが該当するのは Deployment Manager のリソース (サービス トポロジ、サービス、サービス ユニット、ロールアウト、ステップなど) だけです。However, this is only true for the Deployment Manager resources (such as the service topology, services, service units, rollout, and steps). ターゲット リソースは、サポートされている任意の Azure リージョンにデプロイできます。Your target resources can be deployed to any supported Azure region. たとえば、このチュートリアルでは Deployment Manager のリソースを米国中部にデプロイしていますが、サービスのデプロイ先は米国東部と米国西部です。In this tutorial, for example, the Deployment Manager resources are deployed to Central US, but the services are deployed to East US and West US. この制限は将来解除される予定です。This restriction will be lifted in the future.

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. ユーザー割り当てマネージド ID を作成します。Create a user-assigned managed identity.

  3. ポータルから、左側のメニューで [サブスクリプション] を選択したら、お使いのサブスクリプションを選択します。From the portal, select Subscriptions from the left menu, and then select your subscription.

  4. [アクセス制御 (IAM)] を選択したら、[ロール割り当ての追加] を選択します。Select Access control (IAM), and then select Add role assignment.

  5. 次の値を入力または選択します。Enter or select the following values:

    Azure Deployment Manager チュートリアルでのユーザー割り当てマネージド ID のアクセス制御

    • ロール: 成果物の配備 (Web アプリケーションとストレージ アカウント) を完結するための十分な権限を与えます。Role: give sufficient permission to complete the artifact deployment (the web applications and the storage accounts). このチュートリアルでは、[共同作成者] を選択します。Select Contributor in this tutorial. 実際には、アクセス許可を最小限に抑えます。In practice, you want to restrict the permissions to the minimum.
    • 割り当て済みのアクセス先: [ユーザー割り当てマネージド ID] を選択します。Assigned access to: select User Assigned Managed Identity.
    • チュートリアルの前半で作成したユーザー割り当てマネージド ID を選択します。Select the user-assigned managed identity you created earlier in the tutorial.
  6. [保存] を選択します。Select Save.

サービス トポロジ テンプレートの作成Create the service topology template

\ADMTemplates\CreateADMServiceTopology.json を開きます。Open \ADMTemplates\CreateADMServiceTopology.json.

パラメーターThe parameters

テンプレートには、次のパラメーターが収納されています。The template contains the following parameters:

Azure Deployment Manager チュートリアルのトポロジ テンプレート パラメーター

  • namePrefix:このプレフィックスは、Deployment Manager リソース用の名前を作成するために使用されます。namePrefix: This prefix is used to create the names for the Deployment Manager resources. たとえば、サービス トポロジの名前は、"jdoe" プレフィックスを使用して、jdoeServiceTopology とします。For example, using the "jdoe" prefix, the service topology name is jdoeServiceTopology. リソース名は、このテンプレートの変数セクションで定義されます。The resource names are defined in the variables section of this template.
  • azureResourcelocation:チュートリアルを簡略化するため、特に指定しない限り、すべてのリソースはこの場所を共有します。azureResourcelocation: To simplify the tutorial, all resources share this location unless it is specified otherwise. 現在、Deployment Manager のリソースは、米国中部または米国東部 2 のいずれかでのみ作成できます。Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.
  • artifactSourceSASLocation:配備用にサービス ユニットのテンプレートとパラメーターのファイルが格納されている BLOB コンテナーへのSAS URI です。artifactSourceSASLocation: The SAS URI to the Blob container where service unit template and parameters files are stored for deployment. 成果物の準備」を参照してください。See Prepare the artifacts.
  • templateArtifactRoot:テンプレートとパラメーターが格納されている BLOB コンテナーからのオフセット パスです。templateArtifactRoot: The offset path from the Blob container where the templates and parameters are stored. 既定値は templates/1.0.0.0 です。The default value is templates/1.0.0.0. 成果物の準備」で説明されているフォルダー構造を変更しない限り、この値を変更しないでください。Don't change this value unless you want to change the folder structure explained in Prepare the artifacts. このチュートリアルでは、相対パスを使用します。Relative paths are used in this tutorial. フルパスは、artifactSourceSASLocationtemplateArtifactRoottemplateArtifactSourceRelativePath (または parametersArtifactSourceRelativePath) を連結することで構成されます。The full path is constructed by concatenating artifactSourceSASLocation, templateArtifactRoot, and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).
  • targetSubscriptionID:Deployment Manager のリソースが配備され、請求される予定のサブスクリプションID です。targetSubscriptionID: The subscription ID to which the Deployment Manager resources are going to be deployed and billed. このチュートリアルでは、サブスクリプション ID を使用します。Use your subscription ID in this tutorial.

変数The variables

変数セクションでは、リソースの名前、2 つのサービス(サービス WUSサービス EUS) に対する Azure の場所、および次の成果物のパスを定義します。The variables section defines the names of the resources, the Azure locations for the two services: Service WUS and Service EUS, and the artifact paths:

Azure Deployment Manager チュートリアルのトポロジ テンプレート変数

成果物パスを、ストレージ アカウントにアップロードしたフォルダー構造と比較します。Compare the artifact paths with the folder structure that you uploaded to the storage account. 成果物パスは相対パスであることに注意してください。Notice the artifact paths are relative paths. フルパスは、artifactSourceSASLocationtemplateArtifactRoottemplateArtifactSourceRelativePath (または parametersArtifactSourceRelativePath) を連結することで構成されます。The full path is constructed by concatenating artifactSourceSASLocation, templateArtifactRoot, and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).

リソースThe resources

ルート レベルでは、成果物ソースサービス トポロジーの 2 つのリソースが定義されています。On the root level, there are two resources defined: an artifact source, and a service topology.

成果物ソースの定義は次のとおりです。The artifact source definition is:

Azure Deployment Manager チュートリアルのトポロジ テンプレート リソース成果物ソース

次のスクリーンショットでは、サービス トポロジ、サービス、サービス ユニットの定義の一部のみを示しています。The following screenshot only shows some parts of the service topology, services, and service units definitions:

Azure Deployment Manager チュートリアルのトポロジ テンプレート リソース サービス トポロジ

  • artifactSourceId は、成果物ソース リソースをサービス トポロジ リソースに関連付けるために使用されます。artifactSourceId is used to associate the artifact source resource to the service topology resource.
  • dependsOn:すべてのサービス トポロジ リソースは、成果物ソース リソースに依存します。dependsOn: All the service topology resources depend on the artifact source resource.
  • artifacts は、テンプレート成果物をポイントします。artifacts point to the template artifacts. ここでは相対パスが使用されます。Relative paths are used here. フルパスは、artifactSourceSASLocation (成果物ソースで定義される)、artifactRoot (成果物ソースで定義される)、templateArtifactSourceRelativePath (または parametersArtifactSourceRelativePath) を連結することで構成されます。The full path is constructed by concatenating artifactSourceSASLocation (defined in the artifact source), artifactRoot (defined in the artifact source), and templateArtifactSourceRelativePath (or parametersArtifactSourceRelativePath).

トポロジ パラメーター ファイルTopology parameters file

トポロジ テンプレートで使用されるパラメーター ファイルを作成します。You create a parameters file used with the topology template.

  1. Visual Studio Code またはいずれかのテキスト エディターで、\ADMTemplates\CreateADMServiceTopology.Parameters を開きます。Open \ADMTemplates\CreateADMServiceTopology.Parameters in Visual Studio Code or any text editor.

  2. 次のパラメーター値を記入します。Fill the parameter values:

    • namePrefix:4-5 文字の文字列を入力します。namePrefix: Enter a string with 4-5 characters. このプレフィックスは、固有の azure リソース名を作成するために使用されます。This prefix is used to create unique azure resource names.
    • azureResourceLocation:Azure の場所が不明な場合、このチュートリアルでは centralus を使用してください。azureResourceLocation: If you are not familiar with Azure locations, use centralus in this tutorial.
    • artifactSourceSASLocation:配備用にサービス ユニットのテンプレートとパラメーターのファイルが格納されているルート ディレクトリ (BLOB コンテナー) への SAS URI を入力します。artifactSourceSASLocation: Enter the SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. 成果物の準備」を参照してください。See Prepare the artifacts.
    • templateArtifactRoot:成果物のフォルダー構造を変更しない限り、このチュートリアルでは templates/1.0.0.0 を使用してください。templateArtifactRoot: Unless you change the folder structure of the artifacts, use templates/1.0.0.0 in this tutorial.
    • targetScriptionID:Azure サブスクリプション ID を入力します。targetScriptionID: Enter your Azure subscription ID.

重要

トポロジ テンプレートとロールアウト テンプレートでは、いくつかの共通パラメーターを共有します。The topology template and the rollout template share some common parameters. これらのパラメーターは、同じ値でなければなりません。These parameters must have the same values. これらのパラメーターとは、namePrefixazureResourceLocationartifactSourceSASLocation のことです (このチュートリアルでは、どちらの成果物ソースも同じストレージ アカウントを共有します)。These parameters are: namePrefix, azureResourceLocation, and artifactSourceSASLocation (both artifact sources share the same storage account in this tutorial).

ロールアウト テンプレートの作成Create the rollout template

\ADMTemplates\CreateADMRollout.json を開きます。Open \ADMTemplates\CreateADMRollout.json.

パラメーターThe parameters

テンプレートには、次のパラメーターが収納されています。The template contains the following parameters:

Azure Deployment Manager チュートリアルのロールアウト テンプレート パラメーター

  • namePrefix:このプレフィックスは、Deployment Manager リソース用の名前を作成するために使用されます。namePrefix: This prefix is used to create the names for the Deployment Manager resources. たとえば、ロールアウト名は、"jdoe" プレフィックスを使用して、jdoeRollout とします。For example, using the "jdoe" prefix, the rollout name is jdoeRollout. その名前は、テンプレートの変数セクションで定義されます。The names are defined in the variables section of the template.
  • azureResourcelocation:チュートリアルを簡略化するため、特に指定しない限り、すべての Deployment Manager リソースはこの場所を共有します。azureResourcelocation: To simplify the tutorial, all Deployment Manager resources share this location unless it is specified otherwise. 現在、Deployment Manager のリソースは、米国中部または米国東部 2 のいずれかでのみ作成できます。Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.
  • artifactSourceSASLocation:配備用にサービス ユニットのテンプレートとパラメーターのファイルが格納されているルート ディレクトリ (BLOB コンテナー) への SAS URI です。artifactSourceSASLocation: The SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. 成果物の準備」を参照してください。See Prepare the artifacts.
  • binaryArtifactRoot:既定値は binaries/1.0.0.0 です。binaryArtifactRoot: The default value is binaries/1.0.0.0. 成果物の準備」で説明されているフォルダー構造を変更しない限り、この値を変更しないでください。Don't change this value unless you want to change the folder structure explained in Prepare the artifacts. このチュートリアルでは、相対パスを使用します。Relative paths are used in this tutorial. フルパスは、CreateWebApplicationParameters.json で指定されている artifactSourceSASLocationbinaryArtifactRootdeployPackageUri を連結することで構成されます。The full path is constructed by concatenating artifactSourceSASLocation, binaryArtifactRoot, and the deployPackageUri specified in the CreateWebApplicationParameters.json. 成果物の準備」を参照してください。See Prepare the artifacts.
  • managedIdentityID:配備操作を実行するユーザー割り当てマネージド ID です。managedIdentityID: The user-assigned managed identity that performs the deployment actions. ユーザー割り当てマネージド ID の作成」を参照してください。See Create the user-assigned managed identity.

変数The variables

変数セクションでは、リソースの名前を定義します。The variables section defines the names of the resources. サービス トポロジ名、サービス名、サービス ユニット名が、トポロジ テンプレートで定義されている名前と一致していることを確認してください。Make sure the service topology name, the service names, and the service unit names match the names defined in the topology template.

Azure Deployment Manager チュートリアルのロールアウト テンプレート変数

リソースThe resources

ルート レベルでは、成果物ソース、手順、ロールアウトの 3 つのリソースが定義されています。On the root level, there are three resources defined: an artifact source, a step, and a rollout.

成果物ソースの定義は、トポロジ テンプレートで定義されているものと同じです。The artifact source definition is identical to the one defined in the topology template. 詳細については、「サービス トポロジ テンプレートの作成」を参照してください。See Create the service topology template for more information.

次のスクリーンショットでは、待機手順の定義を示しています。The following screenshot shows the wait step definition:

Azure Deployment Manager チュートリアルのロールアウト テンプレート リソース待機手順

期間には ISO 8601 標準を使用しています。The duration is using the ISO 8601 standard. PT1M (大文字必須) は 1 分間の待機の例です。PT1M (capital letters are required) is an example of a 1-minute wait.

次のスクリーンショットでは、ロールアウトの定義の一部のみを示しています。The following screenshot only shows some parts of the rollout definition:

Azure Deployment Manager チュートリアルのロールアウト テンプレート リソース ロールアウト

  • dependsOn:ロールアウト リソースは、成果物ソース リソースに、そして定義されているいずれかの手順に依存します。dependsOn: The rollout resource depends on the artifact source resource, and any of the steps defined.
  • artifactSourceId: 成果物ソース リソースをロールアウト リソースに関連付けるために使用されます。artifactSourceId: used to associate the artifact source resource to the rollout resource.
  • targetServiceTopologyId: サービス トポロジ リソースをロールアウト リソースに関連付けるために使用されます。targetServiceTopologyId: used to associate the service topology resource to the rollout resource.
  • deploymentTargetId:サービス トポロジ リソースのサービス ユニット リソース ID です。deploymentTargetId: It is the service unit resource ID of the service topology resource.
  • preDeploymentStepspostDeploymentSteps: ロールアウト手順が記載されます。preDeploymentSteps and postDeploymentSteps: contains the rollout steps. テンプレートでは、待機手順が呼び出されます。In the template, a wait step is called.
  • dependsOnStepGroups: 手順グループ間での依存関係を構成します。dependsOnStepGroups: configure the dependencies between the step groups.

ロールアウト パラメーター ファイルRollout parameters file

ロールアウト テンプレートで使用されるパラメーター ファイルを作成します。You create a parameters file used with the rollout template.

  1. Visual Studio Code またはいずれかのテキスト エディターで、\ADMTemplates\CreateADMRollout.Parameters を開きます。Open \ADMTemplates\CreateADMRollout.Parameters in Visual Studio Code or any text editor.

  2. 次のパラメーター値を記入します。Fill the parameter values:

    • namePrefix:4-5 文字の文字列を入力します。namePrefix: Enter a string with 4-5 characters. このプレフィックスは、固有の azure リソース名を作成するために使用されます。This prefix is used to create unique azure resource names.

    • azureResourceLocation:現在、Deployment Manager のリソースは、米国中部または米国東部 2 のいずれかでのみ作成できます。azureResourceLocation: Currently, Azure Deployment Manager resources can only be created in either Central US or East US 2.

    • artifactSourceSASLocation:配備用にサービス ユニットのテンプレートとパラメーターのファイルが格納されているルート ディレクトリ (BLOB コンテナー) への SAS URI を入力します。artifactSourceSASLocation: Enter the SAS URI to the root directory (the Blob container) where service unit template and parameters files are stored for deployment. 成果物の準備」を参照してください。See Prepare the artifacts.

    • binaryArtifactRoot:成果物のフォルダー構造を変更しない限り、このチュートリアルでは binaries/1.0.0.0 を使用してください。binaryArtifactRoot: Unless you change the folder structure of the artifacts, use binaries/1.0.0.0 in this tutorial.

    • managedIdentityID:ユーザー割り当てマネージド ID を入力します。managedIdentityID: Enter the user-assigned managed identity. ユーザー割り当てマネージド ID の作成」を参照してください。See Create the user-assigned managed identity. の構文は次のとおりです。The syntax is:

      "/subscriptions/<SubscriptionID>/resourcegroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userassignedidentities/<ManagedIdentityName>"
      

重要

トポロジ テンプレートとロールアウト テンプレートでは、いくつかの共通パラメーターを共有します。The topology template and the rollout template share some common parameters. これらのパラメーターは、同じ値でなければなりません。These parameters must have the same values. これらのパラメーターとは、namePrefixazureResourceLocationartifactSourceSASLocation のことです (このチュートリアルでは、どちらの成果物ソースも同じストレージ アカウントを共有します)。These parameters are: namePrefix, azureResourceLocation, and artifactSourceSASLocation (both artifact sources share the same storage account in this tutorial).

テンプレートの配備Deploy the templates

Azure PowerShell を使用すればテンプレートを配備できます。Azure PowerShell can be used to deploy the templates.

  1. サービス トポロジを配備するには、スクリプトを実行します。Run the script to deploy the service topology.

    $resourceGroupName = "<Enter a Resource Group Name>"
    $location = "Central US"  
    $filePath = "<Enter the File Path to the Downloaded Tutorial Files>"
    
    # Create a resource group
    New-AzResourceGroup -Name $resourceGroupName -Location "$location"
    
    # Create the service topology
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$filePath\ADMTemplates\CreateADMServiceTopology.json" `
        -TemplateParameterFile "$filePath\ADMTemplates\CreateADMServiceTopology.Parameters.json"
    

    注意

    New-AzResourceGroupDeployment は非同期呼び出しです。New-AzResourceGroupDeployment is an asynchronous call. 成功メッセージは、デプロイが正常に開始されたことだけを意味します。The success message only means the deployment has successfully begun. デプロイを確認するには、この手順の手順 2. と手順 4. を参照してください。To verify the deployment, see step 2 and step 4 of this procedure.

  2. サービス トポロジと下線付きのリソースが、Azure portal を使用することで正常に作成されていることを確認します。Verify the service topology and the underlined resources have been created successfully using the Azure portal:

    Azure Deployment Manager チュートリアルの配備済みサービス トポロジ リソース

    リソースを参照するには、[非表示型の表示] を選択する必要があります。Show hidden types must be selected to see the resources.

  3. 次のロールアウト テンプレートをデプロイします。Deploy the rollout template:

    # Create the rollout
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$filePath\ADMTemplates\CreateADMRollout.json" `
        -TemplateParameterFile "$filePath\ADMTemplates\CreateADMRollout.Parameters.json"
    
  4. 次の PowerShell スクリプトを使用して、ロールアウトの進行状況を確認します。Check the rollout progress using the following PowerShell script:

    # Get the rollout status
    $rolloutname = "<Enter the Rollout Name>" # "adm0925Rollout" is the rollout name used in this tutorial
    Get-AzDeploymentManagerRollout `
        -ResourceGroupName $resourceGroupName `
        -Name $rolloutName `
        -Verbose
    

    このコマンドレットを実行する前に、Deployment Manager PowerShell コマンドレットをインストールする必要があります。The Deployment Manager PowerShell cmdlets must be installed before you can run this cmdlet. 「前提条件」を参照してください。See Prerequisites. -Verbose スイッチを使用すると、出力全体を表示することができます。The -Verbose switch can be used to see the whole output.

    次のサンプルでは、実行状況を示しています。The following sample shows the running status:

    VERBOSE:
    
    Status: Succeeded
    ArtifactSourceId: /subscriptions/<AzureSubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/artifactSources/adm0925ArtifactSourceRollout
    BuildVersion: 1.0.0.0
    
    Operation Info:
        Retry Attempt: 0
        Skip Succeeded: False
        Start Time: 03/05/2019 15:26:13
        End Time: 03/05/2019 15:31:26
        Total Duration: 00:05:12
    
    Service: adm0925ServiceEUS
        TargetLocation: EastUS
        TargetSubscriptionId: <AzureSubscriptionID>
    
        ServiceUnit: adm0925ServiceEUSStorage
            TargetResourceGroup: adm0925ServiceEUSrg
    
            Step: Deploy
                Status: Succeeded
                StepGroup: stepGroup3
                Operation Info:
                    DeploymentName: 2F535084871E43E7A7A4CE7B45BE06510adm0925ServiceEUSStorage
                    CorrelationId: 0b6f030d-7348-48ae-a578-bcd6bcafe78d
                    Start Time: 03/05/2019 15:26:32
                    End Time: 03/05/2019 15:27:41
                    Total Duration: 00:01:08
                Resource Operations:
    
                    Resource Operation 1:
                    Name: txq6iwnyq5xle
                    Type: Microsoft.Storage/storageAccounts
                    ProvisioningState: Succeeded
                    StatusCode: OK
                    OperationId: 64A6E6EFEF1F7755
    
    ...
    
    ResourceGroupName       : adm0925rg
    BuildVersion            : 1.0.0.0
    ArtifactSourceId        : /subscriptions/<SubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/artifactSources/adm0925ArtifactSourceRollout
    TargetServiceTopologyId : /subscriptions/<SubscriptionID>/resourceGroups/adm0925rg/providers/Microsoft.DeploymentManager/serviceTopologies/adm0925ServiceTopology
    Status                  : Running
    TotalRetryAttempts      : 0
    OperationInfo           : Microsoft.Azure.Commands.DeploymentManager.Models.PSRolloutOperationInfo
    Services                : {adm0925ServiceEUS, adm0925ServiceWUS}
    Name                    : adm0925Rollout
    Type                    : Microsoft.DeploymentManager/rollouts
    Location                : centralus
    Id                      : /subscriptions/<SubscriptionID>/resourcegroups/adm0925rg/providers/Microsoft.DeploymentManager/rollouts/adm0925Rollout
    Tags                    :
    

    ロールアウトが正常に配備されたら、サービスごとに 1 つずつの、2 つのリソース グループがさらに作成されていることがわかります。After the rollout is deployed successfully, you shall see two more resource groups created, one for each service.

デプロイを検証するVerify the deployment

  1. Azure Portalを開きます。Open the Azure portal.
  2. ロールアウトの配備によって作成された新しいリソース グループの下で、新たに作成された Web アプリケーションを参照します。Browse to the newly create web applications under the new resource groups created by the rollout deployment.
  3. Web ブラウザーで、その Web アプリケーションを開きます。Open the web application in a web browser. index.html ファイルの場所とバージョンを確認します。Verify the location and the version on the index.html file.

リビジョンの配備Deploy the revision

Web アプリケーションに新しいバージョン (1.0.0.1) がある場合。When you have a new version (1.0.0.1) for the web application. 次の手順を使用すれば、Web アプリケーションを配備し直すことができます。You can use the following procedure to redeploy the web application.

  1. CreateADMRollout.Parameters.json を開きます。Open CreateADMRollout.Parameters.json.
  2. binaryArtifactRootbinaries/1.0.0.1 に更新します。Update binaryArtifactRoot to binaries/1.0.0.1.
  3. テンプレートの配備」の指示に従って、ロールアウトを再配備します。Redeploy the rollout as instructed in Deploy the templates.
  4. 配備の検証」の指示に従って、配備を検証します。Verify the deployment as instructed in Verify the deployment. Web ページでは、1.0.0.1 のバージョンであることを示すはずです。The web page shall show the 1.0.0.1 version.

リソースのクリーンアップClean up resources

Azure リソースが不要になったら、リソース グループを削除して、デプロイしたリソースをクリーンアップします。When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. Azure portal で、左側のメニューから [リソース グループ] を選択します。From the Azure portal, select Resource group from the left menu.

  2. [名前でフィルタリング] フィールドを使用して、このチュートリアルで作成したリソース グループを絞り込みます。Use the Filter by name field to narrow down the resource groups created in this tutorial. 次の 3-4 になります。There shall be 3-4:

    • <namePrefix>rg: Deployment Manager リソースが収納されます。<namePrefix>rg: contains the Deployment Manager resources.
    • <namePrefix>ServiceWUSrg: ServiceWUS によって定義されたリソースが収納されます。<namePrefix>ServiceWUSrg: contains the resources defined by ServiceWUS.
    • <namePrefix>ServiceEUSrg: ServiceEUS によって定義されたリソースが収納されます。<namePrefix>ServiceEUSrg: contains the resources defined by ServiceEUS.
    • ユーザー定義マネージド ID 用のリソース グループです。The resource group for the user-defined managed identity.
  3. リソース グループ名を選択します。Select the resource group name.

  4. トップ メニューから [リソース グループの削除] を選択します。Select Delete resource group from the top menu.

  5. このチュートリアルで作成した他のリソース グループを削除するには、最後の 2 つの手順を繰り返します。Repeat the last two steps to delete other resource groups created by this tutorial.

次の手順Next steps

このチュートリアルでは、Azure Deployment Manager を使用する方法について学習しました。In this tutorial, you learned how to use Azure Deployment Manager. Azure Deployment Manager に正常性の監視を統合する場合は、「Tutorial:Use health check in Azure Deployment Manager」 (チュートリアル: Azure Deployment Manager で正常性チェックを使用する) を参照してください。To integrate health monitoring in Azure Deployment Manager, see Tutorial: Use health check in Azure Deployment Manager.