Visual Studio での Azure リソース グループの作成とデプロイCreating and deploying Azure resource groups through Visual Studio

Visual Studio では、インフラストラクチャとコードを Azure にデプロイするプロジェクトを作成することができます。With Visual Studio, you can create a project that deploys your infrastructure and code to Azure. たとえば、アプリ用に Web ホスト、Web サイト、およびデータベースを定義し、そのインフラストラクチャをコードと共にデプロイできます。For example, you can define the web host, web site, and database for your app, and deploy that infrastructure along with the code. Visual Studio では、一般的なシナリオのデプロイに適したさまざまなスターター テンプレートを多数用意しています。Visual Studio provides many different starter templates for deploying common scenarios. この記事では、Web アプリと SQL Database をデプロイします。In this article, you deploy a web app and SQL Database.

この記事では、Azure の開発ワークロードと ASP.NET ワークロードがインストールされている Visual Studio 2017 を使用する方法を説明します。This article shows how to use Visual Studio 2017 with the Azure development and ASP.NET workloads installed. Visual Studio 2015 Update 2 と Microsoft Azure SDK for .NET 2.9、または Visual Studio 2013 と Azure SDK 2.9 をご使用の場合、ここに記載した操作とほぼ同じです。If you use Visual Studio 2015 Update 2 and Microsoft Azure SDK for .NET 2.9, or Visual Studio 2013 with Azure SDK 2.9, your experience is largely the same.


この記事は、新しい 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.

Azure リソース グループ プロジェクトを作成するCreate Azure Resource Group project

このセクションでは、Web アプリ + SQL テンプレートを使用して Azure リソース グループ プロジェクトを作成します。In this section, you create an Azure Resource Group project with a Web app + SQL template.

  1. Visual Studio で、[ファイル][新しいプロジェクト] の順に選択し、[C#] または [Visual Basic] を選択します (これらのプロジェクトに含まれるのは JSON と PowerShell の内容だけであり、どちらの言語を選んでも、後のステージには影響しません)。In Visual Studio, choose File, New Project, choose either C# or Visual Basic (which language you choose has no impact on the later stages as these projects have only JSON and PowerShell content). 次に [クラウド] を選択し、[Azure リソース グループ] プロジェクトを選択します。Then choose Cloud, and Azure Resource Group project.

    Cloud Deployment プロジェクト

  2. Azure リソース マネージャーにデプロイするテンプレートを選択します。Choose the template that you want to deploy to Azure Resource Manager. デプロイするプロジェクトの種類に応じて、さまざまなオプションがあります。Notice there are many different options based on the type of project you wish to deploy. この記事では、[Web アプリ + SQL] テンプレートを選択します。For this article, choose the Web app + SQL template.


    選択したテンプレートは出発点にすぎません。リソースを追加したり削除したりしてシナリオの要件を満たすことができます。The template you pick is just a starting point; you can add and remove resources to fulfill your scenario.


    使用できる一連のテンプレートが Visual Studio によってオンラインで取得されます。Visual Studio retrieves a list of available templates online. その内容は変わる場合があります。The list may change.

    Visual Studio では、Web アプリと SQL データベース用のリソース グループ デプロイ プロジェクトが作成されます。Visual Studio creates a resource group deployment project for the web app and SQL database.

  3. 作成された内容を確認するには、デプロイ プロジェクト内のノードを表示します。To see what you created, look at the node in the deployment project.


    この例では Web アプリ + SQL テンプレートを選んだので、次のファイルが表示されます。Since you chose the Web app + SQL template for this example, you see the following files:

    ファイル名File name 説明Description
    Deploy-AzureResourceGroup.ps1Deploy-AzureResourceGroup.ps1 Azure Resource Manager にデプロイするために PowerShell コマンドを実行する PowerShell スクリプト。A PowerShell script that runs PowerShell commands to deploy to Azure Resource Manager.
    この PowerShell スクリプトは、テンプレートをデプロイするために Visual Studio によって使用されます。Note Visual Studio uses this PowerShell script to deploy your template. このスクリプトに変更を加えると Visual Studio でのデプロイに影響するため、注意が必要です。Any changes you make to this script affect deployment in Visual Studio, so be careful.
    WebSiteSQLDatabase.jsonWebSiteSQLDatabase.json Azure にデプロイするインフラストラクチャと、デプロイ中に指定できるパラメーターを定義した Resource Manager テンプレートです。The Resource Manager template that defines the infrastructure you want deploy to Azure, and the parameters you can provide during deployment. Resource Manager によってリソースが正しい順序でデプロイされるように、リソース間の依存性も定義されます。It also defines the dependencies between the resources so Resource Manager deploys the resources in the correct order.
    WebSiteSQLDatabase.parameters.jsonWebSiteSQLDatabase.parameters.json テンプレートで必要な値を含むパラメーター ファイルです。A parameters file that has values needed by the template. パラメーターの値を渡すことによって各デプロイをカスタマイズします。You pass in parameter values to customize each deployment.

    すべてのリソース グループ デプロイ プロジェクトに、上記の基本的なファイルが含まれます。All resource group deployment projects have these basic files. 他のプロジェクトには、他の機能をサポートするために追加のファイルが含まれることがあります。Other projects may have additional files to support other functionality.

リソース マネージャーのテンプレートをカスタマイズするCustomize the Resource Manager template

デプロイするリソースが記述されている JSON テンプレートを変更すると、デプロイ プロジェクトをカスタマイズできます。You can customize a deployment project by modifying the JSON templates that describe the resources you want to deploy. JSON とは JavaScript Object Notation の略であり、操作が簡単なシリアル化されたデータ形式です。JSON stands for JavaScript Object Notation, and is a serialized data format that is easy to work with. JSON ファイルでは、各ファイルの上部で参照されているスキーマが使用されます。The JSON files use a schema that you reference at the top of each file. スキーマに関する理解を深めるには、スキーマをダウンロードして分析してください。If you want to understand the schema, you can download and analyze it. スキーマでは、有効な要素、フィールドの型と形式、プロパティに指定できる値などが定義されています。The schema defines what elements are valid, the types and formats of fields, and the possible values for a property. リソース マネージャーのテンプレートの要素の詳細については、「 Azure リソース マネージャーのテンプレートの作成」を参照してください。To learn about the elements of the Resource Manager template, see Authoring Azure Resource Manager templates.

テンプレートで作業するには、 WebSiteSQLDatabase.jsonを開きます。To work on your template, open WebSiteSQLDatabase.json.

Visual Studio エディターでは、Resource Manager テンプレートの編集に役立つツールを提供しています。The Visual Studio editor provides tools to assist you with editing the Resource Manager template. [JSON アウトライン] ウィンドウを使用すると、テンプレートで定義されている要素を簡単に確認できます。The JSON Outline window makes it easy to see the elements defined in your template.

JSON アウトラインの表示

アウトライン内の任意の要素を選択すると、テンプレートの該当部分に移動し、対応する JSON が強調表示されます。Selecting any of the elements in the outline takes you to that part of the template and highlights the corresponding JSON.

JSON の移動

リソースを追加するには、[JSON アウトライン] ウィンドウの上部にある [リソースの追加] ボタンを選択するか、または [リソース] を右クリックして [新しいリソースの追加] を選択します。You can add a resource by either selecting the Add Resource button at the top of the JSON Outline window, or by right-clicking resources and selecting Add New Resource.


このチュートリアルでは、 [ストレージ アカウント] を選択し、それに名前を付けます。For this tutorial, select Storage Account and give it a name. 数字と小文字のみで構成された 11 文字未満の名前を指定します。Provide a name that is no more than 11 characters, and only contains numbers and lower-case letters.


リソースだけでなく、ストレージ アカウントの種類を示すパラメーターとストレージ アカウントの名前を示す変数も追加されています。Notice that not only was the resource added, but also a parameter for the type storage account, and a variable for the name of the storage account.


storageType パラメーターでは、許可する種類と既定の種類があらかじめ定義されています。The storageType parameter is pre-defined with allowed types and a default type. これらの値は、そのまま使用することも、シナリオに合わせて編集することもできます。You can leave these values or edit them for your scenario. このテンプレートを使用して Premium_LRS ストレージ アカウントをデプロイするのをどのユーザーにも許可しない場合は、許可する種類からそれを削除します。If you don't want anyone to deploy a Premium_LRS storage account through this template, remove it from the allowed types.

"storageType": {
  "type": "string",
  "defaultValue": "Standard_LRS",
  "allowedValues": [

Visual Studio では、テンプレートの編集時に使用できるプロパティがわかるように、Intellisense を提供しています。Visual Studio also provides intellisense to help you understand the properties that are available when editing the template. たとえば、App Service プランのプロパティを編集するには、HostingPlan リソースに移動し、properties の値を追加します。For example, to edit the properties for your App Service plan, navigate to the HostingPlan resource, and add a value for the properties. Intellisense では、使用できる値を示し、その値に関する説明を提供します。Notice that intellisense shows the available values and provides a description of that value.

IntelliSense の表示

numberOfWorkers は 1 に設定することができます。You can set numberOfWorkers to 1.

"properties": {
  "name": "[parameters('hostingPlanName')]",
  "numberOfWorkers": 1

リソース グループ プロジェクトを Azure にデプロイするDeploy the Resource Group project to Azure

これでプロジェクトをデプロイする準備が整いました。You're now ready to deploy your project. Azure リソース グループ プロジェクトをデプロイするとき、そのデプロイ先は Azure リソース グループとなります。When you deploy an Azure Resource Group project, you deploy it to an Azure resource group. リソース グループとは、共通のライフサイクルを持ったリソースの論理上のまとまりです。The resource group is a logical grouping of resources that share a common lifecycle.

  1. デプロイ プロジェクト ノードのショートカット メニューで [デプロイ] > [New (新規)] の順に選択します。On the shortcut menu of the deployment project node, choose Deploy > New.

    メニュー項目 [配置]、[新しい配置]

    [リソース グループに配置する] ダイアログ ボックスが表示されます。The Deploy to Resource Group dialog box appears.

    [リソース グループに配置する] ダイアログ ボックス

  2. [リソース グループ] ボックスの一覧で、既存のリソース グループを選択するか、新しいリソース グループを作成します。In the Resource group dropdown box, choose an existing resource group or create a new one. リソース グループを作成するには、[リソース グループ] ボックスの一覧を開き、[新規作成] を選択します。To create a resource group, open the Resource Group dropdown box and choose Create New.

    [リソース グループに配置する] ダイアログ ボックス

    [リソース グループの作成] ダイアログ ボックスが表示されます。The Create Resource Group dialog box appears. グループの名前と場所を指定し、 [作成] ボタンを選択します。Give your group a name and location, and select the Create button.

    [リソース グループの作成] ダイアログ ボックス

  3. [パラメーターの編集] ボタンを選択すると、デプロイ用のパラメーターを編集できます。Edit the parameters for the deployment by selecting the Edit Parameters button.

    Edit Parameters button

  4. 空のパラメーターの値を指定し、 [保存] ボタンを選択します。Provide values for the empty parameters and select the Save button. 対象となる空のパラメーターは、hostingPlanNameadministratorLoginadministratorLoginPassworddatabaseName です。The empty parameters are hostingPlanName, administratorLogin, administratorLoginPassword, and databaseName.

    hostingPlanName には、作成する App Service プラン の名前を指定します。hostingPlanName specifies a name for the App Service plan to create.

    administratorLogin には、SQL Server 管理者のユーザー名を指定します。administratorLogin specifies the user name for the SQL Server administrator. saadmin などの一般的な管理者名は使用しないようにしてください。Don't use common admin names like sa or admin.

    administratorLoginPassword には、SQL Server 管理者のパスワードを指定します。The administratorLoginPassword specifies a password for SQL Server administrator. [パスワードをプレーンテキストとしてパラメーター ファイルに保存する] オプションは安全ではないため、選択しないでください。The Save passwords as plain text in the parameters file option isn't secure; therefore, don't select this option. パスワードはプレーンテキストで保存されないため、デプロイ中にもう一度このパスワードを入力する必要があります。Since the password isn't saved as plain text, you need to provide this password again during deployment.

    databaseName には、作成するデータベースの名前を指定します。databaseName specifies a name for the database to create.

    [パラメーターの編集] ダイアログ ボックス

  5. [デプロイ] をクリックして、プロジェクトを Azure にデプロイします。Choose the Deploy button to deploy the project to Azure. PowerShell コンソールが、Visual Studio インスタンスの外部で開きます。A PowerShell console opens outside of the Visual Studio instance. PowerShell コンソールで SQL Server 管理者のパスワードの入力を求められた場合は、入力します。Enter the SQL Server administrator password in the PowerShell console when prompted. PowerShell コンソールが、他のアイテムの後ろに隠れていたり、タスクバーに最小化されたりしていることがあります。Your PowerShell console may be hidden behind other items or minimized in the task bar. その場合は、コンソールを見つけて選択し、パスワードを入力してください。Look for this console and select it to provide the password.


    Azure PowerShell コマンドレットのインストールを求められる場合があります。Visual Studio may ask you to install the Azure PowerShell cmdlets. メッセージが表示されたら、それらをインストールしてください。If prompted, install them. リソース グループを正しくデプロイするには、Azure PowerShell のモジュールが必要です。You need the Azure PowerShell modules to successfully deploy resource groups. プロジェクトの PowerShell スクリプトは、新しい Azure PowerShell Az モジュール では機能しません。The PowerShell script in the project doesn't work with the new Azure PowerShell Az module.

    詳細については、Azure PowerShell モジュールのインストールおよび構成に関するページを参照してください。For more information, see Install and configure Azure PowerShell modules.

  6. デプロイには数分かかる場合があります。The deployment may take a few minutes. 出力 ウィンドウに、デプロイの進行状況が表示されます。In the Output windows, you see the status of the deployment. デプロイが完了すると、最後に、デプロイが成功したことを示す次のようなメッセージが表示されます。When the deployment has finished, the last message indicates a successful deployment with something similar to:

     18:00:58 - Successfully deployed template 'websitesqldatabase.json' to resource group 'DemoSiteGroup'.
  7. ブラウザーで、 Azure Portal を開き、アカウントにサインインします。In a browser, open the Azure portal and sign in to your account. リソース グループの内容を確認するには、 [リソース グループ] を選択し、デプロイしたリソース グループを選択します。To see the resource group, select Resource groups and the resource group you deployed to.


  8. デプロイ済みのすべてのリソースが表示されます。You see all the deployed resources. ストレージ アカウントの名前が、そのリソースを追加したときに指定したものとまったく同じにはならないことに注意してください。Notice that the name of the storage account isn't exactly what you specified when adding that resource. ストレージ アカウントは一意である必要があります。The storage account must be unique. 一意の名前を設定するために、指定した名前に文字列が自動的に追加されます。The template automatically adds a string of characters to the name you provided to provide a unique name.


  9. 変更を加えたうえでプロジェクトを再デプロイする場合は、Azure リソース グループ プロジェクトのショートカット メニューから既存のリソース グループを選択します。If you make changes and want to redeploy your project, choose the existing resource group from the shortcut menu of Azure resource group project. ショートカット メニューの [デプロイ] を選択してから、デプロイしたリソース グループを選択します。On the shortcut menu, choose Deploy, and then choose the resource group you deployed.

    デプロイされた Azure リソース グループ

インフラストラクチャでコードをデプロイするDeploy code with your infrastructure

この時点で、アプリ用のインフラストラクチャはデプロイ済みですが、実際のコードはプロジェクトでデプロイされていません。At this point, you've deployed the infrastructure for your app, but there's no actual code deployed with the project. この記事では、デプロイ時に Web アプリと SQL Database テーブルをデプロイする方法について説明します。This article shows how to deploy a web app and SQL Database tables during deployment. Web アプリではなく仮想マシンをデプロイする場合は、デプロイの一環としてマシン上で何らかのコードを実行します。If you're deploying a Virtual Machine instead of a web app, you want to run some code on the machine as part of deployment. Web アプリのコードをデプロイするプロセスまたは仮想マシンを設定するプロセスは、ほぼ同じです。The process for deploying code for a web app or for setting up a Virtual Machine is almost the same.

  1. Visual Studio ソリューションにプロジェクトを追加します。Add a project to your Visual Studio solution. ソリューションを右クリックして、[追加] > [新しいプロジェクト] の順に選択します。Right-click the solution, and select Add > New Project.

    add project

  2. ASP.NET Web アプリケーションを追加します。Add an ASP.NET Web Application.

    Web アプリの追加

  3. [MVC] を選択します。Select MVC.

    MVC の選択

  4. Visual Studio によって Web アプリが作成されると、ソリューションに両方のプロジェクトが表示されます。After Visual Studio creates your web app, you see both projects in the solution.

    show projects

  5. 次に、リソース グループ プロジェクトで新しいプロジェクトが認識されていることを確認する必要があります。Now, you need to make sure your resource group project is aware of the new project. リソース グループ プロジェクト (AzureResourceGroup1) に戻ります。Go back to your resource group project (AzureResourceGroup1). [参照] を右クリックし、[参照の追加] を選択します。Right-click References and select Add Reference.


  6. 作成した Web アプリ プロジェクトを選択します。Select the web app project that you created.


    参照を追加することで、リソース グループ プロジェクトに Web アプリ プロジェクトをリンクし、3 つのキー プロパティを自動的に設定します。By adding a reference, you link the web app project to the resource group project, and automatically set three key properties. これらのプロパティはその参照の [プロパティ] ウィンドウに表示されます。You see these properties in the Properties window for the reference.


    プロパティは次のとおりです。The properties are:

    • [追加のプロパティ] には Azure Storage にプッシュされる Web デプロイ パッケージのステージングの場所が含まれます。The Additional Properties has the web deployment package staging location that is pushed to the Azure Storage. フォルダー (ExampleApp) とファイル ( をメモします。Note the folder (ExampleApp) and file ( これらの値は、アプリケーションをデプロイする際にパラメーターとして指定するため、知っておく必要があります。You need to know these values because you provide them as parameters when deploying the app.

    • [Include File Path](ファイル パスを含める) にはパッケージを作成するパスが含まれます。The Include File Path has the path where the package is created. [Include Targets](ターゲットを含める) にはデプロイで実行するコマンドが含まれます。The Include Targets has the command that deployment executes.

    • Build;Package の既定値を使用すると、デプロイでは、Web デプロイ パッケージ ( がビルドおよび作成されます。The default value of Build;Package enables the deployment to build and create a web deployment package (

      パッケージを作成するのに必要な情報はプロパティから取得するので、デプロイで発行プロファイルは必要ありません。You don't need a publish profile as the deployment gets the necessary information from the properties to create the package.

  7. WebSiteSQLDatabase.json に戻ってテンプレートにリソースを追加します。Go back to WebSiteSQLDatabase.json and add a resource to the template.


  8. 今回は [Web App の Web 配置] を選択します。This time select Web Deploy for Web Apps.

    Web デプロイの追加

  9. リソース グループにリソース グループ プロジェクトを再デプロイします。Redeploy your resource group project to the resource group. 今回は、新しいパラメーターがいくつか存在します。This time there are some new parameters. _artifactsLocation または _artifactsLocationSasToken の値は自動的に生成されるので、指定する必要はありません。You don't need to provide values for _artifactsLocation or _artifactsLocationSasToken because Visual Studio automatically generates those values. ただし、デプロイ パッケージが含まれているパスにフォルダーとファイル名を設定します (次の図の ExampleAppPackageFolderExampleAppPackageFileName)。However, you have to set the folder and file name to the path that contains the deployment package (shown as ExampleAppPackageFolder and ExampleAppPackageFileName in the following image). 事前にメモしておいた値を参照プロパティに指定します (。Provide the values you saw earlier in the reference properties (ExampleApp and

    Web デプロイの追加

    [成果物のストレージ アカウント] には、このリソース グループでデプロイしたものを選択できます。For the Artifact storage account, select the one deployed with this resource group.

  10. デプロイが完了したら、ポータルで Web アプリを選択します。After the deployment has finished, select your web app in the portal. URL を選択して新しいサイトを参照します。Select the URL to browse to the site.

    browse site

  11. 既定の ASP.NET アプリが正しくデプロイされていることがわかります。Notice that you've successfully deployed the default ASP.NET app.


操作ダッシュボードをデプロイに追加するAdd an operations dashboard to your deployment

リソースは、Visual Studio インターフェイスを通じて利用できるものに限定されません。You aren't limited to only the resources that are available through the Visual Studio interface. テンプレートにカスタム リソースを追加することで、デプロイをカスタマイズできます。You can customize your deployment by adding a custom resource to your template. リソースの追加を表示するには、デプロイしたリソースを管理する運用ダッシュボードを追加します。To show adding a resource, you add an operational dashboard to manage the resource you deployed.

  1. WebsiteSqlDeploy.json ファイルを開き、ストレージ アカウント リソースの後、resources セクションの右角かっこ ] の前に、次の JSON を追加します。Open the WebsiteSqlDeploy.json file and add the following JSON after the storage account resource but before the closing ] of the resources section.

       "properties": {
         "lenses": {
           "0": {
             "order": 0,
             "parts": {
               "0": {
                 "position": {
                   "x": 0,
                   "y": 0,
                   "colSpan": 4,
                   "rowSpan": 6
                 "metadata": {
                   "inputs": [
                       "name": "resourceGroup",
                       "isOptional": true
                       "name": "id",
                       "value": "[resourceGroup().id]",
                       "isOptional": true
                   "type": "Extension/HubsExtension/PartType/ResourceGroupMapPinnedPart"
               "1": {
                 "position": {
                   "x": 4,
                   "y": 0,
                   "rowSpan": 3,
                   "colSpan": 4
                 "metadata": {
                   "inputs": [],
                   "type": "Extension[azure]/HubsExtension/PartType/MarkdownPart",
                   "settings": {
                     "content": {
                       "settings": {
                         "content": "__Customizations__\n\nUse this dashboard to create and share the operational views of services critical to the application performing. To customize simply pin components to the dashboard and then publish when you're done. Others will see your changes when you publish and share the dashboard.\n\nYou can customize this text too. It supports plain text, __Markdown__, and even limited HTML like images <img width='10' src=''/> and <a href='' target='_blank'>links</a> that open in a new tab.\n",
                         "title": "Operations",
                         "subtitle": "[resourceGroup().name]"
         "metadata": {
           "model": {
             "timeRange": {
               "value": {
                 "relative": {
                   "duration": 24,
                   "timeUnit": 1
               "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
       "apiVersion": "2015-08-01-preview",
       "name": "[concat('ARM-',resourceGroup().name)]",
       "type": "Microsoft.Portal/dashboards",
       "location": "[resourceGroup().location]",
       "tags": {
         "hidden-title": "[concat('OPS-',resourceGroup().name)]"
  2. リソース グループを再デプロイします。Redeploy your resource group. Azure portal でダッシュボードを見て、共有ダッシュボードが選択肢の一覧に追加されたことを確認します。Look at your dashboard on the Azure portal, and notice the shared dashboard has been added to your list of choices.

    カスタム ダッシュボード

  3. ダッシュボードを選択します。Select the dashboard.

    カスタム ダッシュボード

RBAC グループを使用して、ダッシュボードへのアクセスを管理できます。You can manage access to the dashboard by using RBAC groups. また、デプロイした後で、ダッシュボードの外観をカスタマイズすることもできます。You can also customize the dashboard's appearance after it's deployed. ただし、リソース グループを再デプロイすると、ダッシュボードはテンプレートの既定の状態にリセットされます。However, if you redeploy the resource group, the dashboard is reset to its default state in your template. ダッシュボードの作成について詳しくは、「プログラムによる Azure ダッシュボードの作成」をご覧ください。For more information about creating dashboards, see Programmatically create Azure Dashboards.

次の手順Next steps

このクイック スタートでは、Visual Studio を使用してテンプレートを作成およびデプロイする方法について説明しました。In this quickstart, you learned how to create and deploy templates using Visual Studio. 次のチュートリアルでは、テンプレート リファレンスから情報を検索して、暗号化された Azure Storage アカウントを作成できるようにする方法を示します。The next tutorial shows you how to find the information from template reference so you can create an encrypted Azure Storage account.