Uso de un botón de implementación para implementar plantillas remotas

En este artículo se describe cómo usar el botón Implementar en Azure para implementar plantillas JSON de ARM remotas desde un repositorio de GitHub en una cuenta de almacenamiento de Azure. Puede agregar el botón directamente al archivo README.md en el repositorio de GitHub. O bien, puede agregar el botón a una página web que haga referencia al repositorio. Este método no admite la implementación de archivos Bicep remotos.

El ámbito de implementación viene determinado por el esquema de plantilla. Para más información, consulte:

Permisos necesarios

Para implementar un archivo de Bicep o una plantilla de ARM, se necesita acceso de escritura en los recursos que implementa y acceso a todas las operaciones del 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.

Uso de una imagen común

Para agregar el botón a su página web o repositorio, use la siguiente imagen:

![Deploy to Azure](https://aka.ms/deploytoazurebutton)
<img src="https://aka.ms/deploytoazurebutton"/>

La imagen aparece como:

Captura de pantalla del botón Implementar en Azure.

Crear dirección URL para implementar una plantilla

En esta sección se muestra cómo obtener las direcciones URL de las plantillas almacenadas en GitHub y en la cuenta de almacenamiento de Azure y cómo dar formato a las direcciones URL.

Plantilla almacenada en GitHub

Para crear la dirección URL de la plantilla, comience con la dirección URL original de la plantilla en el repositorio de GitHub. Para ver la dirección URL sin formato, seleccione Sin formato.

Captura de pantalla que muestra cómo seleccionar Raw en GitHub.

El formato de la dirección URL es:

https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

Nota

Para implementar una plantilla o hacer referencia a una plantilla vinculada que se almacena en un repositorio de GitHub privado, consulte una solución personalizada documentada en Creación de una oferta de Azure Portal segura y personalizada. Puede crear una función de Azure que extraiga el token de GitHub de Azure Key Vault.

Si usa Git con Azure Repos en lugar de un repositorio de GitHub, puede seguir usando el botón Implementar en Azure. Asegúrese de que el repositorio es público. Use la operación Elementos para obtener la plantilla. La solicitud debería tener el siguiente formato:

https://dev.azure.com/{organization-name}/{project-name}/_apis/git/repositories/{repository-name}/items?scopePath={url-encoded-path}&api-version=6.0

Plantilla almacenada en la cuenta de almacenamiento de Azure

El formato de las direcciones URL de las plantillas almacenadas en un contenedor público es:

https://{storage-account-name}.blob.core.windows.net/{container-name}/{template-file-name}

Por ejemplo:

https://demostorage0215.blob.core.windows.net/democontainer/azuredeploy.json

Puede proteger la plantilla con el token de SAS. Para obtener más información, consulte Procedimiento para implementar una plantilla de ARM privada con un token de SAS. La siguiente dirección URL es un ejemplo con el token de SAS:

https://demostorage0215.blob.core.windows.net/privatecontainer/azuredeploy.json?sv=2019-07-07&sr=b&sig=rnI8%2FvKoCHmvmP7XvfspfyzdHjtN4GPsSqB8qMI9FAo%3D&se=2022-02-16T17%3A47%3A46Z&sp=r

Asignación de formato a la dirección URL

Una vez que tenga la dirección URL, debe convertirla en un valor con codificación URL. Puede usar un codificador en línea o ejecutar un comando. En el siguiente ejemplo de PowerShell se muestra cómo codificar un valor como una dirección URL.

$url = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json"
[uri]::EscapeDataString($url)

La dirección URL de ejemplo tiene el siguiente valor cuando se codifica como una URL.

https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json

Cada vínculo comienza con la misma dirección URL base:

https://portal.azure.com/#create/Microsoft.Template/uri/

Agregue el vínculo de la plantilla con codificación URL al final de la dirección URL base.

https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json

Ya tiene la dirección URL completa del vínculo.

Crear el botón Implementar en Azure

Por último, coloque el vínculo y la imagen juntos.

Para agregar el botón con Markdown en el archivo README.md en el repositorio de GitHub o en una página web, use:

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json)

Para HTML, use:

<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json" target="_blank">
  <img src="https://aka.ms/deploytoazurebutton"/>
</a>

En el caso de Git con el repositorio de Azure, el botón tiene el siguiente formato:

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fdev.azure.com%2Forgname%2Fprojectname%2F_apis%2Fgit%2Frepositories%2Freponame%2Fitems%3FscopePath%3D%2freponame%2fazuredeploy.json%26api-version%3D6.0)

Implementación de la plantilla

Para probar la solución completa, seleccione el botón siguiente:

Captura de pantalla del botón Deploy to Azure con enlace.

El portal muestra un panel que le permite proporcionar fácilmente los valores de parámetros. Los parámetros se rellenan previamente con los valores predeterminados de la plantilla. El nombre del parámetro con mayúsculas y minúsculas Camel, storageAccountType, definido en la plantilla se convierte en una cadena separada por espacios cuando se muestra en el portal.

Captura de pantalla del panel de visualización del portal Azure para proporcionar valores de parámetros.

Pasos siguientes