Azure Resource Manager の体験版

Note

体験版は既に非推奨になっています。 体験版に代わる方法として、無料試用版への移行を検討することをお勧めします。お客様は、カスタマイズされた設定と構成を使用して、特定の要件を満たして、製品に完全に関わる機会を提供します。 オファーから体験版を削除し、体験版環境をクリーンアップすることをお勧めします。

この種類は、Azure Marketplace または AppSource にオファーがあっても、体験版は Azure リソースだけでビルドさせたい場合に使用します。 Azure Resource Manager (ARM) テンプレートは、ソリューションが最適に表現されるように設計する Azure リソースのコード化されたコンテナーです。 体験版では、提供された ARM テンプレートが取得されて、必要なすべてのリソースがリソース グループにデプロイされます。 これは、仮想マシンまたは Azure アプリのオファーの唯一の体験版オプションです。

ARM テンプレートの内容に慣れていない場合は、「azure Resource Manager とは azure Resource Manager とは し、 ARM テンプレートの構造と構文について理解を深め 独自のテンプレートをビルドしてテストする方法について理解を深めます。

ホストされた体験版またはロジック アプリの体験版については、「体験版とは」を参照してください。

ヒント

コマーシャル マーケットプレースでの体験版の顧客のビューを表示するには、「Azure Marketplace とは」や「Microsoft AppSource とは」を参照してください。

技術的な構成

デプロイ テンプレートには、ソリューションを構成しているすべての Azure リソースが含まれています。 このシナリオに適合するのは、Azure リソースしか使用されていない製品です。 パートナー センターで次のプロパティを設定します。

  • リージョン (必須) – 現在、体験版を利用可能にできるサポート対象の Azure リージョンは 26 か所です。 最適なパフォーマンスを得るために、顧客の数が最も多いと思われるリージョンを選択することをお勧めします。 選択している各リージョンで必要なすべてのリソースのデプロイがサブスクリプションで許可されていることを確認する必要があります。

  • インスタンス – 使用可能なインスタンスの種類 (ホットまたはコールド) と数を選択します。この数に、ご自身のオファーが利用可能なリージョンの数が乗算されます。

    • [ホット] – この種類のインスタンスは選択したリージョンごとにデプロイされ、アクセスを待ちます。 顧客は、デプロイを待つことなく体験版の "ホット" インスタンスにすぐにアクセスできます。 トレードオフとして、これらのインスタンスは常に Azure サブスクリプションで実行されるため、アップタイム コストが大きくなります。 ほとんどのお客様は完全なデプロイを待ちたくないので、少なくとも 1 つの Hot インスタンスを用意することを強くお勧めします。そのため、 Hot インスタンスを使用できない場合は、顧客の使用状況が低下します。

    • コールド – この種類のインスタンスは、リージョンごとにデプロイできる可能性があるインスタンスの総数を表します。 コールド インスタンスでは、顧客が体験版を要求したときのデプロイ用に体験版の完全な Resource Manager テンプレートが必要です。そのため、"コールド" インスタンスでは、読み込みが "ホット" インスタンスよりもはるかに遅くなります。 トレードオフは、体験版の期間中にのみ支払う必要があるということです。 Hot インスタンスと同様に、Azure サブスクリプションで常に実行されているわけではありません*。

  • 体験版の Azure Resource Manager テンプレート – 目的の Azure Resource Manager テンプレートが含まれている .zip をアップロードします。 Azure Resource Manager テンプレートの作成については、記事「クイック スタート: Azure portal を使用した Azure Resource Manager テンプレートの作成とデプロイ」を参照してください。

    Note

    正常に公開するには、ARM テンプレートのフォーマットを検証することが重要です。 これを行うには、(1) オンライン API ツールを使用するか、(2) テスト配置を使用するという 2 つの方法があります。

  • [体験版の期間] (必須) – 体験版が有効である時間数を入力します。 この期間が終わると、体験版は自動的に終了します。 整数のみを使用します (たとえば、"2" 時間は有効です。"1.5" は有効ではありません)。

体験版テンプレートを作成する

目的のリソース パッケージを設計したら、体験版 ARM テンプレートを作成してビルドします。 体験版では完全自動モードでデプロイが実行されるので、体験版テンプレートにはいくつかの制限があります。

パラメーター

ほとんどのテンプレートには、リソース名、リソースのサイズ (ストレージ アカウントの種類や仮想マシンのサイズなど)、ユーザー名とパスワード、DNS 名などを定義するパラメーターのセットがあります。 Azure portal を使用してソリューションをデプロイするときは、手動でこれらすべてのパラメーターを設定し、使用可能な DNS 名やストレージ アカウント名などを選択できます。

Azure Resource Manager のパラメーターの一覧

ただし、体験版は自動的に動作し、人間が介入しないので、サポートされるパラメーター カテゴリのセットに制限があります。 体験版の ARM テンプレートのパラメーターがサポートされているカテゴリのどれにも該当しない場合は、このパラメーターを変数または定数値に置き換える必要があります。

任意の有効なパラメーター名を使用できます。体験版では、メタデータ型の値を使用してパラメーターのカテゴリが認識されます。 すべてのテンプレート パラメーターにメタデータの種類を指定します。それ以外の場合、テンプレートは検証に合格しません。

"parameters": {
  ...
  "username": {
    "type": "string",
    "metadata": {
      "type": "username"
    }
  },
  ...
}

Note

すべてのパラメーターは省略可能であるため、使用したくない場合は、使用する必要はありません。

使用できるパラメーター メタデータの種類

メタデータの種類 パラメーターの型 説明 サンプル値
baseuri string デプロイ パッケージのベース URI https://<..>.blob.core.windows.net/<..>
username string 新しいランダムなユーザー名。 admin68876
password secure string 新しいランダムなパスワード Lp!ACS^2kh
session id string 一意の体験版セッション ID (GUID) b8c8693e-5673-449c-badd-257a405a6dee

baseuri

体験版では、このパラメーターがデプロイ パッケージのベース URI で初期化されるので、このパラメーターを使用して、パッケージに含まれるファイルの URI を作成できます。

Note

baseUri パラメーターは、カスタム スクリプト拡張機能と組み合わせて使用することはできません。

"parameters": {
  ...
  "baseuri": {
    "type": "string",
    "metadata": {
      "type": "baseuri",
      "description": "Base Uri of the deployment package."
    }
  },
  ...
}

体験版のデプロイ パッケージからファイルの URI を作成するには、テンプレート内でこのパラメーターを使用します。 次の例では、リンクされたテンプレートの URI を作成する方法を示します。

"templateLink": {
  "uri": "[concat(parameters('baseuri'),'templates/solution.json')]",
  "contentVersion": "1.0.0.0"
}

username

体験版では、このパラメーターは新しいランダムなユーザー名で初期化されます。

"parameters": {
  ...
  "username": {
    "type": "string",
    "metadata": {
      "type": "username",
      "description": "Solution admin name."
    }
  },
  ...
}

値の例: admin68876

ソリューションではランダムなユーザー名または固定のユーザー名を使用できます。

password

体験版では、このパラメーターは新しいランダムなパスワードで初期化されます。

"parameters": {
  ...
  "password": {
    "type": "securestring",
    "metadata": {
      "type": "password",
      "description": "Solution admin password."
    }
  },
  ...
}

値の例: Lp!ACS^2kh

ソリューションではランダムなパスワードまたは固定のパスワードを使用できます。

セッション ID

体験版では、このパラメーターは体験版のセッション ID を表す一意の GUID で初期化されます。

"parameters": {
  ...
  "sessionid": {
    "type": "string",
    "metadata": {
      "type": "sessionid",
      "description": "Unique test drive session id."
    }
  },
  ...
}

値の例: b8c8693e-5673-449c-badd-257a405a6dee

必要な場合は、このパラメーターを使用して体験版のセッションを一意に識別できます。

一意の名前

ストレージ アカウントや DNS 名などの一部の Azure リソースには、グローバルに一意の名前が必要です。 つまり、体験版で ARM テンプレートがデプロイされるたびに、そのすべてのリソースに対して一意の名前で新しいリソース グループが作成されます。 したがって、リソース グループ ID では uniquestring 関数と変数名を連結して、ランダムな一意の値を生成する必要があります。

"variables": {
  ...
  "domainNameLabel": "[concat('contosovm',uniquestring(resourceGroup().id))]",
  "storageAccountName": "[concat('contosodisk',uniquestring(resourceGroup().id))]",
  ...
}

パラメーターおよび変数文字列 (contosovm) と一意の文字列出力 (resourceGroup().id) を必ず連結します。このようにすると、各変数の一意性と信頼性が保証されます。

たとえば、ほとんどのリソース名は数字で始めることはできませんが、一意の文字列関数は数字で始まる文字列を返すことができます。 そのため、一意の文字列出力をそのまま使用すると、デプロイは失敗します。

リソースの名前付け規則と制限に関する追加情報については、「 Azure リソースの名前付けおよびタグ付け戦略を開発するを参照してください。

デプロイの場所

体験版を様々な Azure リージョンで使用できるようにすることができます。

体験版でラボのインスタンスが作成されると必ず、ユーザーが選択したリージョンのいずれかにリソース グループが作成され、そのグループのコンテキストでデプロイ テンプレートが実行されます。 そのため、テンプレートでは、リソース グループからデプロイの場所を選択する必要があります。

"variables": {
  ...
  "location": "[resourceGroup().location]",
  ...
}

その後は、特定のラボ インスタンスに対するすべてのリソースでこの場所を使用します。

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "location": "[variables('location')]",
    ...
  },
  {
    "type": "Microsoft.Network/publicIPAddresses",
    "location": "[variables('location')]",
    ...
  },
  {
    "type": "Microsoft.Network/virtualNetworks",
    "location": "[variables('location')]",
    ...
  },
  {
    "type": "Microsoft.Network/networkInterfaces",
    "location": "[variables('location')]",
    ...
  },
  {
    "type": "Microsoft.Compute/virtualMachines",
    "location": "[variables('location')]",
    ...
  }
]

選択した各リージョンで必要なすべてのリソースのデプロイが、お使いのサブスクリプションで許可されていることを確認します。 また、有効にするすべてのリージョンで仮想マシン イメージを使用できることを確認します。そうしないと、一部のリージョンではデプロイ テンプレートが機能しません。

出力

通常、Resource Manager テンプレートでは、出力を生成せずにデプロイを実行できます。 これは、テンプレート パラメーターの設定に使用するすべての値がわかっており、常に任意のリソースのプロパティを手動で検査できるためです。

ただし、体験版の Resource Manager テンプレートでは、すべての情報を体験版に返すことが重要です。これは、ラボにアクセスするために必要です (Web サイトの URI、仮想マシンのホスト名、ユーザー名、パスワード)。 これらの変数は顧客に表示されるため、すべての出力名が判読可能であることを確認します。

テンプレートの出力に関する制限はありません。 体験版ではすべての出力値が文字列に変換されるので、出力にオブジェクトを送信した場合、ユーザーには JSON 文字列が表示されます。

例:

"outputs": {
  "Host Name": {
    "type": "string",
    "value": "[reference(variables('pubIpId')).dnsSettings.fqdn]"
  },
  "User Name": {
    "type": "string",
    "value": "[parameters('adminName')]"
  },
  "Password": {
    "type": "string",
    "value": "[parameters('adminPassword')]"
  }
}

サブスクリプションの制限

サブスクリプションとサービスの制限について忘れないでください。 たとえば、最大 10 個の 4 コア仮想マシンをデプロイする場合、ラボに使用するサブスクリプションで 40 コアの使用が許可されていることを確認する必要があります。 Azure のサブスクリプションとサービスの制限について詳しくは、「Azure サブスクリプションとサービスの制限、クォータ、制約」を参照してください。 複数の体験版が同時に使用される可能性があるので、コアの数に同時実行できる体験版の合計数を掛けた値を、サブスクリプションで処理できることを確認します。

アップロードするもの

体験版の ARM テンプレートは zip ファイルとしてアップロードされ、それにはさまざまなデプロイ成果物を含めることができますが、main-template.json という名前のファイルが 1 つ含まれている必要があります。 これは、体験版でラボをインスタンス化するために使用される ARM デプロイ テンプレートです。 このファイル以外の追加リソースがある場合は、テンプレートの内部でそれを外部リソースとして参照するか、または zip ファイルにそれを含めることができます。

証明書を発行する間に、体験版によってデプロイ パッケージが解凍され、その内容が体験版の内部 BLOB コンテナーに格納されます。 コンテナーの構造は、デプロイ パッケージの構造を反映しています。

package.zip 体験版 BLOB コンテナー
main-template.json https:\//\<\...\>.blob.core.windows.net/\<\...\>/main-template.json
templates/solution.json https:\//\<\...\>.blob.core.windows.net/\<\...\>/templates/solution.json
scripts/warmup.ps1 https:\//\<\...\>.blob.core.windows.net/\<\...\>/scripts/warmup.ps1

この BLOB コンテナーの URI をベース URI と呼びます。 ラボのすべてのリビジョンには固有の BLOB コンテナーがあるので、ラボのすべてのリビジョンは固有のベース URI を持っています。 体験版では、テンプレート パラメーターを使用して、解凍されたデプロイ パッケージのベース URI をテンプレートに渡すことができます。

体験版のテンプレート変換の例

リソースのアーキテクチャを体験版の Resource Manager テンプレートに変換するプロセスは、難しい場合があります。 詳細については、「体験版とは」で、現在のデプロイ テンプレートを変換する最適な方法の例を参照してください。

体験版のデプロイ サブスクリプションの詳細

最後のセクションでは、Azure サブスクリプションと Microsoft Entra ID を接続することで、体験版を自動的にデプロイできるようにすることです。

  1. Azure サブスクリプション ID を取得します。 Azure サービスと Azure portal へのアクセス権を付与します。 このサブスクリプションで、リソースの使用状況が報告され、サービスが課金されます。 体験版専用の別の Azure サブスクリプションがまだない場合は、1 つ作成します。 Azure サブスクリプション ID (例: 1a83645ac-1234-5ab6-6789-1h234g764ghty1) は、Azure portal にサインインし、左側のナビゲーション メニューで [サブスクリプション] を選択することによって確認できます。

    Azure サブスクリプション

  2. Microsoft Entra テナント ID を取得します。 使用可能なテナント ID が既にある場合は、 Microsoft Entra ID>Properties>Directory ID で確認できます。

    Microsoft Entra プロパティ

    テナント ID がない場合は、Microsoft Entra ID で新しいテナント ID を作成します。 テナントの設定に関するヘルプについては、「 Quickstart: テナントの設定」を参照してください。

  3. Microsoft Test-Drive アプリケーションをテナントにプロビジョニングします。 このアプリケーションを使用して、体験版リソースに対する操作を実行します。

    1. Azure Az PowerShell モジュールをまだお持ちではない場合はインストールしてください。
    2. Microsoft Test-Drive アプリケーションのサービス プリンシパルを追加します。
      1. Connect-AzAccount実行し、Azure アカウントにサインインするための資格情報を指定します。これには、Microsoft Entra ID グローバル管理者 組み込みロールが必要です
      2. 新しいサービス プリンシパルを作成します: New-AzADServicePrincipal -ApplicationId d7e39695-0b24-441c-a140-047800a05ede -DisplayName 'Microsoft TestDrive'
      3. サービス プリンシパルが作成されたことを確認します: Get-AzADServicePrincipal -DisplayName 'Microsoft TestDrive'サービス プリンシパルを検証するコードを示す
  4. Microsoft Entra アプリ IDには、次のアプリケーション ID: d7e39695-0b24-441c-a140-047800a05edeを貼り付けます。

  5. Microsoft Entra App Key では、シークレットは必要ないため、"シークレットなし" などのダミー シークレットを挿入します。

  6. アプリケーションを使用してサブスクリプションにデプロイするため、Azure portal または PowerShell から、サブスクリプションの共同作成者としてアプリケーションを追加する必要があります。

    1. Azure ポータルで次の手順を実行します。

      1. 体験版に使用しているサブスクリプションを選択します。

      2. [アクセス制御 (IAM)] を選択します。

      3. [追加] > [ロールの割り当ての追加] の順に選択します。

      4. [ロール] タブ で、 [Contributor] を選択します。

      5. [メンバー] タブで、[ユーザー、グループ、またはサービス プリンシパル] を選んでから、[メンバーの選択] を選びます。

      6. 以前に作成した Microsoft TestDrive サービス プリンシパルを選択します。

      7. [確認と 割り当て] タブで、 [確認と割り当て] を選択して ロールを割り当てます。

        ロールの割り当ての詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください

    2. PowerShell を使用する場合:

      1. 次を実行して、ServicePrincipal object-id を取得します: (Get-AzADServicePrincipal -DisplayName 'Microsoft TestDrive').id
      2. その ObjectId とサブスクリプション ID を指定して、次を実行します: New-AzRoleAssignment -ObjectId <objectId> -RoleDefinitionName Contributor -Scope /subscriptions/<subscriptionId>

Note

元の appID を削除する前に、Azure portal に移動し、[リソース グループ] に移動して、CloudTry_ を検索します。 [イベント開始者] 列を確認します。

少なくとも 1 つのリソース ([操作の名前]) が Microsoft TestDrive に設定されていない限り、元の appID を削除しないでください。

appID を削除するには、左側のナビゲーション メニューで Microsoft Entra ID>App RegistrationsAll applications タブを選択します。アプリケーションを選択し、 Delete を選択します。

再発行

これで、体験版のすべてのフィールドを設定したので、オファーを再発行します。 体験版が認定に合格したら、オファーのプレビューで顧客エクスペリエンスをテストします。

  1. UI で体験版を開始します。

  2. Azure portal で Azure サブスクリプションを開きます。

  3. 体験版が正しくデプロイされることを確認します。

    Azure portal

顧客用にプロビジョニングされた体験版のインスタンスを削除しないでください。顧客がその使用を終了すると、体験版サービスによってこれらのリソース グループは自動的にクリーンアップされます。

プレビュー オファリングに慣れたら、次はライブ。 エンド ツー エンドエクスペリエンス全体を再確認する最終的なレビュー プロセスがあります。 オファーを拒否した場合は、修正する必要がある内容について、オファーのエンジニアリング担当者に電子メールで連絡します。

次のステップ

  • パートナー センターでオファーを作成する手順に従った場合は、戻る矢印を使用してそのトピックに戻ります。
  • 体験版とは」で、他の種類の体験版の詳細を確認してください。