Skip to content

Commit 994261e

Browse files
authored
Merge pull request #96774 from DCtheGeek/dmc-gov-mvccomp4
Updates for Blueprints MVC compliance
2 parents 7360371 + f3e3a71 commit 994261e

File tree

7 files changed

+180
-173
lines changed

7 files changed

+180
-173
lines changed

articles/governance/blueprints/create-blueprint-portal.md

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Quickstart: Create a blueprint in the portal"
33
description: In this quickstart, you use Azure Blueprints to create, define, and deploy artifacts through the Azure portal.
4-
ms.date: 03/11/2019
4+
ms.date: 11/21/2019
55
ms.topic: quickstart
66
---
77
# Quickstart: Define and assign a blueprint in the portal
@@ -11,13 +11,7 @@ reusable and rapidly deployable configurations based on Azure Resource Manager t
1111
security, and more. In this tutorial, you learn to use Azure Blueprints to do some of the common
1212
tasks related to creating, publishing, and assigning a blueprint within your organization. These tasks include:
1313

14-
> [!div class="checklist"]
15-
> - Create a new blueprint and add various supported artifacts
16-
> - Make changes to an existing blueprint still in **Draft**
17-
> - Mark a blueprint as ready to assign with **Published**
18-
> - Assign a blueprint to an existing subscription
19-
> - Check the status and progress of an assigned blueprint
20-
> - Remove a blueprint that has been assigned to a subscription
14+
## Prerequisites
2115

2216
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free)
2317
before you begin.
@@ -364,9 +358,8 @@ blueprint assignment, follow these steps:
364358

365359
## Next steps
366360

367-
- Learn about the [blueprint lifecycle](./concepts/lifecycle.md).
368-
- Understand how to use [static and dynamic parameters](./concepts/parameters.md).
369-
- Learn to customize the [blueprint sequencing order](./concepts/sequencing-order.md).
370-
- Find out how to make use of [blueprint resource locking](./concepts/resource-locking.md).
371-
- Learn how to [update existing assignments](./how-to/update-existing-assignments.md).
372-
- Resolve issues during the assignment of a blueprint with [general troubleshooting](./troubleshoot/general.md).
361+
In this quickstart, you've created, assigned, and removed a blueprint with Azure portal. To learn
362+
more about Azure Blueprints, continue to the blueprint lifecycle article.
363+
364+
> [!div class="nextstepaction"]
365+
> [Learn about the blueprint lifecycle](./concepts/lifecycle.md)

articles/governance/blueprints/create-blueprint-powershell.md

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Quickstart: Create a blueprint with PowerShell"
33
description: In this quickstart, you use Azure Blueprints to create, define, and deploy artifacts using the PowerShell.
4-
ms.date: 08/21/2019
4+
ms.date: 11/21/2019
55
ms.topic: quickstart
66
---
77
# Quickstart: Define and Assign an Azure Blueprint with PowerShell
@@ -11,20 +11,16 @@ reusable and rapidly deployable configurations based on Resource Manager templat
1111
security, and more. In this tutorial, you learn to use Azure Blueprints to do some of the common
1212
tasks related to creating, publishing, and assigning a blueprint within your organization, such as:
1313

14-
> [!div class="checklist"]
15-
> - Create a new blueprint and add various supported artifacts
16-
> - Make changes to an existing blueprint still in **Draft**
17-
> - Mark a blueprint as ready to assign with **Published**
18-
> - Assign a blueprint to an existing subscription
19-
> - Check the status and progress of an assigned blueprint
20-
> - Remove a blueprint that has been assigned to a subscription
14+
## Prerequisites
2115

22-
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free) before you begin.
16+
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free)
17+
before you begin.
2318

24-
## Prerequisites
19+
If it isn't already installed, follow the instructions in
20+
[Add the Az.Blueprint module](./how-to/manage-assignments-ps.md#add-the-azblueprint-module) to
21+
install and validate the **Az.Blueprint** module from the PowerShell Gallery.
2522

26-
If it isn't already installed, follow the instructions in [Add the Az.Blueprint module](./how-to/manage-assignments-ps.md#add-the-azblueprint-module)
27-
to install and validate the **Az.Blueprint** module from the PowerShell Gallery.
23+
[!INCLUDE [cloud-shell-try-it.md](../../../includes/cloud-shell-try-it.md)]
2824

2925
## Create a blueprint
3026

@@ -113,7 +109,8 @@ a role assignment on the resource group.
113109

114110
> [!NOTE]
115111
> Use the filename _blueprint.json_ when creating your blueprint definitions programmatically.
116-
> This file name is used when calling [Import-AzBlueprintWithArtifact](/powershell/module/az.blueprint/import-azblueprintwithartifact).
112+
> This file name is used when calling
113+
> [Import-AzBlueprintWithArtifact](/powershell/module/az.blueprint/import-azblueprintwithartifact).
117114

118115
The blueprint object is created in the default subscription by default. To specify the
119116
management group, use parameter **ManagementGroupId**. To specify the subscription, use
@@ -445,9 +442,8 @@ Remove-AzBlueprintAssignment -Name 'assignMyBlueprint'
445442

446443
## Next steps
447444

448-
- Learn about the [blueprint lifecycle](./concepts/lifecycle.md).
449-
- Understand how to use [static and dynamic parameters](./concepts/parameters.md).
450-
- Learn to customize the [blueprint sequencing order](./concepts/sequencing-order.md).
451-
- Find out how to make use of [blueprint resource locking](./concepts/resource-locking.md).
452-
- Learn how to [update existing assignments](./how-to/update-existing-assignments.md).
453-
- Resolve issues during the assignment of a blueprint with [general troubleshooting](./troubleshoot/general.md).
445+
In this quickstart, you've created, assigned, and removed a blueprint with PowerShell. To learn more
446+
about Azure Blueprints, continue to the blueprint lifecycle article.
447+
448+
> [!div class="nextstepaction"]
449+
> [Learn about the blueprint lifecycle](./concepts/lifecycle.md)

articles/governance/blueprints/create-blueprint-rest-api.md

Lines changed: 63 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Quickstart: Create a blueprint with REST API"
33
description: In this quickstart, you use Azure Blueprints to create, define, and deploy artifacts using the REST API.
4-
ms.date: 02/04/2019
4+
ms.date: 11/21/2019
55
ms.topic: quickstart
66
---
77
# Quickstart: Define and Assign an Azure Blueprint with REST API
@@ -11,15 +11,12 @@ reusable and rapidly deployable configurations based on Resource Manager templat
1111
security, and more. In this tutorial, you learn to use Azure Blueprints to do some of the common
1212
tasks related to creating, publishing, and assigning a blueprint within your organization, such as:
1313

14-
> [!div class="checklist"]
15-
> - Create a new blueprint and add various supported artifacts
16-
> - Make changes to an existing blueprint still in **Draft**
17-
> - Mark a blueprint as ready to assign with **Published**
18-
> - Assign a blueprint to an existing subscription
19-
> - Check the status and progress of an assigned blueprint
20-
> - Remove a blueprint that has been assigned to a subscription
14+
## Prerequisites
2115

22-
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free) before you begin.
16+
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free)
17+
before you begin.
18+
19+
[!INCLUDE [cloud-shell-try-it.md](../../../includes/cloud-shell-try-it.md)]
2320

2421
## Getting started with REST API
2522

@@ -34,9 +31,9 @@ For the Blueprints specs, see [Azure Blueprints REST API](/rest/api/blueprints/)
3431
### REST API and PowerShell
3532

3633
If you don't already have a tool for making REST API calls, consider using PowerShell for these
37-
instructions. Following is a sample header for authenticating with Azure. Generate an
38-
authentication header, sometimes called a **Bearer token**, and provide the REST API URI to connect
39-
to with any parameters or a **Request Body**:
34+
instructions. Following is a sample header for authenticating with Azure. Generate an authentication
35+
header, sometimes called a **Bearer token**, and provide the REST API URI to connect to with any
36+
parameters or a **Request Body**:
4037

4138
```azurepowershell-interactive
4239
# Log in first with Connect-AzAccount if not using Cloud Shell
@@ -70,9 +67,11 @@ assignments for the subscription. Then we'll add a resource group, a Resource Ma
7067
a role assignment on the resource group.
7168

7269
> [!NOTE]
73-
> When using the REST API, the _blueprint_ object is created first. For each _artifact_ to be added that has parameters, the parameters need to be defined in advance on the initial _blueprint_.
70+
> When using the REST API, the _blueprint_ object is created first. For each _artifact_ to be added
71+
> that has parameters, the parameters need to be defined in advance on the initial _blueprint_.
7472
75-
In each REST API URI, there are variables that are used that you need to replace with your own values:
73+
In each REST API URI, there are variables that are used that you need to replace with your own
74+
values:
7675

7776
- `{YourMG}` - Replace with the ID of your management group
7877
- `{subscriptionId}` - Replace with your subscription ID
@@ -82,8 +81,8 @@ In each REST API URI, there are variables that are used that you need to replace
8281
> [create blueprint at subscription example](/rest/api/blueprints/blueprints/createorupdate#subscriptionblueprint).
8382
8483
1. Create the initial _blueprint_ object. The **Request Body** includes properties about the
85-
blueprint, any resource groups to create, and all of the blueprint level parameters. The parameters
86-
are set during assignment and used by the artifacts added in later steps.
84+
blueprint, any resource groups to create, and all of the blueprint level parameters. The
85+
parameters are set during assignment and used by the artifacts added in later steps.
8786

8887
- REST API URI
8988

@@ -143,10 +142,10 @@ are set during assignment and used by the artifacts added in later steps.
143142
```
144143
145144
1. Add role assignment at subscription. The **Request Body** defines the _kind_ of artifact, the
146-
properties align to the role definition identifier, and the principal identities are passed as an
147-
array of values. In the example below, the principal identities granted the specified role are
148-
configured to a parameter that is set during blueprint assignment. This example uses the
149-
_Contributor_ built-in role with a GUID of `b24988ac-6180-42a0-ab88-20f7382dd24c`.
145+
properties align to the role definition identifier, and the principal identities are passed as an
146+
array of values. In the example below, the principal identities granted the specified role are
147+
configured to a parameter that is set during blueprint assignment. This example uses the
148+
_Contributor_ built-in role with a GUID of `b24988ac-6180-42a0-ab88-20f7382dd24c`.
150149
151150
- REST API URI
152151
@@ -167,10 +166,10 @@ _Contributor_ built-in role with a GUID of `b24988ac-6180-42a0-ab88-20f7382dd24c
167166
```
168167
169168
1. Add policy assignment at subscription. The **Request Body** defines the _kind_ of artifact, the
170-
properties that align to a policy or initiative definition, and configures the policy assignment to
171-
use the defined blueprint parameters to configure during blueprint assignment. This example uses
172-
the _Apply tag and its default value to resource groups_ built-in policy with a GUID of
173-
`49c88fc8-6fd1-46fd-a676-f12d1d3a4c71`.
169+
properties that align to a policy or initiative definition, and configures the policy assignment
170+
to use the defined blueprint parameters to configure during blueprint assignment. This example
171+
uses the _Apply tag and its default value to resource groups_ built-in policy with a GUID of
172+
`49c88fc8-6fd1-46fd-a676-f12d1d3a4c71`.
174173
175174
- REST API URI
176175
@@ -199,11 +198,11 @@ the _Apply tag and its default value to resource groups_ built-in policy with a
199198
```
200199
201200
1. Add another policy assignment for Storage tag (reusing _storageAccountType_ parameter) at
202-
subscription. This additional policy assignment artifact demonstrates that a parameter defined on
203-
the blueprint is usable by more than one artifact. In the example, the **storageAccountType** is
204-
used to set a tag on the resource group. This value provides information about the storage account
205-
that is created in the next step. This example uses the _Apply tag and its default value to
206-
resource groups_ built-in policy with a GUID of `49c88fc8-6fd1-46fd-a676-f12d1d3a4c71`.
201+
subscription. This additional policy assignment artifact demonstrates that a parameter defined on
202+
the blueprint is usable by more than one artifact. In the example, the **storageAccountType** is
203+
used to set a tag on the resource group. This value provides information about the storage
204+
account that is created in the next step. This example uses the _Apply tag and its default value
205+
to resource groups_ built-in policy with a GUID of `49c88fc8-6fd1-46fd-a676-f12d1d3a4c71`.
207206
208207
- REST API URI
209208
@@ -232,13 +231,13 @@ resource groups_ built-in policy with a GUID of `49c88fc8-6fd1-46fd-a676-f12d1d3
232231
```
233232
234233
1. Add template under resource group. The **Request Body** for a Resource Manager template includes
235-
the normal JSON component of the template and defines the target resource group with
236-
**properties.resourceGroup**. The template also reuses the **storageAccountType**, **tagName**, and
237-
**tagValue** blueprint parameters by passing each to the template. The blueprint parameters are
238-
available to the template by defining **properties.parameters** and inside the template JSON that
239-
key-value pair is used to inject the value. The blueprint and template parameter names could be the
240-
same, but were made different to illustrate how each passes from the blueprint to the template
241-
artifact.
234+
the normal JSON component of the template and defines the target resource group with
235+
**properties.resourceGroup**. The template also reuses the **storageAccountType**, **tagName**,
236+
and **tagValue** blueprint parameters by passing each to the template. The blueprint parameters
237+
are available to the template by defining **properties.parameters** and inside the template JSON
238+
that key-value pair is used to inject the value. The blueprint and template parameter names could
239+
be the same, but were made different to illustrate how each passes from the blueprint to the
240+
template artifact.
242241
243242
- REST API URI
244243
@@ -325,9 +324,9 @@ artifact.
325324
```
326325
327326
1. Add role assignment under resource group. Similar to the previous role assignment entry, the
328-
example below uses the definition identifier for the **Owner** role and provides it a different
329-
parameter from the blueprint. This example uses the _Owner_ built-in role with a GUID of
330-
`8e3af657-a8ff-443c-a75c-2fe8c4bcb635`.
327+
example below uses the definition identifier for the **Owner** role and provides it a different
328+
parameter from the blueprint. This example uses the _Owner_ built-in role with a GUID of
329+
`8e3af657-a8ff-443c-a75c-2fe8c4bcb635`.
331330
332331
- REST API URI
333332
@@ -372,21 +371,31 @@ Body** specifies the blueprint to assign, provides name and location to any reso
372371
blueprint definition, and provides all parameters defined on the blueprint and used by one or more
373372
attached artifacts.
374373

375-
In each REST API URI, there are variables that are used that you need to replace with your own values:
374+
In each REST API URI, there are variables that are used that you need to replace with your own
375+
values:
376376

377377
- `{tenantId}` - Replace with your tenant ID
378378
- `{YourMG}` - Replace with the ID of your management group
379379
- `{subscriptionId}` - Replace with your subscription ID
380380

381-
1. Provide the Azure Blueprint service principal the **Owner** role on the target subscription. The AppId is static (`f71766dc-90d9-4b7d-bd9d-4499c4331c3f`), but the service principal ID varies by tenant. Details can be requested for your tenant using the following REST API. It uses [Azure Active Directory Graph API](../../active-directory/develop/active-directory-graph-api.md) which has different authorization.
381+
1. Provide the Azure Blueprint service principal the **Owner** role on the target subscription. The
382+
AppId is static (`f71766dc-90d9-4b7d-bd9d-4499c4331c3f`), but the service principal ID varies by
383+
tenant. Details can be requested for your tenant using the following REST API. It uses
384+
[Azure Active Directory Graph API](../../active-directory/develop/active-directory-graph-api.md)
385+
which has different authorization.
382386

383387
- REST API URI
384388

385389
```http
386390
GET https://graph.windows.net/{tenantId}/servicePrincipals?api-version=1.6&$filter=appId eq 'f71766dc-90d9-4b7d-bd9d-4499c4331c3f'
387391
```
388392
389-
1. Run the blueprint deployment by assigning it to a subscription. As the **contributors** and **owners** parameters require an array of objectIds of the principals to be granted the role assignment, use [Azure Active Directory Graph API](../../active-directory/develop/active-directory-graph-api.md) for gathering the objectIds for use in the **Request Body** for your own users, groups, or service principals.
393+
1. Run the blueprint deployment by assigning it to a subscription. As the **contributors** and
394+
**owners** parameters require an array of objectIds of the principals to be granted the role
395+
assignment, use
396+
[Azure Active Directory Graph API](../../active-directory/develop/active-directory-graph-api.md)
397+
for gathering the objectIds for use in the **Request Body** for your own users, groups, or
398+
service principals.
390399
391400
- REST API URI
392401
@@ -439,7 +448,11 @@ In each REST API URI, there are variables that are used that you need to replace
439448
440449
- User-assigned managed identity
441450
442-
A blueprint assignment can also use a [user-assigned managed identity](../../active-directory/managed-identities-azure-resources/overview.md). In this case, the **identity** portion of the request body changes as follows. Replace `{yourRG}` and `{userIdentity}` with your resource group name and the name of your user-assigned managed identity, respectively.
451+
A blueprint assignment can also use a
452+
[user-assigned managed identity](../../active-directory/managed-identities-azure-resources/overview.md).
453+
In this case, the **identity** portion of the request body changes as follows. Replace
454+
`{yourRG}` and `{userIdentity}` with your resource group name and the name of your
455+
user-assigned managed identity, respectively.
443456
444457
```json
445458
"identity": {
@@ -455,8 +468,8 @@ In each REST API URI, there are variables that are used that you need to replace
455468
assigning the blueprint has permissions to.
456469
457470
> [!IMPORTANT]
458-
> Blueprints doesn't manage the user-assigned managed identity. Users are responsible for assigning
459-
> sufficient roles and permissions or the blueprint assignment will fail.
471+
> Blueprints doesn't manage the user-assigned managed identity. Users are responsible for
472+
> assigning sufficient roles and permissions or the blueprint assignment will fail.
460473
461474
## Unassign a blueprint
462475
@@ -482,9 +495,8 @@ To remove the blueprint itself, use the following REST API operation:
482495

483496
## Next steps
484497

485-
- Learn about the [blueprint lifecycle](./concepts/lifecycle.md).
486-
- Understand how to use [static and dynamic parameters](./concepts/parameters.md).
487-
- Learn to customize the [blueprint sequencing order](./concepts/sequencing-order.md).
488-
- Find out how to make use of [blueprint resource locking](./concepts/resource-locking.md).
489-
- Learn how to [update existing assignments](./how-to/update-existing-assignments.md).
490-
- Resolve issues during the assignment of a blueprint with [general troubleshooting](./troubleshoot/general.md).
498+
In this quickstart, you've created, assigned, and removed a blueprint with REST API. To learn more
499+
about Azure Blueprints, continue to the blueprint lifecycle article.
500+
501+
> [!div class="nextstepaction"]
502+
> [Learn about the blueprint lifecycle](./concepts/lifecycle.md)

0 commit comments

Comments
 (0)