Azure PowerShell と Resource Manager でリソースを管理するManage resources with Azure PowerShell and Resource Manager

この記事では、Azure PowerShell と Azure Resource Manager でソリューションを管理する方法について説明します。In this article, you learn how to manage your solutions with Azure PowerShell and Azure Resource Manager. Resource Manager に慣れていない場合は、Resource Manager の概要に関するページをご覧ください。If you are not familiar with Resource Manager, see Resource Manager Overview. この記事では管理タスクに重点を置いて説明します。This article focuses on management tasks. このチュートリアルの内容は次のとおりです。You will:

  1. リソース グループの作成Create a resource group
  2. リソース グループへのリソースの追加Add a resource to the resource group
  3. リソースへのタグの追加Add a tag to the resource
  4. 名前とタグの値に基づいたリソースへのクエリ実行Query resources based on names or tag values
  5. リソースへのロック適用と解除Apply and remove a lock on the resource
  6. リソース グループの削除Delete a resource group

この記事では、Resource Manager テンプレートをサブスクリプションにデプロイする方法については説明しません。This article does not show how to deploy a Resource Manager template to your subscription. この情報については、「Deploy resources with Resource Manager templates and Azure PowerShell (Resource Manager テンプレートと Azure PowerShell を使用したリソースのデプロイ)」を参照してください。For that information, see Deploy resources with Resource Manager templates and Azure PowerShell.

Azure PowerShell の使用に関するページGet started with Azure PowerShell

Azure PowerShell がインストールされていない場合は、Azure PowerShell のインストールおよび構成方法に関するページをご覧ください。If you have not installed Azure PowerShell, see How to install and configure Azure PowerShell.

前に Azure PowerShell をインストールしていても、最近更新していない場合は、最新バージョンをインストールすることを検討してください。If you have installed Azure PowerShell in the past but have not updated it recently, consider installing the latest version. バージョンの更新は、インストールと同じ方法で行うことができます。You can update the version through the same method you used to install it. たとえば、Web Platform Installer を使用した場合は、それを再度起動して、更新プログラムを探します。For example, if you used the Web Platform Installer, launch it again and look for an update.

Azure Resource モジュールのバージョンを確認するには、次のコマンドレットを使用してください。To check your version of the Azure Resources module, use the following cmdlet:

Get-Module -ListAvailable -Name AzureRm.Resources | Select Version

この記事は、バージョン 3.3.0 向けに更新されています。This article was updated for version 3.3.0. 以前のバージョンを使っている場合は、この記事に示されている手順と一致しない可能性があります。If you have an earlier version, your experience might not match the steps shown in this article. このバージョンのコマンドレットに関するドキュメントについては、「AzureRM.Resources Module (AzureRM.Resources モジュール)」を参照してください。For documentation about the cmdlets in this version, see AzureRM.Resources Module.

Azure アカウントへのログインLog in to your Azure account

ソリューションを操作する前に、ご使用のアカウントにログインする必要があります。Before working on your solution, you must log in to your account.

Azure アカウントにログインするには、Login-AzureRmAccount コマンドレットを使います。To log in to your Azure account, use the Login-AzureRmAccount cmdlet.

Login-AzureRmAccount

このコマンドレットは、Azure アカウントのログイン資格情報をユーザーに求めます。The cmdlet prompts you for the login credentials for your Azure account. ログイン後にアカウント設定がダウンロードされるため、Azure PowerShell で使用できるようになります。After logging in, it downloads your account settings so they are available to Azure PowerShell.

コマンドレットは、自分のアカウントと、タスクに使用するサブスクリプションに関する情報を返します。The cmdlet returns information about your account and the subscription to use for the tasks.

Environment           : AzureCloud
Account               : example@contoso.com
TenantId              : {guid}
SubscriptionId        : {guid}
SubscriptionName      : Example Subscription One
CurrentStorageAccount :

複数のサブスクリプションがある場合は、別のサブスクリプションに切り替えることができます。If you have more than one subscription, you can switch to a different subscription. 最初に、自分のアカウントのすべてのサブスクリプションを見てみましょう。First, let's see all the subscriptions for your account.

Get-AzureRmSubscription

有効および無効なサブスクリプションを返します。It returns enabled and disabled subscriptions.

SubscriptionName : Example Subscription One
SubscriptionId   : {guid}
TenantId         : {guid}
State            : Enabled

SubscriptionName : Example Subscription Two
SubscriptionId   : {guid}
TenantId         : {guid}
State            : Enabled

SubscriptionName : Example Subscription Three
SubscriptionId   : {guid}
TenantId         : {guid}
State            : Disabled

別のサブスクリプションに切り替えるには、Set-AzureRmContext コマンドレットでサブスクリプション名を指定します。To switch to a different subscription, provide the subscription name with the Set-AzureRmContext cmdlet.

Set-AzureRmContext -SubscriptionName "Example Subscription Two"

リソース グループの作成Create a resource group

サブスクリプションにリソースをデプロイする前に、そのリソースを含めるリソース グループを作成する必要があります。Before deploying any resources to your subscription, you must create a resource group that will contain the resources.

リソース グループを作成するには、 New-AzureRmResourceGroup コマンドレットを使用します。To create a resource group, use the New-AzureRmResourceGroup cmdlet. コマンドは Name パラメーターを使用してリソース グループの名前を指定し、Location パラメーターを使用して場所を指定します。The command uses the Name parameter to specify a name for the resource group and the Location parameter to specify its location.

New-AzureRmResourceGroup -Name TestRG1 -Location "South Central US"

出力の形式は次のとおりです。The output is in the following format:

ResourceGroupName : TestRG1
Location          : southcentralus
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/{guid}/resourceGroups/TestRG1

後でリソース グループを取得する必要がある場合は、次のコマンドレットを使用します。If you need to retrieve the resource group later, use the following cmdlet:

Get-AzureRmResourceGroup -ResourceGroupName TestRG1

自分のサブスクリプションのリソース グループをすべて取得するには、名前を指定しないでください。To get all the resource groups in your subscription, do not specify a name:

Get-AzureRmResourceGroup

リソース グループへのリソースの追加Add resources to a resource group

リソースをリソース グループに追加するには、New-AzureRmResource コマンドレット、または作成するリソースの種類に固有のコマンドレット (New-AzureRmStorageAccount など) を使用します。To add a resource to the resource group, you can use the New-AzureRmResource cmdlet or a cmdlet that is specific to the type of resource you are creating (like New-AzureRmStorageAccount). リソースの種類に固有のコマンドレットには、新しいリソースが必要とするプロパティのパラメーターが含まれているため、ほとんどの場合、こちらを使用する方が簡単です。You might find it easier to use a cmdlet that is specific to a resource type because it includes parameters for the properties that are needed for the new resource. New-AzureRmResource を使用するには、設定するすべてのプロパティを把握しておく必要があります。こうしたプロパティを入力するよう求めるメッセージは表示されません。To use New-AzureRmResource, you must know all the properties to set without being prompted for them.

ただし、コマンドレットを使ってリソースを追加した場合、その新しいリソースは Resource Manager テンプレートに存在しないため、将来的に混乱が生じる可能性があります。However, adding a resource through cmdlets might cause future confusion because the new resource does not exist in a Resource Manager template. Microsoft では、Azure ソリューションのインフラストラクチャは、Resource Manager テンプレートを使って定義することをお勧めします。Microsoft recommends defining the infrastructure for your Azure solution in a Resource Manager template. テンプレートを使用すると、ソリューションを繰り返し、かつ確実にデプロイすることができます。Templates enable you to reliably and repeatedly deploy your solution. この記事では、PowerShell コマンドレットでストレージ アカウントを作成しますが、後でリソース グループからテンプレートを生成します。For this article, you create a storage account with a PowerShell cmdlet, but later you generate a template from your resource group.

次のコマンドレットは、ストレージ アカウントを作成します。The following cmdlet creates a storage account. この例で示されている名前ではなく、ストレージ アカウントの一意の名前を指定してください。Instead of using the name shown in the example, provide a unique name for the storage account. 名前の長さは 3 ~ 24 文字で、使用できるのは数字と小文字のみです。The name must be between 3 and 24 characters in length, and use only numbers and lower-case letters. この例で示されている名前は既に使用済みのため、その名前を使うと、エラーが発生します。If you use the name shown in the example, you receive an error because that name is already in use.

New-AzureRmStorageAccount -ResourceGroupName TestRG1 -AccountName mystoragename -Type "Standard_LRS" -Location "South Central US"

後でこのリソースを取得する必要がある場合は、次のコマンドレットを使用します。If you need to retrieve this resource later, use the following cmdlet:

Get-AzureRmResource -ResourceName mystoragename -ResourceGroupName TestRG1

タグを追加しますAdd a tag

タグを使用すると、さまざまなプロパティに基づいてリソースを整理できます。Tags enable you to organize your resources according to different properties. たとえば、同じ部門に属しているさまざまなリソース グループに、複数のリソースが含まれていることがあります。For example, you may have several resources in different resource groups that belong to the same department. こうしたリソースに部門タグと値を適用して、同じカテゴリに属するものとしてマークできます。You can apply a department tag and value to those resources to mark them as belonging to the same category. また、運用環境で使用されているリソースか、テスト環境のリソースかをマークすることもできます。Or, you can mark whether a resource is used in a production or test environment. この記事では、1 つのリソースにのみタグを適用しますが、環境内では、ほとんどの場合、すべてのリソースにタグを適用すると便利です。In this article, you apply tags to only one resource, but in your environment it most likely makes sense to apply tags to all your resources.

次のコマンドレットでは、2 つのタグをストレージ アカウントに適用します。The following cmdlet applies two tags to your storage account:

Set-AzureRmResource -Tag @{ Dept="IT"; Environment="Test" } -ResourceName mystoragename -ResourceGroupName TestRG1 -ResourceType Microsoft.Storage/storageAccounts

タグは 1 つのオブジェクトとして更新されます。Tags are updated as a single object. タグが既に含まれているリソースにタグを追加するには、最初に既存のタグを取得します。To add a tag to a resource that already includes tags, first retrieve the existing tags. 新しいタグを、既存のタグが含まれるオブジェクトに追加したら、すべてのタグをリソースに再度適用します。Add the new tag to the object that contains the existing tags, and reapply all the tags to the resource.

$tags = (Get-AzureRmResource -ResourceName mystoragename -ResourceGroupName TestRG1).Tags
$tags += @{Status="Approved"}
Set-AzureRmResource -Tag $tags -ResourceName mystoragename -ResourceGroupName TestRG1 -ResourceType Microsoft.Storage/storageAccounts

リソースの検索Search for resources

Find-AzureRmResource コマンドレットを使用して、さまざまな検索条件でリソースを取得します。Use the Find-AzureRmResource cmdlet to retrieve resources for different search conditions.

  • 名前によってリソースを取得するには、ResourceNameContains パラメーターを指定します。To get a resource by name, provide the ResourceNameContains parameter:

    Find-AzureRmResource -ResourceNameContains mystoragename
    
  • リソース グループですべてのリソースを取得するには、ResourceGroupNameContains パラメーターを指定します。To get all the resources in a resource group, provide the ResourceGroupNameContains parameter:

    Find-AzureRmResource -ResourceGroupNameContains TestRG1
    
  • タグ名と値ですべてのリソースを取得するには、TagName パラメーターと TagValue パラメーターを指定します。To get all the resources with a tag name and value, provide the TagName and TagValue parameters:

    Find-AzureRmResource -TagName Dept -TagValue IT
    
  • 特定のリソースの種類のリソースをすべて取得するには、ResourceType パラメーターを指定します。To all the resources with a particular resource type, provide the ResourceType parameter:

    Find-AzureRmResource -ResourceType Microsoft.Storage/storageAccounts
    

リソース ID を取得するGet resource ID

多くのコマンドは、リソース ID をパラメーターとして受け取ります。Many commands take a resource ID as a parameter. リソースおよび変数内のストアの ID を取得するには、次のコマンドを使用します。To get the ID for a resource and store in a variable, use:

$webappID = (Get-AzureRmResource -ResourceGroupName exampleGroup -ResourceName exampleSite).ResourceId

リソースのロックLock a resource

重要なリソースが誤って削除または変更されないようにするには、そのリソースにロックを適用します。When you need to make sure a critical resource is not accidentally deleted or modified, apply a lock to the resource. CanNotDelete または ReadOnly のいずれかを指定できます。You can specify either a CanNotDelete or ReadOnly.

管理ロックを作成または削除するには、Microsoft.Authorization/* または Microsoft.Authorization/locks/* アクションにアクセスできる必要があります。To create or delete management locks, you must have access to Microsoft.Authorization/* or Microsoft.Authorization/locks/* actions. 組み込みロールのうち、所有者とユーザー アクセス管理者にのみこれらのアクションが許可されています。Of the built-in roles, only Owner and User Access Administrator are granted those actions.

ロックを適用するには、次のコマンドレットを使用します。To apply a lock, use the following cmdlet:

New-AzureRmResourceLock -LockLevel CanNotDelete -LockName LockStorage -ResourceName mystoragename -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName TestRG1

前の例でロックされたリソースは、ロックが解除されるまで削除できません。The locked resource in the preceding example cannot be deleted until the lock is removed. ロックを解除するには、次を使用します。To remove a lock, use:

Remove-AzureRmResourceLock -LockName LockStorage -ResourceName mystoragename -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName TestRG1

ロックの詳細については、Azure Resource Manager でのリソースのロックに関するページをご覧ください。For more information about setting locks, see Lock resources with Azure Resource Manager.

リソースまたはリソース グループの削除Remove resources or resource group

リソースまたはリソース グループを削除できます。You can remove a resource or resource group. リソース グループを削除すると、そのリソース グループ内のリソースもすべて削除されます。When you remove a resource group, you also remove all the resources within that resource group.

  • リソース グループからリソースを削除するには、 Remove-AzureRmResource コマンドレットを使用します。To delete a resource from the resource group, use the Remove-AzureRmResource cmdlet. このコマンドレットはリソースを削除しますが、リソース グループは削除しません。This cmdlet deletes the resource, but does not delete the resource group.

    Remove-AzureRmResource -ResourceName mystoragename -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName TestRG1
    
  • リソース グループとそのグループのリソースすべてを削除するには、Remove-AzureRmResourceGroup コマンドレットを使用します。To delete a resource group and all its resources, use the Remove-AzureRmResourceGroup cmdlet.

    Remove-AzureRmResourceGroup -Name TestRG1
    

どちらのコマンドレットについても、リソースまたはリソース グループを削除するかどうかを確認するメッセージが表示されます。For both cmdlets, you are asked to confirm that you wish to remove the resource or resource group. リソースまたはリソース グループが適切に削除されると、True が返されます。If the operation successfully deletes the resource or resource group, it returns True.

Azure Automation での Resource Manager スクリプトの実行Run Resource Manager scripts with Azure Automation

この記事では、Azure PowerShell でリソースに対して基本的な操作を行う方法について説明します。This article shows you how to perform basic operations on your resources with Azure PowerShell. 高度な管理シナリオでは、通常、スクリプトを作成し、そのスクリプトを、必要に応じてまたはスケジュールに従って再利用する必要があります。For more advanced management scenarios, you typically want to create a script, and reuse that script as needed or on a schedule. Azure Automation を使用すると、よく使用される Azure ソリューション管理スクリプトを自動化できます。Azure Automation provides a way for you to automate frequently used scripts that manage your Azure solutions.

次のトピックでは、Azure Automation、Resource Manager、および PowerShell を使用して、管理タスクを効果的に実行する方法について説明します。The following topics show you how to use Azure Automation, Resource Manager, and PowerShell to effectively perform management tasks:

次のステップNext steps