Compartir a través de


Tutorial: Incorporación de salidas a la plantilla de Resource Manager

En este tutorial, aprenderá a devolver un valor de la plantilla de Azure Resource Manager (ARM). Las salidas se usan cuando necesita un valor de un recurso implementado. Este tutorial se realiza en 7 minutos.

Prerrequisitos

Aunque no es obligatorio, se recomienda realizar el tutorial sobre variables.

Debe tener Visual Studio Code con la extensión Herramientas de Resource Manager y Azure PowerShell o la Interfaz de la línea de comandos de Azure (CLI). Para más información, consulte las herramientas de plantilla.

Revisión de la plantilla

Al final del tutorial anterior, la plantilla tenía el siguiente código JSON:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Este código implementa una cuenta de almacenamiento, pero no devuelve ninguna información sobre dicha cuenta. Es posible que necesite capturar propiedades de un nuevo recurso para que estén disponibles más adelante como referencia.

Adición de salidas

Puede usar salidas para devolver valores de la plantilla. Por ejemplo, puede resultar útil obtener los puntos de conexión de la nueva cuenta de almacenamiento.

En el ejemplo siguiente se resalta el cambio en la plantilla para agregar un valor de salida. Copie el archivo completo y reemplace la plantilla por su contenido.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Hay algunos elementos importantes que se deben tener en cuenta sobre el valor de salida que ha agregado.

El tipo de valor devuelto se establece en object, lo que significa que devuelve un objeto JSON.

Utiliza la función reference para obtener el estado de tiempo de ejecución de la cuenta de almacenamiento. Para obtener el estado de tiempo de ejecución de un recurso, pase el nombre o el identificador del recurso. En este caso, usará la misma variable que utilizó para crear el nombre de la cuenta de almacenamiento.

Por último, devuelve la propiedad primaryEndpoints de la cuenta de almacenamiento.

Implementar plantilla

Ya está listo para implementar la plantilla y examinar el valor devuelto.

Si no ha creado el grupo de recursos, consulte Creación del grupo de recursos. En el ejemplo se supone que ha establecido la variable templateFile en la ruta de acceso al archivo de plantilla, como se muestra en el primer tutorial.

New-AzResourceGroupDeployment `
  -Name addoutputs `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

En el resultado del comando de implementación, verá un objeto similar al siguiente ejemplo solo si el resultado está en formato JSON:

{
    "dfs": "https://storeluktbfkpjjrkm.dfs.core.windows.net/",
    "web": "https://storeluktbfkpjjrkm.z19.web.core.windows.net/",
    "blob": "https://storeluktbfkpjjrkm.blob.core.windows.net/",
    "queue": "https://storeluktbfkpjjrkm.queue.core.windows.net/",
    "table": "https://storeluktbfkpjjrkm.table.core.windows.net/",
    "file": "https://storeluktbfkpjjrkm.file.core.windows.net/"
}

Nota

Si se produjo un error en la implementación, use el modificador verbose para obtener información sobre los recursos que se están creando. Utilice el modificador debug para más información sobre la depuración.

Revisión del trabajo

En los seis últimos tutoriales ha hecho muchas cosas. Dedique un momento a revisar lo que ha hecho. Ha creado una plantilla con parámetros fáciles de proporcionar. La plantilla se puede volver a usar en diferentes entornos porque se puede personalizar y crea dinámicamente valores necesarios. También devuelve información sobre la cuenta de almacenamiento que puede usar en el script.

Ahora, echemos un vistazo al grupo de recursos y al historial de implementaciones.

  1. Inicie sesión en Azure Portal.

  2. En el menú izquierdo, seleccione Grupos de recursos.

  3. Seleccione el grupo de recursos en el que ha realizado la implementación.

  4. En función de los pasos que haya realizado, debe tener al menos una cuenta de almacenamiento en el grupo de recursos.

  5. También debe tener varias implementaciones correctas enumeradas en el historial. Seleccione ese vínculo.

    Captura de pantalla de Azure Portal en la que se muestra el vínculo de implementaciones.

  6. Verá todas las implementaciones del historial. Seleccione la implementación llamada addoutputs.

    Captura de pantalla de Azure Portal en la que se muestra el historial de implementación.

  7. Puede revisar las entradas.

    Captura de pantalla de Azure Portal en la que se muestran las entradas de implementación.

  8. Puede revisar las salidas.

    Captura de pantalla de Azure Portal en la que se muestran las salidas de implementación.

  9. Puede revisar la plantilla.

    Captura de pantalla de Azure Portal en la que se muestra la plantilla de implementación.

Limpieza de recursos

Si va a pasar al siguiente tutorial, no es necesario que elimine el grupo de recursos.

Si va a terminar ya, puede eliminar el grupo de recursos.

  1. En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
  2. Escriba el nombre del grupo de recursos en el campo de texto Filtro por cualquier campo....
  3. Active la casilla situada junto a myResourceGroup y seleccione myResourceGroup o el nombre del grupo de recursos.
  4. Seleccione Eliminar grupo de recursos del menú superior.

Pasos siguientes

En este tutorial, ha agregado un valor devuelto a la plantilla. En el siguiente tutorial, aprenderá a exportar una plantilla y a usar partes de la plantilla exportada en su plantilla.