Azure Resource Manager を使用した Azure へのデプロイで発生する一般的なエラーのトラブルシューティングTroubleshoot common Azure deployment errors with Azure Resource Manager

この記事では、Azure へのデプロイで発生する可能性がある一般的なエラーについて説明し、そのエラーを解決するための情報を提供します。This article describes some common Azure deployment errors you may encounter, and provides information to resolve the errors. デプロイ エラーのエラー コードを見つけることができない場合は、「エラー コードを見つける」を参照してください。If you cannot find the error code for your deployment error, see Find error code.

エラー コードError codes

エラー コードError code 対応策Mitigation 詳細情報More information
AccountNameInvalidAccountNameInvalid ストレージ アカウントの名前付けの制限に従ってください。Follow naming restrictions for storage accounts. ストレージ アカウント名の解決Resolve storage account name
AccountPropertyCannotBeSetAccountPropertyCannotBeSet 使用可能なストレージ アカウント プロパティを確認してください。Check available storage account properties. storageAccountsstorageAccounts
AllocationFailedAllocationFailed クラスターまたはリージョンに使用可能なリソースがないか、要求された VM サイズをサポートできません。The cluster or region does not have resources available or cannot support the requested VM size. 後で要求を再試行するか、別の VM サイズを要求します。Retry the request at a later time, or request a different VM size. Linux のプロビジョニングと割り当ての問題 および Windows のプロビジョニングと割り当ての問題Provisioning and allocation issues for Linux and Provisioning and allocation issues for Windows
AnotherOperationInProgressAnotherOperationInProgress 同時実行操作の完了を待ちます。Wait for concurrent operation to complete.
AuthorizationFailedAuthorizationFailed お客様のアカウントまたはサービス プリンシパルには、デプロイを完了するために十分なアクセス権がありません。Your account or service principal does not have sufficient access to complete the deployment. 自分のアカウントが属するロールと、デプロイの範囲に対するアクセス権を確認してください。Check the role your account belongs to, and its access for the deployment scope. Azure のロールベースのアクセス制御Azure Role-Based Access Control
BadRequestBadRequest Resource Manager で予期される値と一致しないデプロイ値を送信しました。You sent deployment values that do not match what is expected by Resource Manager. トラブルシューティングの方法については、内部ステータス メッセージを確認してください。Check the inner status message for help with troubleshooting. テンプレート リファレンスサポートされている場所Template reference and Supported locations
競合Conflict リソースの現在の状態では許可されていない操作を要求しています。You are requesting an operation that is not permitted in the resource's current state. たとえば、ディスクのサイズ変更が許可されているのは、VM の作成時と VM の割り当て解除時のみです。For example, disk resizing is allowed only when creating a VM or when the VM is deallocated.
DeploymentActiveDeploymentActive このリソース グループへの同時実行デプロイが完了するまで待ちます。Wait for concurrent deployment to this resource group to complete.
DeploymentFailedDeploymentFailed DeploymentFailed エラーは、解決する必要があるエラーの詳細が示されない一般的なエラーです。The DeploymentFailed error is a general error that does not provide the details you need to solve the error. エラー コードのエラー詳細で情報を確認してください。Look in the error details for an error code that provides more information. エラー コードを見つけるFind error code
DeploymentQuotaExceededDeploymentQuotaExceeded リソース グループあたり 800 のデプロイという上限に達した場合、不要になった履歴からデプロイを削除します。If you reach the limit of 800 deployments per resource group, delete deployments from the history that are no longer needed. Azure CLI の場合は az group deployment delete を、PowerShell では Remove-AzureRmResourceGroupDeployment を使用して、履歴からエントリを削除できます。You can delete entries from the history with az group deployment delete for Azure CLI, or Remove-AzureRmResourceGroupDeployment in PowerShell. デプロイ履歴からエントリを削除しても、デプロイ リソースには影響しません。Deleting an entry from the deployment history does not affect the deploy resources.
DnsRecordInUseDnsRecordInUse DNS レコード名は、一意の名前にする必要があります。The DNS record name must be unique. 別の名前を指定するか、既存のレコードを変更してください。Either provide a different name, or modify the existing record.
ImageNotFoundImageNotFound VM イメージの設定を確認してください。Check VM image settings.
InUseSubnetCannotBeDeletedInUseSubnetCannotBeDeleted リソースを更新しようとするときにこのエラーが発生することがありますが、リソースを削除して作成すると、要求が処理されます。You may encounter this error when attempting to update a resource, but the request is processed by deleting and creating the resource. 変更されていないすべての値を指定してください。Make sure to specify all unchanged values. リソースを更新するUpdate resource
InvalidAuthenticationTokenTenantInvalidAuthenticationTokenTenant 該当するテナントのアクセス トークンを取得します。Get access token for the appropriate tenant. トークンは、自分のアカウントが属するテナントからのみ取得できます。You can only get the token from the tenant that your account belongs to.
InvalidContentLinkInvalidContentLink これは、入れ子になった無効なテンプレートにリンクしようとしたことが原因と考えられます。You have most likely attempted to link to a nested template that is not available. 入れ子になったテンプレートに指定した URI を十分に確認してください。Double check the URI you provided for the nested template. ストレージ アカウントにテンプレートがある場合は、URI がアクセス可能であることを確認してください。If the template exists in a storage account, make sure the URI is accessible. 場合によっては、SAS トークンを渡す必要があります。You may need to pass a SAS token. リンク済みテンプレートLinked templates
InvalidParameterInvalidParameter リソースに対して指定したいずれかの値が、予期される値に一致しません。One of the values you provided for a resource does not match the expected value. このエラーはさまざまな状況が原因となって発生する可能性があります。This error can result from many different conditions. たとえば、パスワードが十分でない場合や、BLOB 名が正しくない場合があります。For example, a password may be insufficient, or a blob name may be incorrect. エラー メッセージを確認して、どの値を修正する必要があるかを判断してください。Check the error message to determine which value needs to be corrected.
InvalidRequestContentInvalidRequestContent デプロイの値に予期されない値が含まれているか、必要な値が不足しています。Your deployment values either include values that are not expected or are missing required values. リソースの種類の値を確認してください。Confirm the values for your resource type. テンプレート リファレンスTemplate reference
InvalidRequestFormatInvalidRequestFormat デプロイを実行するときにデバッグ ログを有効にし、要求の内容を確認してください。Enable debug logging when executing the deployment, and verify the contents of the request. デバッグ ログDebug logging
InvalidResourceNamespaceInvalidResourceNamespace type プロパティに指定したリソース名前空間を確認してください。Check the resource namespace you specified in the type property. テンプレート リファレンスTemplate reference
InvalidResourceReferenceInvalidResourceReference リソースがまだ存在しないか、正しく参照されていません。The resource either does not yet exist or is incorrectly referenced. 依存関係を追加する必要があるかどうかを確認してください。Check whether you need to add a dependency. シナリオに必要なパラメーターを含めて reference 関数を使用しているかどうかを確認してください。Verify that your use of the reference function includes the required parameters for your scenario. 依存関係を解決するResolve dependencies
InvalidResourceTypeInvalidResourceType type プロパティに指定したリソースの種類を確認してください。Check the resource type you specified in the type property. テンプレート リファレンスTemplate reference
InvalidSubscriptionRegistrationStateInvalidSubscriptionRegistrationState リソース プロバイダーにサブスクリプションを登録してください。Register your subscription with the resource provider. 登録を解決するResolve registration
InvalidTemplateInvalidTemplate テンプレートの構文にエラーがないか確認してください。Check your template syntax for errors. 無効なテンプレートを解決するResolve invalid template
InvalidTemplateCircularDependencyInvalidTemplateCircularDependency 不要な依存関係を削除します。Remove unnecessary dependencies. 循環依存関係を解決するResolve circular dependencies
LinkedAuthorizationFailedLinkedAuthorizationFailed デプロイ先のリソース グループと同じテナントに自分のアカウントが属しているかどうかを確認してください。Check if your account belongs to the same tenant as the resource group you are deploying to.
LinkedInvalidPropertyIdLinkedInvalidPropertyId リソースのリソース ID が正しく解決されていません。The resource ID for a resource is not resolving correctly. リソース ID に必要なすべての値 (サブスクリプション ID、リソース グループ名、リソースの種類、親リソース名 (必要な場合)、リソース名など) を指定しているかどうかを確認してください。Check that you provide all required values for the resource ID, including subscription ID, resource group name, resource type, parent resource name (if needed), and resource name.
LocationRequiredLocationRequired リソースの場所を指定します。Provide a location for your resource. 場所を設定するSet location
MismatchingResourceSegmentsMismatchingResourceSegments 入れ子になったリソースの名前と種類でセグメント数が正しいことを確認します。Make sure nested resource has correct number of segments in name and type. リソース セグメントを解決するResolve resource segments
MissingRegistrationForLocationMissingRegistrationForLocation リソース プロバイダーの登録状態、およびサポートされている場所を確認してください。Check resource provider registration status, and supported locations. 登録を解決するResolve registration
MissingSubscriptionRegistrationMissingSubscriptionRegistration リソース プロバイダーにサブスクリプションを登録してください。Register your subscription with the resource provider. 登録を解決するResolve registration
NoRegisteredProviderFoundNoRegisteredProviderFound リソース プロバイダーの登録状態を確認してください。Check resource provider registration status. 登録を解決するResolve registration
NotFoundNotFound 依存するリソースを、親リソースと並列にデプロイしようとしています。You may be attempting to deploy a dependent resource in parallel with a parent resource. 依存関係を追加する必要があるかどうかを確認してください。Check if you need to add a dependency. 依存関係を解決するResolve dependencies
OperationNotAllowedOperationNotAllowed デプロイで、サブスクリプション、リソース グループ、またはリージョンのクォータを超過する操作が試みられています。The deployment is attempting an operation that exceeds the quota for the subscription, resource group, or region. 可能であれば、クォータ内に収まるようにデプロイを修正してください。If possible, revise your deployment to stay within the quotas. 修正できない場合は、クォータの変更を要求することを検討してください。Otherwise, consider requesting a change to your quotas. クォータを解決するResolve quotas
ParentResourceNotFoundParentResourceNotFound 子リソースを作成する前に親リソースが存在することを確認してください。Make sure a parent resource exists before creating the child resources. 親リソースを解決するResolve parent resource
PrivateIPAddressInReservedRangePrivateIPAddressInReservedRange 指定した IP アドレスは、Azure で必要なアドレス範囲に含まれます。The specified IP address includes an address range required by Azure. 予約済みの範囲を避けるように IP アドレスを変更してください。Change IP address to avoid reserved range. IP アドレスIP addresses
PrivateIPAddressNotInSubnetPrivateIPAddressNotInSubnet 指定した IP アドレスがサブネットの範囲外です。The specified IP address is outside of the subnet range. サブネットの範囲に収まるように IP アドレスを変更してください。Change IP address to fall within subnet range. IP アドレスIP addresses
PropertyChangeNotAllowedPropertyChangeNotAllowed デプロイ済みのリソースで、一部のプロパティを変更できません。Some properties cannot be changed on a deployed resource. リソースを更新する際は、許可されているプロパティに変更を制限してください。When updating a resource, limit your changes to permitted properties. リソースを更新するUpdate resource
RequestDisallowedByPolicyRequestDisallowedByPolicy デプロイ時に実行しようとしているアクションを禁止するリソース ポリシーがサブスクリプションに含まれます。Your subscription includes a resource policy that prevents an action you are trying to perform during deployment. アクションをブロックしているポリシーを見つけてください。Find the policy that blocks the action. 可能であれば、ポリシーの制限を満たすようにデプロイを変更してください。If possible, modify your deployment to meet the limitations from the policy. ポリシーを解決するResolve policies
ReservedResourceNameReservedResourceName 予約された名前が含まれていないリソース名を指定します。Provide a resource name that does not include a reserved name. 予約されたリソース名Reserved resource names
ResourceGroupBeingDeletedResourceGroupBeingDeleted 削除が完了するまで待ちます。Wait for deletion to complete.
ResourceGroupNotFoundResourceGroupNotFound デプロイのターゲット リソース グループの名前を確認してください。Check the name of the target resource group for the deployment. サブスクリプションにそのリソース グループが既に存在している必要があります。It must already exist in your subscription. サブスクリプションのコンテキストを確認してください。Check your subscription context. Azure CLIPowerShellAzure CLI PowerShell
ResourceNotFoundResourceNotFound 解決できないリソースをデプロイで参照しています。Your deployment references a resource that cannot be resolved. reference 関数に、シナリオに必要なパラメーターを含まれていることを確認してください。Verify that your use of the reference function includes the parameters required for your scenario. 参照を解決するResolve references
ResourceQuotaExceededResourceQuotaExceeded デプロイで、サブスクリプション、リソース グループ、またはリージョンのクォータを超過するリソースの作成が試みられています。The deployment is attempting to create resources that exceed the quota for the subscription, resource group, or region. 可能であれば、クォータ内に収まるようにインフラストラクチャを変更してください。If possible, revise your infrastructure to stay within the quotas. 修正できない場合は、クォータの変更を要求することを検討してください。Otherwise, consider requesting a change to your quotas. クォータを解決するResolve quotas
SkuNotAvailableSkuNotAvailable 選択した場所で利用可能な SKU (VM サイズなど) を選択します。Select SKU (such as VM size) that is available for the location you have selected. SKU を解決するResolve SKU
StorageAccountAlreadyExistsStorageAccountAlreadyExists ストレージ アカウントに一意の名前を指定してください。Provide a unique name for the storage account. ストレージ アカウント名の解決Resolve storage account name
StorageAccountAlreadyTakenStorageAccountAlreadyTaken ストレージ アカウントに一意の名前を指定してください。Provide a unique name for the storage account. ストレージ アカウント名の解決Resolve storage account name
StorageAccountNotFoundStorageAccountNotFound サブスクリプション、リソース グループ、および使用するストレージ アカウントの名前を確認してください。Check the subscription, resource group, and name of the storage account you are attempting to use.
SubnetsNotInSameVnetSubnetsNotInSameVnet 仮想マシンでは、仮想ネットワークを 1 つのみを持つことができます。A virtual machine can only have one virtual network. 複数の NIC をデプロイするときは、それらが同じ仮想ネットワークに属していることを確認してください。When deploying multiple NICs, make sure they belong to the same virtual network. 複数の NICMultiple NICs
TemplateResourceCircularDependencyTemplateResourceCircularDependency 不要な依存関係を削除します。Remove unnecessary dependencies. 循環依存関係を解決するResolve circular dependencies
TooManyTargetResourceGroupsTooManyTargetResourceGroups 1 回のデプロイのリソース グループ数を減らします。Reduce number of resource groups for a single deployment. リソース グループ間のデプロイCross resource group deployment

エラー コードを見つけるFind error code

発生する可能性のあるエラーには、次の 2 種類があります。There are two types of errors you can receive:

  • 検証エラーvalidation errors
  • デプロイ エラーdeployment errors

検証エラーは、デプロイ前に判断できるシナリオで発生します。Validation errors arise from scenarios that can be determined before deployment. これには、テンプレートに構文エラーがある場合や、サブスクリプション クォータを超えるリソースをデプロイしようとしている場合などがあります。They include syntax errors in your template, or trying to deploy resources that would exceed your subscription quotas. デプロイ エラーは、デプロイ プロセスで発生する状況に起因します。Deployment errors arise from conditions that occur during the deployment process. これには、並列でデプロイされているリソースにアクセスしようとしている場合などがあります。They include trying to access a resource that is being deployed in parallel.

この 2 種類のエラーでは、デプロイのトラブルシューティングに使用するエラー コードが返されます。Both types of errors return an error code that you use to troubleshoot the deployment. どちらの種類のエラーもアクティビティ ログに表示されます。Both types of errors appear in the activity log. ただし、検証エラーは、デプロイが開始されていないため、デプロイ履歴には表示されません。However, validation errors do not appear in your deployment history because the deployment never started.

検証エラーValidation errors

ポータルでのデプロイ時に、値を送信した後に検証エラーを確認します。When deploying through the portal, you see a validation error after submitting your values.

ポータルの検証エラーの表示

詳細については、メッセージを選択します。Select the message for more details. 次の図では、InvalidTemplateDeployment エラーとポリシーがデプロイをブロックしていることを示すメッセージが示されます。In the following image, you see an InvalidTemplateDeployment error and a message that indicates a policy blocked deployment.

検証の詳細の表示

デプロイ エラーDeployment errors

操作で検証を通過しますが、デプロイ中に失敗した場合、通知でエラーが表示されます。When the operation passes validation, but fails during deployment, you see the error in the notifications. 通知を選択します。Select the notification.

通知エラー

デプロイに関する詳細を表示します。You see more details about the deployment. オプションを選択して、エラーの詳細を確認します。Select the option to find more information about the error.

デプロイの失敗

エラー メッセージとエラー コードを表示します。You see the error message and error codes. 2 つのエラー コードがあることを確認します。Notice there are two error codes. 最初のエラー コード (DeploymentFailed) は、解決する必要があるエラーの詳細が示されない一般的なエラーです。The first error code (DeploymentFailed) is a general error that doesn't provide the details you need to solve the error. 2 つ目のエラー コード (StorageAccountNotFound) は、必要な詳細が示されます。The second error code (StorageAccountNotFound) provides the details you need.

エラーの詳細

デバッグ ログの有効化Enable debug logging

問題が発生した原因を調べるには、要求と応答の詳細が必要な場合があります。Sometimes you need more information about the request and response to learn what went wrong. PowerShell または Azure CLI を使用して、デプロイ時に追加情報をログに記録することを要求できます。By using PowerShell or Azure CLI, you can request that additional information is logged during a deployment.

  • PowerShellPowerShell

    PowerShell では、DeploymentDebugLogLevel パラメーターを All、ResponseContent、または RequestContent に設定します。In PowerShell, set the DeploymentDebugLogLevel parameter to All, ResponseContent, or RequestContent.

    New-AzureRmResourceGroupDeployment -ResourceGroupName examplegroup -TemplateFile c:\Azure\Templates\storage.json -DeploymentDebugLogLevel All
    

    次のコマンドレットを使用して、要求の内容を確認します。Examine the request content with the following cmdlet:

    (Get-AzureRmResourceGroupDeploymentOperation -DeploymentName storageonly -ResourceGroupName startgroup).Properties.request | ConvertTo-Json
    

    次のコマンドレットを使用して、応答の内容を確認します。Or, the response content with:

    (Get-AzureRmResourceGroupDeploymentOperation -DeploymentName storageonly -ResourceGroupName startgroup).Properties.response | ConvertTo-Json
    

    この情報は、テンプレートの値が正しく設定されているかどうかを確認するのに役立ちます。This information can help you determine whether a value in the template is being incorrectly set.

  • Azure CLIAzure CLI

    次のコマンドでデプロイ操作を確認します。Examine the deployment operations with the following command:

    az group deployment operation list --resource-group ExampleGroup --name vmlinux
    
  • 入れ子になったテンプレートNested template

    入れ子になったテンプレートのデバッグ情報をログに記録するには、debugSetting 要素を使用します。To log debug information for a nested template, use the debugSetting element.

    {
        "apiVersion": "2016-09-01",
        "name": "nestedTemplate",
        "type": "Microsoft.Resources/deployments",
        "properties": {
            "mode": "Incremental",
            "templateLink": {
                "uri": "{template-uri}",
                "contentVersion": "1.0.0.0"
            },
            "debugSetting": {
               "detailLevel": "requestContent, responseContent"
            }
        }
    }
    

トラブルシューティング用テンプレートの作成Create a troubleshooting template

場合によっては、テンプレートのトラブルシューティングの最も簡単な方法は、テンプレートの一部をテストすることです。In some cases, the easiest way to troubleshoot your template is to test parts of it. エラーの原因と考えられる部分に注目できる簡略化されたテンプレートを作成できます。You can create a simplified template that enables you to focus on the part that you believe is causing the error. たとえば、リソースの参照時にエラーが発生しているとします。For example, suppose you are receiving an error when referencing a resource. この場合、テンプレート全体を処理するのではなく、問題の原因と考えられる部分を返すテンプレートを作成します。Rather than dealing with an entire template, create a template that returns the part that may be causing your problem. これにより、適切なパラメーターを渡しているかどうか、テンプレート関数を正しく使用しているかどうか、求めているリソースを取得しているかどうかを確認できます。It can help you determine whether you are passing in the right parameters, using template functions correctly, and getting the resource you expect.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
        "type": "string"
    },
    "storageResourceGroup": {
        "type": "string"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "exampleOutput": {
        "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-05-01')]",
        "type" : "object"
    }
  }
}

または、設定の誤った依存関係に関連すると思われるデプロイ エラーが発生していると仮定します。Or, suppose you are encountering deployment errors that you believe are related to incorrectly set dependencies. テンプレートをテストするには、これを簡略化されたテンプレートに分解します。Test your template by breaking it into simplified templates. 最初に、1 つのリソース (SQL Server など) のみをデプロイするテンプレートを作成します。First, create a template that deploys only a single resource (like a SQL Server). そのリソースを正しく定義したことを確認したら、それに依存するリソース (SQL Database など) を追加します。When you are sure you have that resource correctly defined, add a resource that depends on it (like a SQL Database). これら 2 つのリソースを正しく定義したことを確認したら、その他の依存リソース (監査ポリシーなど) を追加します。When you have those two resources correctly defined, add other dependent resources (like auditing policies). 各テスト デプロイの合間に、リソース グループを削除して、依存関係を適切にテストしていることを確認します。In between each test deployment, delete the resource group to make sure you adequately testing the dependencies.

次の手順Next steps