Azure Resource Manager テンプレートのリソース関数Resource functions for Azure Resource Manager templates

リソース マネージャーには、リソース値を取得する次の関数が用意されています。Resource Manager provides the following functions for getting resource values:

パラメーター、変数、現在のデプロイから値を取得する方法については、「 デプロイの値関数」を参照してください。To get values from parameters, variables, or the current deployment, see Deployment value functions.

listKeys と list{Value}listKeys and list{Value}

listKeys(resourceName or resourceIdentifier, apiVersion)

list{Value}(resourceName or resourceIdentifier, apiVersion)

list 操作をサポートする任意の種類のリソースの値を返します。Returns the values for any resource type that supports the list operation. 最も一般的に使用されるのは、listKeys です。The most common usage is listKeys.

parametersParameters

パラメーターが含まれる必要があります。Parameter 必須Required Type DescriptionDescription
resourceName または resourceIdentifierresourceName or resourceIdentifier はいYes stringstring リソースの一意識別子です。Unique identifier for the resource.
apiVersionapiVersion はいYes stringstring リソースのランタイム状態の API バージョン。API version of resource runtime state. 通常、yyyy-mm-dd の形式。Typically, in the format, yyyy-mm-dd.

戻り値Return value

listKeys から返されるオブジェクトの形式は次のとおりです。The returned object from listKeys has the following format:

{
  "keys": [
    {
      "keyName": "key1",
      "permissions": "Full",
      "value": "{value}"
    },
    {
      "keyName": "key2",
      "permissions": "Full",
      "value": "{value}"
    }
  ]
}

他のリスト関数の戻り値の形式はさまざまです。Other list functions have different return formats. 関数の形式を確認するには、テンプレートの例に示すように、outputs セクションにその関数を含めてください。To see the format of a function, include it in the outputs section as shown in the example template.

解説Remarks

list で始まるすべての操作は、テンプレート内で関数として使用できます。Any operation that starts with list can be used as a function in your template. 使用可能な操作には、listKeys だけでなく、listlistAdminKeyslistStatus などの操作も含まれます。The available operations include not only listKeys, but also operations like list, listAdminKeys, and listStatus. ただし、要求本文の値が必要な list 操作は使用できません。However, you cannot use list operations that require values in the request body. たとえば、List Account SAS 操作には、signedExpiry など、要求本文のパラメーターが必要なので、テンプレート内では使用できません。For example, the List Account SAS operation requires request body parameters like signedExpiry, so you cannot use it within a template.

どのリソースの種類にリスト操作が含まれているのかを判断するには、次のオプションを使用できます。To determine which resource types have a list operation, you have the following options:

  • リソース プロバイダーの REST API の操作に関するページを参照して、リスト操作を検索します。View the REST API operations for a resource provider, and look for list operations. たとえば、ストレージ アカウントには listKeys 操作があります。For example, storage accounts have the listKeys operation.
  • Get-AzureRmProviderOperation PowerShell コマンドレットを使用します。Use the Get-AzureRmProviderOperation PowerShell cmdlet. 次の例では、ストレージ アカウントのすべてのリスト操作が取得されます。The following example gets all list operations for storage accounts:

    Get-AzureRmProviderOperation -OperationSearchString "Microsoft.Storage/*" | where {$_.Operation -like "*list*"} | FT Operation
    
  • 次の Azure CLI コマンドを使って、リスト操作のみをフィルター処理します。Use the following Azure CLI command to filter only the list operations:

    az provider operation show --namespace Microsoft.Storage --query "resourceTypes[?name=='storageAccounts'].operations[].name | [?contains(@, 'list')]"
    

resourceId 関数または {providerNamespace}/{resourceType}/{resourceName} の形式を使用してリソースを指定します。Specify the resource by using either the resourceId function, or the format {providerNamespace}/{resourceType}/{resourceName}.

Example

次のテンプレート例は、outputs セクションでストレージ アカウントのプライマリ キーとセカンダリ キーを返す方法を示しています。The following example template shows how to return the primary and secondary keys from a storage account in the outputs section.

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "storageAccountName": { 
          "type": "string"
      }
  },
  "resources": [
    {
      "name": "[parameters('storageAccountName')]",
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2016-12-01",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "location": "[resourceGroup().location]",
      "tags": {},
      "properties": {
      }
    }
  ],
  "outputs": {
      "referenceOutput": {
          "type": "object",
          "value": "[listKeys(parameters('storageAccountName'), '2016-12-01')]"
      }
    }
}

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/listkeys.json --parameters storageAccountName=<your-storage-account>

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/listkeys.json -storageAccountName <your-storage-account>

providersproviders

providers(providerNamespace, [resourceType])

リソース プロバイダーとサポートされているそのリソースの種類に関する情報を返します。Returns information about a resource provider and its supported resource types. リソースの種類を指定しない場合、関数はリソース プロバイダーでサポートされているすべての種類を返します。If you do not provide a resource type, the function returns all the supported types for the resource provider.

parametersParameters

パラメーターが含まれる必要があります。Parameter 必須Required Type DescriptionDescription
providerNamespaceproviderNamespace はいYes stringstring プロバイダーの名前空間Namespace of the provider
resourceTyperesourceType いいえNo stringstring 指定した名前空間内にあるリソースの種類。The type of resource within the specified namespace.

戻り値Return value

サポートされている各種類は、次の形式で返されます。Each supported type is returned in the following format:

{
    "resourceType": "{name of resource type}",
    "locations": [ all supported locations ],
    "apiVersions": [ all supported API versions ]
}

戻り値の配列の順序は保証されません。Array ordering of the returned values is not guaranteed.

Example

次のテンプレート例は、provider 関数の使用方法を示しています。The following example template shows how to use the provider function:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "providerNamespace": {
            "type": "string"
        },
        "resourceType": {
            "type": "string"
        }
    },
    "resources": [],
    "outputs": {
        "providerOutput": {
            "value": "[providers(parameters('providerNamespace'), parameters('resourceType'))]",
            "type" : "object"
        }
    }
}

Microsoft.Web リソース プロバイダーでリソースの種類が sites の場合、前の例では、次の形式のオブジェクトが返されます。For the Microsoft.Web resource provider and sites resource type, the preceding example returns an object in the following format:

{
  "resourceType": "sites",
  "locations": [
    "South Central US",
    "North Europe",
    "West Europe",
    "Southeast Asia",
    ...
  ],
  "apiVersions": [
    "2016-08-01",
    "2016-03-01",
    "2015-08-01-preview",
    "2015-08-01",
    ...
  ]
}

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/providers.json --parameters providerNamespace=Microsoft.Web resourceType=sites

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/providers.json -providerNamespace Microsoft.Web -resourceType sites

referencereference

reference(resourceName or resourceIdentifier, [apiVersion], ['Full'])

リソースのランタイム状態を表すオブジェクトを返します。Returns an object representing a resource's runtime state.

parametersParameters

パラメーターが含まれる必要があります。Parameter 必須Required Type DescriptionDescription
resourceName または resourceIdentifierresourceName or resourceIdentifier はいYes stringstring 名前またはリソースの一意の識別子。Name or unique identifier of a resource.
apiVersionapiVersion いいえNo stringstring 指定したリソースの API バージョンです。API version of the specified resource. 同じテンプレート内でリソースがプロビジョニングされない場合に、このパラメーターを追加します。Include this parameter when the resource is not provisioned within same template. 通常、yyyy-mm-dd の形式。Typically, in the format, yyyy-mm-dd.
'Full''Full' いいえNo stringstring 完全なリソース オブジェクトを返すかどうかを指定する値。Value that specifies whether to return the full resource object. 'Full' を指定しない場合、リソースのプロパティ オブジェクトのみが返されます。If you do not specify 'Full', only the properties object of the resource is returned. 完全なオブジェクトには、リソース ID や場所などの値が含まれます。The full object includes values such as the resource ID and location.

戻り値Return value

あらゆるリソースの種類で、reference 関数のさまざまなプロパティが返されます。Every resource type returns different properties for the reference function. この関数は、定義済みの単一の形式を返しません。The function does not return a single, predefined format. また、返される値は、完全なオブジェクトを指定したかどうかによって異なります。Also, the returned value differs based on whether you specified the full object. あるリソースの種類のプロパティを確認するには、この例に示すように、outputs セクションでオブジェクトを返します。To see the properties for a resource type, return the object in the outputs section as shown in the example.

解説Remarks

reference 関数はその値をランタイム状態から取得するので、変数セクションでは使用できません。The reference function derives its value from a runtime state, and therefore cannot be used in the variables section. これは、テンプレートの出力セクションで使用できます。It can be used in outputs section of a template.

reference 関数を使用して、参照先のリソースが同じテンプレート内でプロビジョニングされる場合に、あるリソースが他のリソースに依存することを暗黙的に宣言します。By using the reference function, you implicitly declare that one resource depends on another resource if the referenced resource is provisioned within same template. dependsOn プロパティを一緒に使用する必要はありません。You do not need to also use the dependsOn property. 参照先のリソースがデプロイを完了するまで、関数は評価されません。The function is not evaluated until the referenced resource has completed deployment.

ある種類のリソースによって返されるプロパティの名前と値を確認するには、outputs セクションでオブジェクトを返すテンプレートを作成します。To see the property names and values for a resource type, create a template that returns the object in the outputs section. その種類のリソースが既にある場合、このテンプレートは新しいリソースはデプロイせずにオブジェクトを返します。If you have an existing resource of that type, your template returns the object without deploying any new resources.

通常、reference 関数は、BLOB エンドポイント URI や完全修飾ドメイン名などのオブジェクトから特定の値を返すために使用します。Typically, you use the reference function to return a particular value from an object, such as the blob endpoint URI or fully qualified domain name.

"outputs": {
    "BlobUri": {
        "value": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('storageAccountName')), '2016-01-01').primaryEndpoints.blob]",
        "type" : "string"
    },
    "FQDN": {
        "value": "[reference(concat('Microsoft.Network/publicIPAddresses/', parameters('ipAddressName')), '2016-03-30').dnsSettings.fqdn]",
        "type" : "string"
    }
}

'Full' は、プロパティのスキーマに含まれないリソースの値が必要なときに使用します。Use 'Full' when you need resource values that are not part of the properties schema. たとえば、キー コンテナーのアクセス ポリシーを設定するために、仮想マシンの ID プロパティを取得する場合です。For example, to set key vault access policies, get the identity properties for a virtual machine.

{
  "type": "Microsoft.KeyVault/vaults",
  "properties": {
    "tenantId": "[reference(concat('Microsoft.Compute/virtualMachines/', variables('vmName')), '2017-03-30', 'Full').identity.tenantId]",
    "accessPolicies": [
      {
        "tenantId": "[reference(concat('Microsoft.Compute/virtualMachines/', variables('vmName')), '2017-03-30', 'Full').identity.tenantId]",
        "objectId": "[reference(concat('Microsoft.Compute/virtualMachines/', variables('vmName')), '2017-03-30', 'Full').identity.principalId]",
        "permissions": {
          "keys": [
            "all"
          ],
          "secrets": [
            "all"
          ]
        }
      }
    ],
    ...

前のテンプレートの完全な例については、Windows での Key Vault に関するページを参照してください。For the complete example of the preceding template, see Windows to Key Vault. 同様の例を Linux についても利用できます。A similar example is available for Linux.

Example

次のテンプレート例では、リソースをデプロイし、そのリソースを参照します。The following example template deploys a resource, and references that resource.

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "storageAccountName": { 
          "type": "string"
      }
  },
  "resources": [
    {
      "name": "[parameters('storageAccountName')]",
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2016-12-01",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "location": "[resourceGroup().location]",
      "tags": {},
      "properties": {
      }
    }
  ],
  "outputs": {
      "referenceOutput": {
          "type": "object",
          "value": "[reference(parameters('storageAccountName'))]"
      },
      "fullReferenceOutput": {
        "type": "object",
        "value": "[reference(parameters('storageAccountName'), '2016-12-01', 'Full')]"
      }
    }
}

前の例では、2 つのオブジェクトが返されます。The preceding example returns the two objects. properties オブジェクトの形式は次のとおりです。The properties object is in the following format:

{
   "creationTime": "2017-10-09T18:55:40.5863736Z",
   "primaryEndpoints": {
     "blob": "https://examplestorage.blob.core.windows.net/",
     "file": "https://examplestorage.file.core.windows.net/",
     "queue": "https://examplestorage.queue.core.windows.net/",
     "table": "https://examplestorage.table.core.windows.net/"
   },
   "primaryLocation": "southcentralus",
   "provisioningState": "Succeeded",
   "statusOfPrimary": "available",
   "supportsHttpsTrafficOnly": false
}

完全なオブジェクトの形式は次のとおりです。The full object is in the following format:

{
  "apiVersion":"2016-12-01",
  "location":"southcentralus",
  "sku": {
    "name":"Standard_LRS",
    "tier":"Standard"
  },
  "tags":{},
  "kind":"Storage",
  "properties": {
    "creationTime":"2017-10-09T18:55:40.5863736Z",
    "primaryEndpoints": {
      "blob":"https://examplestorage.blob.core.windows.net/",
      "file":"https://examplestorage.file.core.windows.net/",
      "queue":"https://examplestorage.queue.core.windows.net/",
      "table":"https://examplestorage.table.core.windows.net/"
    },
    "primaryLocation":"southcentralus",
    "provisioningState":"Succeeded",
    "statusOfPrimary":"available",
    "supportsHttpsTrafficOnly":false
  },
  "subscriptionId":"<subscription-id>",
  "resourceGroupName":"functionexamplegroup",
  "resourceId":"Microsoft.Storage/storageAccounts/examplestorage",
  "referenceApiVersion":"2016-12-01",
  "condition":true,
  "isConditionTrue":true,
  "isTemplateResource":false,
  "isAction":false,
  "provisioningOperation":"Read"
}

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/referencewithstorage.json --parameters storageAccountName=<your-storage-account>

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/referencewithstorage.json -storageAccountName <your-storage-account>

次のテンプレート例では、このテンプレートでデプロイされていないストレージ アカウントが参照されます。The following example template references a storage account that is not deployed in this template. このストレージ アカウントは既に同じリソース グループ内に存在します。The storage account already exists within the same resource group.

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

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/reference.json --parameters storageAccountName=<your-storage-account>

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/reference.json -storageAccountName <your-storage-account>

resourceGroupresourceGroup

resourceGroup()

現在のリソース グループを表すオブジェクトを返します。Returns an object that represents the current resource group.

戻り値Return value

返されるオブジェクトの形式は次のとおりです。The returned object is in the following format:

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

解説Remarks

resourceGroup 関数の一般的な用途では、リソース グループと同じ場所にリソースを作成します。A common use of the resourceGroup function is to create resources in the same location as the resource group. 次の例では、リソース グループの場所を使用して、Web サイトの場所を割り当てます。The following example uses the resource group location to assign the location for a web site.

"resources": [
   {
      "apiVersion": "2016-08-01",
      "type": "Microsoft.Web/sites",
      "name": "[parameters('siteName')]",
      "location": "[resourceGroup().location]",
      ...
   }
]

Example

次のテンプレート例は、リソース グループのプロパティを返します。The following example template returns the properties of the resource group.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [],
    "outputs": {
        "resourceGroupOutput": {
            "value": "[resourceGroup()]",
            "type" : "object"
        }
    }
}

前の例では、次の形式のオブジェクトが返されます。The preceding example returns an object in the following format:

{
  "id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
  "name": "examplegroup",
  "location": "southcentralus",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/resourcegroup.json

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/resourcegroup.json 

resourceIdresourceId

resourceId([subscriptionId], [resourceGroupName], resourceType, resourceName1, [resourceName2]...)

リソースの一意の識別子を返します。Returns the unique identifier of a resource. リソース名があいまいであるか、同じテンプレート内でプロビジョニングされていないときに、この関数を使用します。You use this function when the resource name is ambiguous or not provisioned within the same template.

parametersParameters

パラメーターが含まれる必要があります。Parameter 必須Required Type DescriptionDescription
subscriptionIdsubscriptionId いいえNo 文字列 (GUID 形式)string (In GUID format) 既定値は、現在のサブスクリプションです。Default value is the current subscription. 別のサブスクリプション内のリソースを取得する必要がある場合は、この値を指定します。Specify this value when you need to retrieve a resource in another subscription.
resourceGroupNameresourceGroupName いいえNo stringstring 既定値は、現在のリソース グループです。Default value is current resource group. 別のリソース グループ内のリソースを取得する必要がある場合は、この値を指定します。Specify this value when you need to retrieve a resource in another resource group.
resourceTyperesourceType はいYes stringstring リソース プロバイダーの名前空間を含むリソースの種類。Type of resource including resource provider namespace.
resourceName1resourceName1 はいYes stringstring リソースの名前。Name of resource.
resourceName2resourceName2 いいえNo stringstring リソースが入れ子になっている場合、次のリソース名セグメント。Next resource name segment if resource is nested.

戻り値Return value

識別子は、次の形式で返されます。The identifier is returned in the following format:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

解説Remarks

指定するパラメーター値は、リソースが現在のデプロイと同じサブスクリプションおよびリソース グループに含まれるかどうかによって異なります。The parameter values you specify depend on whether the resource is in the same subscription and resource group as the current deployment.

同じサブスクリプションとリソース グループ内にあるストレージ アカウントのリソース ID を取得するには、次のようにします。To get the resource ID for a storage account in the same subscription and resource group, use:

"[resourceId('Microsoft.Storage/storageAccounts','examplestorage')]"

サブスクリプションは同じでもリソース グループが異なるストレージ アカウントのリソース ID を取得するには、次のようにします。To get the resource ID for a storage account in the same subscription but a different resource group, use:

"[resourceId('otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"

サブスクリプションとリソース グループが異なるストレージ アカウントのリソース ID を取得するには、次のようにします。To get the resource ID for a storage account in a different subscription and resource group, use:

"[resourceId('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"

異なるリソース グループ内のデータベースのリソース ID を取得するには、次のようにします。To get the resource ID for a database in a different resource group, use:

"[resourceId('otherResourceGroup', 'Microsoft.SQL/servers/databases', parameters('serverName'), parameters('databaseName'))]"

代替のリソース グループで、ストレージ アカウントや仮想ネットワークを使用するときには、多くの場合にこの関数を使用する必要があります。Often, you need to use this function when using a storage account or virtual network in an alternate resource group. 次の例は、外部のリソース グループのリソースを簡単に使用する方法を示しています。The following example shows how a resource from an external resource group can easily be used:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "virtualNetworkName": {
          "type": "string"
      },
      "virtualNetworkResourceGroup": {
          "type": "string"
      },
      "subnet1Name": {
          "type": "string"
      },
      "nicName": {
          "type": "string"
      }
  },
  "variables": {
      "vnetID": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]",
      "subnet1Ref": "[concat(variables('vnetID'),'/subnets/', parameters('subnet1Name'))]"
  },
  "resources": [
  {
      "apiVersion": "2015-05-01-preview",
      "type": "Microsoft.Network/networkInterfaces",
      "name": "[parameters('nicName')]",
      "location": "[parameters('location')]",
      "properties": {
          "ipConfigurations": [{
              "name": "ipconfig1",
              "properties": {
                  "privateIPAllocationMethod": "Dynamic",
                  "subnet": {
                      "id": "[variables('subnet1Ref')]"
                  }
              }
          }]
       }
  }]
}

Example

次のテンプレート例では、リソース グループ内にあるストレージ アカウントのリソース ID を返します。The following example template returns the resource ID for a storage account in the resource group:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [],
    "outputs": {
        "sameRGOutput": {
            "value": "[resourceId('Microsoft.Storage/storageAccounts','examplestorage')]",
            "type" : "string"
        },
        "differentRGOutput": {
            "value": "[resourceId('otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]",
            "type" : "string"
        },
        "differentSubOutput": {
            "value": "[resourceId('11111111-1111-1111-1111-111111111111', 'otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]",
            "type" : "string"
        },
        "nestedResourceOutput": {
            "value": "[resourceId('Microsoft.SQL/servers/databases', 'serverName', 'databaseName')]",
            "type" : "string"
        }
    }
}

既定値を使用した場合の前の例の出力は次のようになります。The output from the preceding example with the default values is:

名前Name Type Value
sameRGOutputsameRGOutput StringString /subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentRGOutputdifferentRGOutput StringString /subscriptions/{current-sub-id}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/{current-sub-id}/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
differentSubOutputdifferentSubOutput StringString /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage
nestedResourceOutputnestedResourceOutput StringString /subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName/subscriptions/{current-sub-id}/resourceGroups/examplegroup/providers/Microsoft.SQL/servers/serverName/databases/databaseName

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/resourceid.json

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/resourceid.json 

サブスクリプションsubscription

subscription()

現在のデプロイのサブスクリプションの詳細を返します。Returns details about the subscription for the current deployment.

戻り値Return value

この関数は次の形式を返します。The function returns the following format:

{
    "id": "/subscriptions/{subscription-id}",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}",
    "displayName": "{name-of-subscription}"
}

Example

次のテンプレート例は、outputs セクションで呼び出される subscription 関数を示しています。The following example template shows the subscription function called in the outputs section.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [],
    "outputs": {
        "subscriptionOutput": {
            "value": "[subscription()]",
            "type" : "object"
        }
    }
}

Azure CLI を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with Azure CLI, use:

az group deployment create -g functionexamplegroup --template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/subscription.json

PowerShell を使用してこのテンプレート例をデプロイするには、以下を使用します。To deploy this example template with PowerShell, use:

New-AzureRmResourceGroupDeployment -ResourceGroupName functionexamplegroup -TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/functions/subscription.json 

次のステップNext steps