VSTS を使用してリンク済み ARM テンプレートをデプロイする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure DevOps Services (旧称 Visual Studio Team Services、または VSTS) を使用して、リンクされた Azure Resource Manager (ARM) テンプレートをデプロイする方法について説明します。

概要

Azure への多数のコンポーネントのデプロイに対処している場合、単一の ARM テンプレートを管理して保守するのが困難な場合があります。 ARM のリンク済みテンプレートを使用すると、デプロイのモジュール性を高め、テンプレートの管理を容易にできます。 大規模なデプロイに対処している場合は、デプロイをメイン テンプレートと、デプロイのさまざまなコンポーネントを表す複数のリンク済みテンプレートに分割することを検討するよう強くお勧めします。

ARM テンプレートのデプロイは、PowerShell、Azure CLI、Azure portal の使用など、いくつかの異なる方法を使用して実行できます。 ただし、推奨されるアプローチは、DevOps の実践の 1 つである継続的デプロイを採用することです。 VSTS は、クラウドでホストされ、サービスとして提供されるアプリケーション ライフサイクル管理ツールです。 VSTS で提供されている機能の 1 つとして、リリース管理があります。

この記事では、VSTS のリリース管理機能を使用してリンク済み ARM テンプレートをデプロイする方法について説明します。 リンク済みテンプレートを適切にデプロイするには、Azure Storage など、Azure Resource Manager からアクセスできる場所に保存する必要があります。そのため、Azure Storage を使用して ARM テンプレート ファイルをステージする方法を示します。 また、Azure Key Vault を使用したシークレットの保護に関する推奨事項についても説明します。

ここで説明するシナリオでは、リンク済みテンプレートとして構造化されたネットワーク セキュリティ グループ (NSG) を使用して VNet をデプロイします。 VSTS を使用して、テンプレートに変更があるたびにチームが新しい変更で Azure を継続的に更新できるように継続的デプロイを設定する方法を示します。

Azure Storage アカウントの作成

  1. Azure portal にサインインし、こちらに記載されている手順に従って、Azure Storage アカウントを作成します。

  2. デプロイが完了したら、ストレージ アカウントに移動し、[Shared Access Signature] を選択します。 [使用できるリソースの種類] には、サービス、コンテナー、オブジェクトを選択します。 次に、[SAS と接続文字列を生成する] を選択します。 SAS トークンをコピーし、使用できるようにしておきます。後で使用します。

    Shows an Azure Storage Account in the Azure portal with Shared access signature selected.

  3. ストレージ アカウントの [コンテナー] ページを選択し、新しいコンテナーを作成します。

  4. 新しいコンテナー プロパティを選択します。

    Shows an Azure Storage Account in the Azure portal with Containers selected. There's a container with its Container properties menu selected.

  5. [URL] フィールドをコピーし、すぐに使えるようにしておきます。 後で、前の手順の SAS トークンと共に必要になります。

Azure Key Vault を使用してシークレットを保護する

  1. Azure portal で Azure Key Vault リソースを作成します。
  2. 前の手順で作成した Azure Key Vault を選択し、[シークレット] を選択します。
  3. [生成/インポート] を選択して SAS トークンを追加します。
  4. [名前] プロパティに対して StorageSASToken と入力し、前の手順でコピーした Azure Storage の Shared Access Signature キーを値として入力します。
  5. [作成] を選択します。
  1. Azure DevOps 組織にサインインし、プロジェクトに移動します。

  2. ナビゲーション ウィンドウで [パイプライン] の下の [ライブラリ] に移動します。

    Shows the navigation pane in VSTS with Pipelines selected and the Library option highlighted.

  3. [変数グループ] の下に新しいグループを作成し、[変数グループ名] として AzureKeyVaultSecrets を入力します。

  4. [シークレットを Azure Key Vault から変数としてリンクする] を切り替えます。

  5. Azure サブスクリプションを選択し、前に作成した Azure Key Vault、それから [承認] を選択します。

  6. 承認が成功したら、[追加] をクリックして変数を追加できます。その後、Azure Key Vault 内のシークレットへの参照を追加するオプションが表示されます。 前の手順で作成した StorageSASToken への参照を追加し、保存します。

VSTS を使用して継続的デプロイを設定する

  1. Azure Pipelines リリースを使用して継続的インテグレーションを自動化する」という記事に記載されている手順に従います。

  2. リンク済み ARM テンプレートのデプロイを使用するには、上記の手順でいくつかの変更が必要です。

    • リリースの下で、前に作成した変数グループをリンクします。

      Shows the pipeline Variables tab highlighting the Link variable group button.

    • リンク済み ARM テンプレート:

      • [テンプレート] については、ArmTemplateForFactory.json ではなく、ArmTemplate_master.json をポイントします。
      • [テンプレート パラメーター] については、ArmTemplateParametersForFactory.json ではなく、ArmTemplateParameters_master.json をポイントします。
    • [テンプレート パラメーターのオーバーライド] で、さらに 2 つのパラメータを更新します

      • containerUri - 前の手順で作成したコンテナーの URL を貼り付けます。
      • containerSasToken - シークレットの名前が 'StorageSASToken' であれば、この値として "$(StorageSASToken)" を入力します。
  3. リリース パイプラインを保存し、リリースをトリガーします。