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:
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.
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:
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.
Pasos siguientes
- Para información sobre las plantillas, consulte Nociones sobre la estructura y la sintaxis de las plantillas de ARM.