Inicio rápido: Definición y asignación de un plano técnico de Azure Blueprint con API RESTQuickstart: Define and Assign an Azure Blueprint with REST API

Entender cómo crear y asignar planos técnicos permite la definición de patrones comunes para desarrollar configuraciones reutilizables y de implementación rápida basadas en plantillas de Resource Manager, directivas, seguridad y mucho más.Learning how to create and assign blueprints enables the definition of common patterns to develop reusable and rapidly deployable configurations based on Resource Manager templates, policy, security, and more. En este tutorial, aprenderá a usar planos técnicos de Azure Blueprint para realizar algunas de las tareas más comunes relacionadas con la creación, asignación y administración de directivas en toda la organización, como, por ejemplo:In this tutorial, you learn to use Azure Blueprints to do some of the common tasks related to creating, publishing, and assigning a blueprint within your organization, such as:

PrerrequisitosPrerequisites

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To start Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Pruébelo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Start Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.

  3. Pegue el código en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Seleccione Entrar para ejecutar el código.Select Enter to run the code.

Introducción a la API RESTGetting started with REST API

Si no está familiarizado con la API REST, comience por revisar la Referencia de la API REST de Azure para obtener una descripción general de la API REST, específicamente el identificador URI de la solicitud y el cuerpo de la solicitud.If you're unfamiliar with REST API, start by reviewing Azure REST API Reference to get a general understanding of REST API, specifically request URI and request body. En este artículo se utilizan estos conceptos para proporcionar instrucciones para trabajar con planos técnicos de Azure Blueprint y da por supuesto un conocimiento práctico de ellos.This article uses these concepts to provide directions for working with Azure Blueprints and assumes a working knowledge of them. Herramientas como ARMClient y otras pueden controlar la autorización automáticamente y se recomiendan para principiantes.Tools such as ARMClient and others may handle authorization automatically and are recommended for beginners.

Para información sobre las especificaciones de Azure Blueprints, consulte API REST de Azure Blueprints.For the Azure Blueprints specs, see Azure Blueprints REST API.

API REST y PowerShellREST API and PowerShell

Si aún no tiene una herramienta para realizar llamadas de API REST, considere el uso de PowerShell para estas instrucciones.If you don't already have a tool for making REST API calls, consider using PowerShell for these instructions. A continuación se muestra un encabezado de ejemplo para autenticar con Azure.Following is a sample header for authenticating with Azure. Genere un encabezado de autenticación, a veces llamado Token de portador, y proporcione el identificador URI de la API REST al que conectarse con cualquier parámetro o un cuerpo de la solicitud:Generate an authentication header, sometimes called a Bearer token, and provide the REST API URI to connect to with any parameters or a Request Body:

# Log in first with Connect-AzAccount if not using Cloud Shell

$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{
    'Content-Type'='application/json'
    'Authorization'='Bearer ' + $token.AccessToken
}

# Invoke the REST API
$restUri = 'https://management.azure.com/subscriptions/{subscriptionId}?api-version=2020-01-01'
$response = Invoke-RestMethod -Uri $restUri -Method Get -Headers $authHeader

Reemplace {subscriptionId} de la variable $restUri anterior para obtener información sobre la suscripción.Replace {subscriptionId} in the $restUri variable above to get information about your subscription. La variable $response contiene el resultado del cmdlet Invoke-RestMethod, que puede analizarse con cmdlets como ConvertFrom-Json.The $response variable holds the result of the Invoke-RestMethod cmdlet, which can be parsed with cmdlets such as ConvertFrom-Json. Si el punto de conexión de servicio de la API REST espera un cuerpo de la solicitud, proporcione una variable con formato JSON al parámetro -Body de Invoke-RestMethod.If the REST API service endpoint expects a Request Body, provide a JSON formatted variable to the -Body parameter of Invoke-RestMethod.

Creación de un plano técnicoCreate a blueprint

El primer paso para definir un patrón estándar de cumplimiento es elaborar un plano técnico a partir de los recursos disponibles.The first step in defining a standard pattern for compliance is to compose a blueprint from the available resources. Vamos a crear un plano técnico llamado "MyBlueprint" para configurar las asignaciones de roles y de directivas de la suscripción.We'll create a blueprint named 'MyBlueprint' to configure role and policy assignments for the subscription. A continuación, vamos a agregar un grupo de recursos, una plantilla de Resource Manager y una asignación de roles en el grupo de recursos.Then we'll add a resource group, a Resource Manager template, and a role assignment on the resource group.

Nota

Cuando se usa la API REST, el objeto blueprint se crea en primer lugar.When using the REST API, the blueprint object is created first. Para cada artefacto que se agregue y que tenga parámetros, estos deben definirse de antemano en el plano técnico inicial.For each artifact to be added that has parameters, the parameters need to be defined in advance on the initial blueprint.

En cada identificador URI de la API REST, hay variables usadas que se deben reemplazar por sus propios valores:In each REST API URI, there are variables that are used that you need to replace with your own values:

  • {YourMG}: reemplácelo por el identificador del grupo de administración{YourMG} - Replace with the ID of your management group
  • {subscriptionId}: reemplácelo por el identificador de suscripción{subscriptionId} - Replace with your subscription ID

Nota

Los planos técnicos también pueden crearse en el nivel de suscripción.Blueprints may also be created at the subscription level. Para ver un ejemplo, consulte el artículo de creación de un plano técnico en el ejemplo de suscripción.To see an example, see create blueprint at subscription example.

  1. Cree el objeto blueprint inicial.Create the initial blueprint object. El cuerpo de la solicitud incluye propiedades sobre el plano técnico, cualquier grupo de recursos que se vaya a crear y todos los parámetros en el nivel del plano técnico.The Request Body includes properties about the blueprint, any resource groups to create, and all of the blueprint level parameters. Los parámetros se establecen durante la asignación y son utilizados por los artefactos que se agregan en pasos posteriores.The parameters are set during assignment and used by the artifacts added in later steps.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "properties": {
              "description": "This blueprint sets tag policy and role assignment on the subscription, creates a ResourceGroup, and deploys a resource template and role assignment to that ResourceGroup.",
              "targetScope": "subscription",
              "parameters": {
                  "storageAccountType": {
                      "type": "string",
                      "metadata": {
                          "displayName": "storage account type.",
                          "description": null
                      }
                  },
                  "tagName": {
                      "type": "string",
                      "metadata": {
                          "displayName": "The name of the tag to provide the policy assignment.",
                          "description": null
                      }
                  },
                  "tagValue": {
                      "type": "string",
                      "metadata": {
                          "displayName": "The value of the tag to provide the policy assignment.",
                          "description": null
                      }
                  },
                  "contributors": {
                      "type": "array",
                      "metadata": {
                          "description": "List of AAD object IDs that is assigned Contributor role at the subscription"
                      }
                  },
                  "owners": {
                      "type": "array",
                      "metadata": {
                          "description": "List of AAD object IDs that is assigned Owner role at the resource group"
                      }
                  }
              },
              "resourceGroups": {
                  "storageRG": {
                      "description": "Contains the resource template deployment and a role assignment."
                  }
              }
          }
      }
      
  2. Agregue una asignación de roles a la suscripción.Add role assignment at subscription. El cuerpo de la solicitud define el _tipo_de artefacto, las propiedades se alinean con el identificador de definición de rol y las identidades de la entidad de servicio se pasan como una matriz de valores.The Request Body defines the kind of artifact, the properties align to the role definition identifier, and the principal identities are passed as an array of values. En el siguiente ejemplo, las identidades de la entidad de servicio a las que se ha asignado el rol especificado se configuran con un parámetro que se establece durante la asignación de planos técnicos.In the example below, the principal identities granted the specified role are configured to a parameter that is set during blueprint assignment. Este ejemplo se usa el rol integrado Colaborador con el GUID b24988ac-6180-42a0-ab88-20f7382dd24c.This example uses the Contributor built-in role with a GUID of b24988ac-6180-42a0-ab88-20f7382dd24c.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleContributor?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "kind": "roleAssignment",
          "properties": {
              "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
              "principalIds": "[parameters('contributors')]"
          }
      }
      
  3. Agregue la asignación de directivas a la suscripción.Add policy assignment at subscription. El cuerpo de la solicitud define el tipo de artefacto, las propiedades que se alinean con una definición de directiva o iniciativa y configura la asignación de directivas para que utilice los parámetros definidos del plano técnico que se van a configurar durante la asignación del plano técnico.The Request Body defines the kind of artifact, the properties that align to a policy or initiative definition, and configures the policy assignment to use the defined blueprint parameters to configure during blueprint assignment. En este ejemplo se usa la directiva integrada Aplicar una etiqueta y su valor predeterminado a los grupos de recursos con el GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.This example uses the Apply tag and its default value to resource groups built-in policy with a GUID of 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyTags?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "kind": "policyAssignment",
          "properties": {
              "description": "Apply tag and its default value to resource groups",
              "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71",
              "parameters": {
                  "tagName": {
                      "value": "[parameters('tagName')]"
                  },
                  "tagValue": {
                      "value": "[parameters('tagValue')]"
                  }
              }
          }
      }
      
  4. Agregue otra asignación de directiva para la etiqueta Storage (reutilizando el parámetro storageAccountType) en la suscripción.Add another policy assignment for Storage tag (reusing storageAccountType parameter) at subscription. Este artefacto de asignación de directivas adicional muestra que un parámetro definido en el plano técnico lo puede utilizar más de un artefacto.This additional policy assignment artifact demonstrates that a parameter defined on the blueprint is usable by more than one artifact. En el ejemplo, storageAccountType se usa para establecer una etiqueta en el grupo de recursos.In the example, the storageAccountType is used to set a tag on the resource group. Este valor proporciona información acerca de la cuenta de almacenamiento que se crea en el paso siguiente.This value provides information about the storage account that is created in the next step. En este ejemplo se usa la directiva integrada Aplicar una etiqueta y su valor predeterminado a los grupos de recursos con el GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.This example uses the Apply tag and its default value to resource groups built-in policy with a GUID of 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyStorageTags?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "kind": "policyAssignment",
          "properties": {
              "description": "Apply storage tag and the parameter also used by the template to resource groups",
              "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71",
              "parameters": {
                  "tagName": {
                      "value": "StorageType"
                  },
                  "tagValue": {
                      "value": "[parameters('storageAccountType')]"
                  }
              }
          }
      }
      
  5. Agregue la plantilla en el grupo de recursos.Add template under resource group. El cuerpo de la solicitud de una plantilla de Resource Manager incluye el componente JSON normal de la plantilla y define el grupo de recursos de destino con properties.resourceGroup.The Request Body for a Resource Manager template includes the normal JSON component of the template and defines the target resource group with properties.resourceGroup. La plantilla también reutiliza los parámetros del plano técnico storageAccountType, tagName y tagValue, cada uno de los cuales se pasa a la plantilla.The template also reuses the storageAccountType, tagName, and tagValue blueprint parameters by passing each to the template. Los parámetros del plano técnico se ponen a disposición de la plantilla mediante la definición de properties.parameters y dentro de la plantilla JSON el par clave/valor se utiliza para insertar el valor.The blueprint parameters are available to the template by defining properties.parameters and inside the template JSON that key-value pair is used to inject the value. Los nombres de los parámetros del plano técnico y de la plantilla podrían ser los mismos, pero se han hecho diferentes para ilustrar cómo se pasa cada uno de ellos del plano técnico al artefacto de la plantilla.The blueprint and template parameter names could be the same, but were made different to illustrate how each passes from the blueprint to the template artifact.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/templateStorage?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "kind": "template",
          "properties": {
              "template": {
                  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                  "contentVersion": "1.0.0.0",
                  "parameters": {
                      "storageAccountTypeFromBP": {
                          "type": "string",
                          "defaultValue": "Standard_LRS",
                          "allowedValues": [
                              "Standard_LRS",
                              "Standard_GRS",
                              "Standard_ZRS",
                              "Premium_LRS"
                          ],
                          "metadata": {
                              "description": "Storage Account type"
                          }
                      },
                      "tagNameFromBP": {
                          "type": "string",
                          "defaultValue": "NotSet",
                          "metadata": {
                              "description": "Tag name from blueprint"
                          }
                      },
                      "tagValueFromBP": {
                          "type": "string",
                          "defaultValue": "NotSet",
                          "metadata": {
                              "description": "Tag value from blueprint"
                          }
                      }
                  },
                  "variables": {
                      "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                  },
                  "resources": [{
                      "type": "Microsoft.Storage/storageAccounts",
                      "name": "[variables('storageAccountName')]",
                      "apiVersion": "2016-01-01",
                      "tags": {
                         "[parameters('tagNameFromBP')]": "[parameters('tagValueFromBP')]"
                      },
                      "location": "[resourceGroups('storageRG').location]",
                      "sku": {
                          "name": "[parameters('storageAccountTypeFromBP')]"
                      },
                      "kind": "Storage",
                      "properties": {}
                  }],
                  "outputs": {
                      "storageAccountSku": {
                          "type": "string",
                          "value": "[variables('storageAccountName')]"
                      }
                  }
              },
              "resourceGroup": "storageRG",
              "parameters": {
                  "storageAccountTypeFromBP": {
                      "value": "[parameters('storageAccountType')]"
                  },
                  "tagNameFromBP": {
                      "value": "[parameters('tagName')]"
                  },
                  "tagValueFromBP": {
                      "value": "[parameters('tagValue')]"
                  }
              }
          }
      }
      
  6. Agregue la asignación de roles en el grupo de recursos.Add role assignment under resource group. Similar a la entrada anterior de asignación de roles, el ejemplo siguiente utiliza el identificador de definición para el rol Propietario y le proporciona un parámetro diferente del plano técnico.Similar to the previous role assignment entry, the example below uses the definition identifier for the Owner role and provides it a different parameter from the blueprint. Este ejemplo se usa el rol integrado Propietario con el GUID 8e3af657-a8ff-443c-a75c-2fe8c4bcb635.This example uses the Owner built-in role with a GUID of 8e3af657-a8ff-443c-a75c-2fe8c4bcb635.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleOwner?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "kind": "roleAssignment",
          "properties": {
              "resourceGroup": "storageRG",
              "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
              "principalIds": "[parameters('owners')]"
          }
      }
      

Publicación de un plano técnicoPublish a blueprint

Ahora que los artefactos se han agregado al plano técnico, es momento de publicarlo.Now that the artifacts have been added to the blueprint, it's time to publish it. La publicación lo hace disponible para ser asignado a una suscripción.Publishing makes it available to assign to a subscription.

  • URI DE LA API RESTREST API URI

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/versions/{BlueprintVersion}?api-version=2018-11-01-preview
    

El valor de {BlueprintVersion} es una cadena de letras, números y guiones (sin espacios ni otros caracteres especiales) con una longitud máxima de 20 caracteres.The value for {BlueprintVersion} is a string of letters, numbers, and hyphens (no spaces or other special characters) with a max length of 20 characters. Utilice un nombre único e informativo, como v20180622-135541.Use something unique and informational such as v20180622-135541.

Asignación de un plano técnicoAssign a blueprint

Cuando se ha publicado un plano técnico mediante la API REST, se puede asignar a una suscripción.Once a blueprint is published using REST API, it's assignable to a subscription. Asigne el plano técnico creado a una de las suscripciones de la jerarquía del grupo de administración.Assign the blueprint you created to one of the subscriptions under your management group hierarchy. Si el proyecto se guarda en una suscripción, solo se puede asignar a dicha suscripción.If the blueprint is saved to a subscription, it can only be assigned to that subscription. El cuerpo de la solicitud especifica el plano técnico que se va a asignar, proporciona el nombre y la ubicación de cualquier grupo de recursos de la definición del plano técnico y proporciona todos los parámetros que se han definido en el plano técnico y que han sido utilizados por uno o más artefactos asociados.The Request Body specifies the blueprint to assign, provides name and location to any resource groups in the blueprint definition, and provides all parameters defined on the blueprint and used by one or more attached artifacts.

En cada identificador URI de la API REST, hay variables usadas que se deben reemplazar por sus propios valores:In each REST API URI, there are variables that are used that you need to replace with your own values:

  • {tenantId}: reemplácelo por su identificador de inquilino{tenantId} - Replace with your tenant ID
  • {YourMG}: reemplácelo por el identificador del grupo de administración{YourMG} - Replace with the ID of your management group
  • {subscriptionId}: reemplácelo por el identificador de suscripción{subscriptionId} - Replace with your subscription ID
  1. Proporcione a la entidad de servicio de Azure Blueprint el rol de propietario en la suscripción de destino.Provide the Azure Blueprint service principal the Owner role on the target subscription. El valor de AppId es estático (f71766dc-90d9-4b7d-bd9d-4499c4331c3f), pero el identificador de la entidad de servicio varía según el inquilino.The AppId is static (f71766dc-90d9-4b7d-bd9d-4499c4331c3f), but the service principal ID varies by tenant. Los detalles se pueden solicitar para su inquilino mediante la API REST siguiente.Details can be requested for your tenant using the following REST API. Utiliza Graph API de Azure Active Directory que tiene una autorización diferente.It uses Azure Active Directory Graph API which has different authorization.

    • URI DE LA API RESTREST API URI

      GET https://graph.windows.net/{tenantId}/servicePrincipals?api-version=1.6&$filter=appId eq 'f71766dc-90d9-4b7d-bd9d-4499c4331c3f'
      
  2. Ejecute la implementación del plano técnico asignándolo a una suscripción.Run the blueprint deployment by assigning it to a subscription. Como los parámetros contributors y owners requieren una serie de objectIds de las entidades de servicio para que se les conceda la asignación de roles, utilice Graph API de Azure Active Directory para recopilar los elementos objectId que se utilizarán en el cuerpo de la solicitud para sus propios usuarios, grupos o entidades de servicio.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 for gathering the objectIds for use in the Request Body for your own users, groups, or service principals.

    • URI DE LA API RESTREST API URI

      PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-preview
      
    • Cuerpo de la solicitudRequest Body

      {
          "properties": {
              "blueprintId": "/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint",
              "resourceGroups": {
                  "storageRG": {
                      "name": "StorageAccount",
                      "location": "eastus2"
                  }
              },
              "parameters": {
                  "storageAccountType": {
                      "value": "Standard_GRS"
                  },
                  "tagName": {
                      "value": "CostCenter"
                  },
                  "tagValue": {
                      "value": "ContosoIT"
                  },
                  "contributors": {
                      "value": [
                          "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
                          "38833b56-194d-420b-90ce-cff578296714"
                      ]
                  },
                  "owners": {
                      "value": [
                          "44254d2b-a0c7-405f-959c-f829ee31c2e7",
                          "316deb5f-7187-4512-9dd4-21e7798b0ef9"
                      ]
                  }
              }
          },
          "identity": {
              "type": "systemAssigned"
          },
          "location": "westus"
      }
      
    • Identidad administrada asignada por el usuarioUser-assigned managed identity

      Una asignación de plano técnico también puede usar una identidad administrada asignada por el usuario.A blueprint assignment can also use a user-assigned managed identity. En este caso, la parte de identidad del cuerpo de la solicitud cambia del modo siguiente.In this case, the identity portion of the request body changes as follows. Reemplace {yourRG} y {userIdentity} por el nombre del grupo de recursos y el nombre de su identidad administrada asignada por el usuario, respectivamente.Replace {yourRG} and {userIdentity} with your resource group name and the name of your user-assigned managed identity, respectively.

      "identity": {
          "type": "userAssigned",
          "tenantId": "{tenantId}",
          "userAssignedIdentities": {
              "/subscriptions/{subscriptionId}/resourceGroups/{yourRG}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userIdentity}": {}
          }
      },
      

      La identidad administrada asignada por el usuario puede estar en cualquier suscripción y grupo de recursos para los que tenga permiso el usuario que asigna el plano técnico.The user-assigned managed identity can be in any subscription and resource group the user assigning the blueprint has permissions to.

      Importante

      Azure Blueprints no administra la identidad administrada asignada por el usuario.Azure Blueprints doesn't manage the user-assigned managed identity. Los usuarios son responsables de asignar los roles y permisos necesarios o, de lo contrario, se producirá un error en la asignación del plano técnico.Users are responsible for assigning sufficient roles and permissions or the blueprint assignment will fail.

Limpieza de recursosClean up resources

Cancelación de la asignación de un plano técnicoUnassign a blueprint

Puede eliminar un plano de una suscripción.You can remove a blueprint from a subscription. A menudo, la eliminación se realiza cuando ya no son necesarios los recursos de artefacto.Removal is often done when the artifact resources are no longer needed. Cuando se quita un plano técnico, se omiten los artefactos que se asignaron como parte de ese plano técnico.When a blueprint is removed, the artifacts assigned as part of that blueprint are left behind. Para quitar una asignación del plano técnico, use la siguiente operación de la API REST:To remove a blueprint assignment, use the following REST API operation:

  • URI DE LA API RESTREST API URI

    DELETE https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-preview
    

Eliminación de un plano técnicoDelete a blueprint

Para quitar el mismo plano técnico, utilice la siguiente operación de la API REST:To remove the blueprint itself, use the following REST API operation:

  • URI DE LA API RESTREST API URI

    DELETE https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-preview
    

Pasos siguientesNext steps

En este inicio rápido, ha creado, asignado y eliminado un plano técnico con la API REST.In this quickstart, you've created, assigned, and removed a blueprint with REST API. Para más información sobre Azure Blueprints, vaya el artículo sobre el ciclo de vida de los planos técnicos.To learn more about Azure Blueprints, continue to the blueprint lifecycle article.