Important
Azure Blueprints(プレビュー)は2027年1月31日に廃止され、段階的廃止は2026年7月31日から始まります。 既存のブループリントの定義と割り当てを Deployment Stacks (推奨)や テンプレート仕様に移行してください。 ブループリントの成果物は、デプロイスタックを定義するためにARMのJSONテンプレートやBicepファイルに変換されます。 段階的なスケジュール、影響、FAQについては、Azure Blueprints退職または引退https://aka.ms/AzureBlueprintsRetirementをご覧ください。 アーティファクトを ARM リソースとして作成する方法については、以下を参照してください。
Azure Blueprintsは、ブループリントの定義をより動的にする関数を提供します。 これらの関数はブループリント定義やブループリントアーティファクトで使用されます。 Azure Resource Managerテンプレート(ARMテンプレート)のアーティファクトは、Blueprintパラメータを通じて動的値を取得するだけでなく、Resource Manager関数の完全な利用をサポートします。
次の関数がサポートされています。
artifacts
artifacts(artifactName)
そのブループリントのアーティファクト出力で埋められたプロパティのオブジェクトを返します。
Note
artifacts()関数はARMテンプレート内からは使えません。 この関数は、Blueprint定義のJSONまたは、Blueprints-as-codeの一部としてAzure PowerShellまたはREST APIでブループリントを管理する場合、Artifact JSONでのみ使用できます。
Parameters
| パラメーター | Required | タイプ | Description |
|---|---|---|---|
| artifactName | はい | 文字列 | 設計図の遺物の名前。 |
値を返す
出力プロパティを持つオブジェクト。 出力のプロパティは参照されるブループリントのアーティファクトの種類に依存します。 すべてのタイプは以下のフォーマットに従います:
{
"outputs": {collectionOfOutputProperties}
}
ポリシー割り当てのアーティファクト
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
ARMテンプレートのアーティファクト
返されたオブジェクトの 出力 プロパティはARMテンプレート内で定義され、デプロイメントによって返されます。
ロール割り当てのアーティファクト
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
例
以下のサンプル出力プロパティを含むIDの myTemplateArtifact を持つARMテンプレートアーティファクト:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
...
"outputs": {
"myArray": {
"type": "array",
"value": ["first", "second"]
},
"myString": {
"type": "string",
"value": "my string value"
},
"myObject": {
"type": "object",
"value": {
"myProperty": "my value",
"anotherProperty": true
}
}
}
}
myTemplateArtifactサンプルからデータを取得する例としては以下の通りです:
| Expression | タイプ | 価値 |
|---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Array | [「first」「second」] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
String | 「まず」 |
[artifacts("myTemplateArtifact").outputs.myString] |
String | 「私の弦の価値」 |
[artifacts("myTemplateArtifact").outputs.myObject] |
Object | { "myproperty": "my value", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
String | 「私の価値」 |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
ブール | True |
concat
concat(string1, string2, string3, ...)
複数の文字列値を組み合わせて連結した文字列を返します。
Parameters
| パラメーター | Required | タイプ | Description |
|---|---|---|---|
| string1 | はい | 文字列 | 連結の最初の値。 |
| 残りの引数 | いいえ | 文字列 | 連結のための順番付けの追加値 |
値を返す
連結された値の連なり。
注釈
Azure Blueprints関数はARMテンプレート関数と異なり、文字列のみを扱います。
例
concat(parameters('organizationName'), '-vm')
パラメータ
parameters(parameterName)
ブループリントのパラメータ値を返します。 指定されたパラメータ名は、ブループリント定義またはブループリントアーティファクトで定義されなければなりません。
Parameters
| パラメーター | Required | タイプ | Description |
|---|---|---|---|
| パラメータ名 | はい | 文字列 | 返されるパラメーターの名前。 |
値を返す
指定されたブループリントまたはブループリントアーティファクトパラメータの値。
注釈
Azure Blueprints関数はARMテンプレート関数と異なり、ブループリントパラメータのみを扱います。
例
設計図の定義でパラメータ principalIdを 定義します:
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"parameters": {
"principalIds": {
"type": "array",
"metadata": {
"displayName": "Principal IDs",
"description": "This is a blueprint parameter that any artifact can reference. We'll display these descriptions for you in the info bubble. Supply principal IDs for the users,groups, or service principals for the Azure role assignment.",
"strongType": "PrincipalId"
}
}
},
...
}
}
次に 、principalIds をブループリントアーティファクトの parameters() の引数として使います。
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup
resourceGroup()
現在のリソースグループを表すオブジェクトを返します。
値を返す
返されるオブジェクトは以下の形式です:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
注釈
Azure Blueprints関数はARMテンプレート関数とは異なります。
resourceGroup()関数はサブスクリプションレベルのアーティファクトやブループリントの定義では使えません。 リソースグループのアーティファクトの一部であるブループリントのアーティファクトでのみ使用可能です。
resourceGroup()関数の一般的な用途は、リソースグループのアーティファクトと同じ場所にリソースを作成することです。
例
リソースグループの位置を使うには、ブループリント定義または割り当て時に別のアーティファクトの位置として設定し、ブループリント定義内でリソースグループのプレースホルダーオブジェクトを宣言してください。 この例では、 NetworkingPlaceholder はリソースグループのプレースホルダーの名前です。
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
次に、リソースグループのプレースホルダーオブジェクトをターゲットとするブループリントのアーティファクトの文脈で resourceGroup() 関数を使います。 この例では、テンプレートのアーティファクトがNetworkingPlaceholderリソースグループに展開され、NetworkingPlaceholderリソースグループの位置を動的にテンプレートに入力したパラメータresourceLocationを提供します。
NetworkingPlaceholderリソースグループの位置は、ブループリント定義上で静的に定義されるか、割り当て時に動的に定義される可能性があります。 いずれの場合も、テンプレートのアーティファクトはその情報をパラメータとして提供され、それを使ってリソースを正しい場所に展開します。
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups
resourceGroups(placeholderName)
指定されたリソースグループのアーティファクトを表すオブジェクトを返します。
resourceGroup()がアーティファクトのコンテキストを必要とするのに対し、この関数は特定のリソースグループのプレースホルダーのプロパティを取得するために使われます。
Parameters
| パラメーター | Required | タイプ | Description |
|---|---|---|---|
| プレースホルダーネーム | はい | 文字列 | 返却するリソースグループのアーティファクトのプレースホルダー名。 |
値を返す
返されるオブジェクトは以下の形式です:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
例
リソースグループの位置を使うには、ブループリント定義または割り当て時に別のアーティファクトの位置として設定し、ブループリント定義内でリソースグループのプレースホルダーオブジェクトを宣言してください。 この例では、 NetworkingPlaceholder はリソースグループのプレースホルダーの名前です。
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
次に、任意のブループリントアーティファクトのコンテキストから resourceGroups() 関数を使ってリソースグループのプレースホルダーオブジェクトへの参照を取得します。 この例では、テンプレートアーティファクトはNetworkingPlaceholderリソースグループの外に展開され、NetworkingPlaceholderリソースグループの位置を動的に入力したパラメータartifactLocationをテンプレートに提供します。
NetworkingPlaceholderリソースグループの位置は、ブループリント定義上で静的に定義されるか、割り当て時に動的に定義される可能性があります。 いずれの場合も、テンプレートのアーティファクトはその情報をパラメータとして提供され、それを使ってリソースを正しい場所に展開します。
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
サブスクリプション
subscription()
現在のブループリント割り当てのサブスクリプションの詳細を返します。
値を返す
返されるオブジェクトは以下の形式です:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
例
サブスクリプションの表示名と concat() 関数を使って、テンプレートのアーティファクトにパラメータ resourceName として渡す命名規則を作成します。
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
次のステップ
- ブループリントのライフサイクルについて説明します。
- 静的パラメーターと動的パラメーターの使用方法について説明します。
- ブループリントのシーケンス順序をカスタマイズする方法について説明します。
- ブループリント リソースのロックを使用する方法について説明します。
- 既存の割り当てを更新する方法について説明します。
- ブループリントの割り当て時の問題を一般的なトラブルシューティングで解決する。