Definir recursos

Completado

Las plantillas de Bicep son los archivos que crea y que definen los recursos de Azure que se van a implementar.

Su empresa de juguetes necesita que cree una plantilla de Bicep reutilizable para los lanzamientos de productos. La plantilla debe implementar una cuenta de almacenamiento de Azure y recursos de Azure App Service, que se utilizarán para el marketing de cada producto nuevo durante su lanzamiento.

En esta unidad, aprenderá a definir un recurso en una plantilla de Bicep, cómo funcionan los nombres de recursos y cómo puede crear recursos relacionados entre sí.

Nota:

Los comandos de esta unidad se muestran para ilustrar conceptos. No los ejecute todavía. Pronto va a practicar lo que aprenderá aquí.

Definición de un recurso

Lo principal que se hace con las plantillas de Bicep es definir los recursos de Azure. Este es un ejemplo del aspecto de una definición de recursos típica en Bicep. En este ejemplo se crea una cuenta de almacenamiento denominada toylaunchstorage.

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: 'toylaunchstorage'
  location: 'westus3'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Echemos un vistazo más de cerca a algunas las partes principales de esta definición de recursos:

  • La palabra clave resource al principio indica a Bicep que está a punto de definir un recurso.

  • A continuación, ponga al recurso un nombre simbólico. En el ejemplo, el nombre simbólico del recurso es storageAccount. Los nombres simbólicos se usan en Bicep para hacer referencia al recurso, pero nunca se mostrarán en Azure.

  • Microsoft.Storage/storageAccounts@2022-09-01 es el tipo de recurso y la versión de API del recurso. Microsoft.Storage/storageAccounts indica a Bicep que está declarando una cuenta de almacenamiento de Azure. La fecha 2022-09-01 es la versión de la API de Azure Storage que Bicep utiliza cuando crea el recurso.

    Sugerencia

    La extensión de Bicep para Visual Studio Code le permite encontrar los tipos de recursos y las versiones de API de los recursos que crea. Si está familiarizado con las plantillas de ARM, tenga en cuenta que la versión de la API coincide con la versión que utilizaría allí también.

  • Tiene que declarar un nombre de recurso, que es el nombre que se asignará a la cuenta de almacenamiento en Azure. Podrá establecer un nombre de recurso mediante la palabra clavename.

    Importante

    Los nombres simbólicos solo se usan dentro de la plantilla de Bicep y no aparecen en Azure. Los nombres de recursos aparecen en Azure.

  • A continuación, deberá establecer otros detalles del recurso, como su ubicación, SKU (plan de tarifa) y tipo. También hay propiedades que puede definir y que son diferentes para cada tipo de recurso. Las distintas versiones de la API también pueden presentar propiedades diferentes. En este ejemplo, vamos a establecer el nivel de acceso de la cuenta de almacenamiento en Hot.

Sugerencia

Los nombres de recursos suelen tener reglas que debe seguir, como longitudes máximas, caracteres permitidos y unicidad en todo el sistema de Azure. Los requisitos para los nombres de recursos son diferentes para cada tipo de recurso de Azure. Asegúrese de comprender las restricciones de nomenclatura y los requisitos antes de agregarlos a la plantilla.

¿Qué ocurre cuando los recursos dependen unos de otros?

Una plantilla de Bicep normalmente incluye varios recursos. A menudo, es necesario que un recurso dependa de otro. Es posible que tenga que extraer información de un recurso para poder definir otro. O bien, si va a implementar una aplicación web, debe crear la infraestructura del servidor para poder agregarle una aplicación. Estas relaciones se denominan dependencias.

Tendrá que implementar una aplicación de App Service para la plantilla que le ayudará a iniciar el producto prototipo, pero para crear una aplicación de App Service, primero debe crear un plan de App Service. El plan de App Service representa los recursos de hospedaje de servidor y se declara de esta forma:

resource appServicePlan 'Microsoft.Web/serverFarms@2022-03-01' = {
  name: 'toy-product-launch-plan'
  location: 'westus3'
  sku: {
    name: 'F1'
  }
}

Esta definición de recurso le indica a Bicep que Ud. quiere implementar un plan de App Service que tiene el tipo de recurso Microsoft.Web/serverFarms. El recurso de plan se denomina toy-product-launch-plan y se implementa en la región 3 del Oeste de EE. UU. Usa una SKU de precios de F1, que es el nivel gratuito de App Service.

Ahora que ha declarado el plan de App Service, el siguiente paso es declarar la aplicación:

resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
  name: 'toy-product-launch-1'
  location: 'westus3'
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

Esta plantilla indica a Azure que hospeda la aplicación en el plan que Ud. ha creado. Observe que la definición del plan incluye el nombre simbólico del plan de App Service en esta línea: serverFarmId: appServicePlan.id. Esta línea significa que Bicep obtendrá el id. de recurso del plan de App Service mediante la propiedad id. De hecho, dice: el identificador de granja de servidores de esta aplicación es el identificador del plan de App Service definido anteriormente.

Sugerencia

En Azure, un identificador de recurso es un identificador único para cada recurso. El identificador de recurso incluye el identificador de suscripción de Azure, el nombre del grupo de recursos y el nombre del recurso, junto con otra información.

Al declarar el recurso de aplicación con una propiedad que hace referencia al nombre simbólico del plan, Azure entiende la dependencia implícita entre la aplicación de App Service y el plan. Cuando implemente los recursos, Azure se asegurará de implementar completamente el plan antes de empezar a implementar la aplicación.