Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo usar la API de REST de Azure Resource Manager con plantillas de Azure Resource Manager (plantillas de ARM) para implementar los recursos en Azure.
Puede incluir su plantilla en el cuerpo de la solicitud o vincularla a un archivo. Cuando se usa un archivo, puede ser un archivo local o un archivo externo que está disponible a través de un URI. Cuando la plantilla está en una cuenta de almacenamiento, puede restringir el acceso a la plantilla y proporcionar un token de firma de acceso compartido (SAS) durante la implementación.
Permisos necesarios
Para implementar un archivo de Bicep o una plantilla de ARM, necesitas acceso de escritura en los recursos que estás implementando y acceso para realizar todas las operaciones en el tipo de recurso Microsoft.Resources/deployments. Por ejemplo, para implementar una máquina virtual, necesita los permisos Microsoft.Compute/virtualMachines/write
y Microsoft.Resources/deployments/*
. La operación what-if tiene los mismos requisitos de permisos.
Para obtener una lista de roles y permisos, consulte Roles integrados de Azure.
Ámbito de la implementación
Puede destinar la implementación a un grupo de recursos, una suscripción de Azure, un grupo de administración o un inquilino. Según el ámbito de la implementación, usará comandos diferentes.
Para implementar en un grupo de recursos, use Implementaciones - Crear. La solicitud se envía a:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
Para implementar en una suscripción, use Implementaciones - Crear en el ámbito de la suscripción. La solicitud se envía a:
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
Para más información sobre las implementaciones en el nivel de suscripción, consulte Creación de grupos de recursos y otros recursos en el nivel de suscripción.
Para implementar en un grupo de administración, use Implementaciones - Crear en el ámbito del grupo de administración. La solicitud se envía a:
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{groupId}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
Para obtener más información sobre las implementaciones de nivel de grupo de administración, consulte Creación de recursos en el nivel de grupo de administración.
Para implementar en un inquilino, use Implementaciones: crear o actualizar en el ámbito del inquilino. La solicitud se envía a:
PUT https://management.azure.com/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
Para más información sobre las implementaciones a nivel de inquilino, consulte Creación de recursos en el nivel de inquilino.
En los ejemplos de este artículo se usan implementaciones de grupos de recursos.
Implementación con la API de REST
Establezca parámetros y encabezados comunes, incluidos los tokens de autenticación.
Si va a realizar la implementación en un grupo de recursos que no existe, cree el grupo de recursos. Proporcione el identificador de suscripción, el nombre del nuevo grupo de recursos y la ubicación que necesita para la solución. Para obtener más información, consulte Crear un grupo de recursos.
PUT https://management.azure.com/subscriptions/<YourSubscriptionId>/resourcegroups/<YourResourceGroupName>?api-version=2020-06-01
Con un cuerpo de solicitud como:
{ "___location": "West US", "tags": { "tagname1": "tagvalue1" } }
Antes de implementar la plantilla, puede obtener una vista previa de los cambios que la plantilla realizará en su entorno. Use la operación Y si para comprobar que la plantilla realiza los cambios esperados. La operación y si también valida que la plantilla no tenga errores.
Para implementar una plantilla, proporcione el identificador de suscripción, el nombre del grupo de recursos y el nombre de la implementación en el URI de la solicitud.
PUT https://management.azure.com/subscriptions/<YourSubscriptionId>/resourcegroups/<YourResourceGroupName>/providers/Microsoft.Resources/deployments/<YourDeploymentName>?api-version=2020-10-01
En el cuerpo de la solicitud, proporcione un vínculo a la plantilla y al archivo de parámetros. Para más información sobre el archivo de parámetro, consulte Creación de un archivo de parámetros de Resource Manager.
Observe que está
mode
establecido en Incremental. Para ejecutar una implementación completa, establézcalomode
en Completado. Tenga cuidado al usar el modo completo, ya que puede eliminar inadvertidamente recursos que no están en su plantilla.{ "properties": { "templateLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json", "contentVersion": "1.0.0.0" }, "parametersLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json", "contentVersion": "1.0.0.0" }, "mode": "Incremental" } }
Si desea registrar el contenido de la respuesta, el contenido de la solicitud o ambos, inclúyalo
debugSetting
en la solicitud.{ "properties": { "templateLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json", "contentVersion": "1.0.0.0" }, "parametersLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json", "contentVersion": "1.0.0.0" }, "mode": "Incremental", "debugSetting": { "detailLevel": "requestContent, responseContent" } } }
Puede configurar la cuenta de almacenamiento para que use un token de firma de acceso compartido (SAS). Para obtener más información, consulte Delegar el acceso con una firma de acceso compartido.
Si necesita proporcionar un valor confidencial para un parámetro (como una contraseña), agregue ese valor a un almacén de claves. Recupere el almacén de claves durante la implementación, como se muestra en el ejemplo anterior. Para más información, consulte Uso de Azure Key Vault para pasar el valor de parámetro seguro durante la implementación.
En lugar de vincular a archivos para la plantilla y los parámetros, puede incluirlos en el cuerpo de la solicitud. En el ejemplo siguiente se muestra el cuerpo de la solicitud con la plantilla y el parámetro insertados:
{ "properties": { "mode": "Incremental", "template": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "metadata": { "description": "Storage Account type" } }, "___location": { "type": "string", "defaultValue": "[resourceGroup().___location]", "metadata": { "description": "Location for all resources." } } }, "variables": { "storageAccountName": "[format('{0}standardsa', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2022-09-01", "name": "[variables('storageAccountName')]", "___location": "[parameters('___location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2", "properties": {} } ], "outputs": { "storageAccountName": { "type": "string", "value": "[variables('storageAccountName')]" } } }, "parameters": { "___location": { "value": "eastus2" } } } }
Para obtener el estado de la implementación de la plantilla, use Implementaciones - Obtener.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
Implementación con ARMClient
ARMClient es una sencilla herramienta de línea de comandos para invocar la API de Azure Resource Manager. Para instalar la herramienta, consulte ARMClient.
Para enumerar tus suscripciones:
armclient GET /subscriptions?api-version=2021-04-01
Para enumerar los grupos de recursos:
armclient GET /subscriptions/<subscription-id>/resourceGroups?api-version=2021-04-01
Reemplace <subscription-id> por su identificador de suscripción de Azure.
Para crear un grupo de recursos en la región Centro de EE. UU .:
armclient PUT /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>?api-version=2021-04-01 "{___location: 'central us', properties: {}}"
Alternativamente, puede poner el cuerpo en un archivo JSON llamado CreateRg.json:
{
"___location": "Central US",
"properties": { }
}
armclient PUT /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>?api-version=2021-04-01 '@CreateRg.json'
Para más información, consulte ARMClient: una herramienta de línea de comandos para la API de Azure.
Nombre de implementación
Puede asignar a la implementación un nombre como ExampleDeployment
.
Cada vez que se ejecuta una implementación, se agrega una entrada al historial de implementación del grupo de recursos con el nombre de la implementación. Si ejecuta otra implementación y le asigna el mismo nombre, la entrada anterior se reemplazará por la implementación actual. Si desea que todas las entradas del historial de implementaciones sean diferentes, asigne un nombre único a cada implementación.
Para crear un nombre único, puede asignar un número aleatorio. También puede agregar un valor de fecha.
Si ejecuta implementaciones simultáneas en el mismo grupo de recursos utilizando el mismo nombre de implementación, solo se completará la última implementación. Aquellas implementaciones que tengan el mismo nombre y no hayan finalizado se sustituirán por la última implementación. Por ejemplo, si ejecuta una implementación llamada newStorage
que implementa la cuenta de almacenamiento storage1
y, al mismo tiempo, ejecuta otra implementación llamada newStorage
que implementa la cuenta de almacenamiento storage2
, solo se implementará una única cuenta de almacenamiento. La cuenta de almacenamiento resultante será storage2
.
Sin embargo, si ejecuta una implementación llamada newStorage
que implementa la cuenta de almacenamiento storage1
e inmediatamente después ejecuta otra implementación llamada newStorage
que implementa la cuenta de almacenamiento storage2
, tendrá dos cuentas de almacenamiento. Una se llamará storage1
y la otra, storage2
. Sin embargo, solo tendrá una entrada en el historial de implementaciones.
Si especifica un nombre único para cada implementación, podrá ejecutarlas simultáneamente sin conflictos. Si ejecuta una implementación llamada newStorage1
que implementa la cuenta de almacenamiento storage1
y, al mismo tiempo, ejecuta otra implementación llamada newStorage2
que implementa la cuenta de almacenamiento storage2
, tendrá dos cuentas de almacenamiento y dos entradas en el historial de implementación.
Para evitar conflictos con las implementaciones simultáneas y garantizar que las entradas del historial de implementaciones son únicas, asigne un nombre diferente a cada implementación.
Pasos siguientes
- Para revertir a una implementación correcta cuando se produce un error, consulte Revertir en caso de error a una implementación correcta.
- Para especificar cómo controlar los recursos que existen en el grupo de recursos, pero que no están definidos en la plantilla, consulte Modos de implementación de Azure Resource Manager.
- Para obtener información sobre el control de operaciones REST asincrónicas, consulte Seguimiento de operaciones asincrónicas de Azure.
- Para más información sobre las plantillas, consulte Descripción de la estructura y la sintaxis de las plantillas de ARM.