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

Visual Studio および Azure SDKでは、インフラストラクチャとコードを Azure にデプロイするプロジェクトを作成することができます。With Visual Studio and the Azure SDK, 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. または、仮想マシン、仮想ネットワーク、およびストレージ アカウントを定義し、そのインフラストラクチャを、仮想マシンで実行するスクリプトと共にデプロイすることができます。Or, you can define a Virtual Machine, Virtual Network and Storage Account, and deploy that infrastructure along with a script that is executed on Virtual Machine. Azure リソース グループ デプロイ プロジェクトでは、必要なすべてのリソースを反復可能な単一の操作でデプロイできます。The Azure Resource Group deployment project enables you to deploy all the needed resources in a single, repeatable operation. リソースのデプロイと管理の詳細については、「Azure Resource Manager の概要」を参照してください。For more information about deploying and managing your resources, see Azure Resource Manager overview.

Azure リソース グループ プロジェクトには、Azure にデプロイされるリソースを定義する Azure Resource Manager JSON テンプレートが含まれています。Azure Resource Group projects contain Azure Resource Manager JSON templates, which define the resources that you deploy to Azure. リソース マネージャーのテンプレートの要素の詳細については、「 Azure リソース マネージャーのテンプレートの作成」を参照してください。To learn about the elements of the Resource Manager template, see Authoring Azure Resource Manager templates. Visual Studio では、これらのテンプレートを編集することができ、テンプレートの操作を容易にするツールがサポートされています。Visual Studio enables you to edit these templates, and provides tools that simplify working with templates.

この記事では、Web アプリと SQL Database をデプロイします。In this article, you deploy a web app and SQL Database. ただし手順は、リソースの種類に関係なくほぼ同じです。However, the steps are almost the same for any type resource. 仮想マシンおよびそれに関連するリソースも同じように簡単にデプロイできます。You can as easily deploy a Virtual Machine and its related resources. Visual Studio では、一般的なシナリオのデプロイに適したさまざまなスターター テンプレートを多数用意しています。Visual Studio provides many different starter templates for deploying common scenarios.

この記事では Visual Studio 2017 を使っています。This article shows Visual Studio 2017. 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 SDK 2.6 以降のバージョンを使用できますが、この記事で説明しているユーザー インターフェイスとは操作が異なる場合があります。You can use versions of the Azure SDK from 2.6 or later; however, your experience of the user interface may be different than the user interface shown in this article. 手順を開始する前に、 Azure SDK の最新バージョンをインストールすることを強くお勧めします。We strongly recommend that you install the latest version of the Azure SDK before starting the steps.

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

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

  1. Visual Studio で、[ファイル][新しいプロジェクト] の順に選択し、[C#] または [Visual Basic] を選択します。In Visual Studio, choose File, New Project, choose C# or Visual Basic. 次に [クラウド] を選択し、[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 we chose the Web app + SQL template for this example, you see the following files:

    ファイル名File name DescriptionDescription
    Deploy-AzureResourceGroup.ps1Deploy-AzureResourceGroup.ps1 Azure リソース マネージャーにデプロイするために PowerShell コマンドを呼び出す PowerShell スクリプト。A PowerShell script that invokes 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 contains values needed by the template. パラメーターの値を渡すことによって各デプロイをカスタマイズします。You pass in parameter values to customize each deployment.

    すべてのリソース グループ デプロイ プロジェクトに、上記の基本的なファイルが含まれます。All resource group deployment projects contain these basic files. 他のプロジェクトには、他の機能をサポートするために追加のファイルが含まれることがあります。Other projects may contain 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, the possible values of enumerated values, and so on. リソース マネージャーのテンプレートの要素の詳細については、「 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 do not 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": [
    "Standard_LRS",
    "Standard_ZRS",
    "Standard_GRS",
    "Standard_RAGRS"
  ]
}

Visual Studio では、テンプレートの編集時にどんなプロパティが使用できるのかを容易に理解できるように intellisense を提供しています。Visual Studio also provides intellisense to help you understand what properties 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 are 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 などの一般的な管理者名は使用しないようにしてください。Do not 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 is not secure; therefore, do not select this option. パスワードはプレーンテキストで保存されないため、デプロイ中にもう一度このパスワードを入力する必要があります。Since the password is not 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. リソース グループを正しくデプロイするには、Azure PowerShell のコマンドレットが必要です。You need the Azure PowerShell cmdlets to successfully deploy resource groups. メッセージが表示されたら、それらをインストールしてください。If prompted, install them.

  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 is not 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 have deployed the infrastructure for your app, but there is 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 are 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 contains the web deployment package staging location that is pushed to the Azure Storage. フォルダー (ExampleApp) とファイル (package.zip) をメモします。Note the folder (ExampleApp) and file (package.zip). これらの値は、アプリケーションをデプロイする際にパラメーターとして指定するため、知っておく必要があります。You need to know these values because you provide them as parameters when deploying the app.
    • [Include File Path (ファイル パスを含める)] にはパッケージを作成するパスが含まれます。The Include File Path contains the path where the package is created. [Include Targets (ターゲットを含める)] にはデプロイで実行するコマンドが含まれます。The Include Targets contains the command that deployment executes.
    • Build;Package の既定値を使用すると、デプロイでは、Web デプロイ パッケージ (package.zip) がビルドおよび作成されます。The default value of Build;Package enables the deployment to build and create a web deployment package (package.zip).

      パッケージを作成するのに必要な情報はプロパティから取得するので、デプロイで発行プロファイルは必要ありません。You do not 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 do not 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). 事前にメモしておいた値を参照プロパティに指定します (ExampleApppackage.zip)。Provide the values you saw earlier in the reference properties (ExampleApp and package.zip).

    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 have successfully deployed the default ASP.NET app.

    デプロイされたアプリの表示

次のステップNext steps