Ejercicio: Definición de recursos secundarios
Nota:
La primera vez que active un espacio aislado y acepte los términos, la cuenta de Microsoft se asocia a un nuevo directorio de Azure denominado Espacio aislado de Microsoft Learn. Se le agrega también a una suscripción especial llamada Suscripción de Concierge.
Está empezando a trabajar en las peticiones de su equipo de I+D, y decide empezar por construir una base de datos Azure Cosmos DB para los datos de prueba del dron de juguete. En este ejercicio, crea la cuenta de Azure Cosmos DB y dos recursos secundarios: uno mediante la propiedad parent
y el otro como un recurso anidado.
Durante el proceso:
- Crear un archivo Bicep que implemente una cuenta Cosmos DB.
- Agregar una base de datos y un contenedor, que son recursos secundarios de la cuenta Cosmos BD.
- Implementar la plantilla y comprobar el resultado.
En este ejercicio se usa la extensión de Bicep para Visual Studio Code. Asegúrese de instalar esta extensión en Visual Studio Code.
Creación de una plantilla de Bicep que contenga una cuenta de Azure Cosmos DB
En primer lugar, cree una nueva plantilla de Bicep con una cuenta de Azure Cosmos DB. Para ello:
Abra Visual Studio Code.
Cree un archivo con el nombre main.bicep.
Guarde el archivo vacío para que Visual Studio Code cargue las herramientas de Bicep.
Puede seleccionar Archivo>Guardar como o Ctrl+S en Windows (⌘+S en macOS). Asegúrese de recordar dónde guardó el archivo. Por ejemplo, podría crear una carpeta scripts para guardarlo ahí.
Agregue el siguiente contenido al archivo. Es una buena idea escribirlo manualmente en lugar de copiarlo y pegarlo. De este modo, puede ver cómo las herramientas le ayudan a escribir los archivos Bicep.
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param location string = resourceGroup().location resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } }
Sugerencia
Bicep es estricto sobre dónde colocar saltos de línea, así que asegúrese de agregar saltos de línea solo donde se muestran aquí.
Esta plantilla de Bicep implementa una cuenta de Azure Cosmos DB que es el recurso primario en el que se basa en la siguiente sección.
Guarde los cambios en el archivo.
Agregar una base de datos
A continuación, cree la base de datos, que es un recurso secundario de la cuenta de Azure Cosmos DB.
En la parte superior del archivo, entre los dos parámetros existentes, agregue el parámetro siguiente:
param cosmosDBDatabaseThroughput int = 400
En las declaraciones de parámetros, agregue la variable siguiente:
var cosmosDBDatabaseName = 'FlightTests'
Agregue la siguiente definición de recurso en la parte inferior del archivo, debajo de la definición del recurso de la cuenta de Azure Cosmos DB.
resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } }
Observe que este código implementa la base de datos, que es un recurso secundario, mediante la propiedad
parent
. Observe también que el código usa el tipo de recurso completo, con la versión de API especificada explícitamente.Guarde los cambios en el archivo.
Agregar un contenedor
Ahora agregue otro recurso secundario. Esta vez, se agrega como un recurso anidado en lugar de usar la propiedad parent
.
Cerca de la parte superior del archivo, debajo de la definición de variable
cosmosDBDatabaseName
, agregue las siguientes variables:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'
Cerca de la parte inferior del archivo, dentro de la definición del recurso de base de datos y antes de su llave de cierre (
}
), agregue la siguiente definición de recurso anidado:resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } }
Observe que ha usado un tipo de recurso corto,
containers
, porque Bicep entiende que pertenece al tipo de recurso primario. Bicep sabe que el tipo de recurso completo esMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers
. No especificó una versión de API, por lo que Bicep usa la versión del recurso primario,2020-04-01
.Cuando termine, la plantilla de Bicep completa debería tener un aspecto similar al de este ejemplo:
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param cosmosDBDatabaseThroughput int = 400 param location string = resourceGroup().location var cosmosDBDatabaseName = 'FlightTests' var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId' resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-11-15' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } } resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-11-15' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } } }
Guarde los cambios en el archivo.
Implementación de la plantilla en Azure
Para implementar esta plantilla en Azure, debe iniciar sesión en la cuenta de Azure desde el terminal de Visual Studio Code. Asegúrese de que tiene instalada la CLI de Azure y de que inicia sesión con la misma cuenta que utilizó para activar el espacio aislado.
En el menú Terminal, seleccione Nuevo terminal. Normalmente, la ventana de terminal se abre en la mitad inferior de la pantalla.
Si la ventana del terminal muestra Bash en el lado derecho, significa que el shell correcto ya está abierto. Como alternativa, si ve un icono de shell de Bash a la derecha, puede seleccionarlo para iniciar el shell.
Si apareciera un shell distinto de Bash, seleccione la flecha de la lista desplegable del shell y, a continuación, seleccione Bash de Git.
En el terminal, vaya al directorio donde ha guardado la plantilla. Por ejemplo, si ha guardado la plantilla en la carpeta templates, puede usar este comando:
cd templates
Instalación de Bicep
Ejecute el comando siguiente para asegurarse de que tiene la versión más reciente de Bicep:
az bicep install && az bicep upgrade
Inicio de sesión en Azure
En el terminal de Visual Studio Code, inicie sesión en Azure mediante el siguiente comando:
az login
En el explorador que se abre, inicie sesión en su cuenta de Azure. En el terminal de Visual Studio Code se muestra una lista de las suscripciones asociadas a esta cuenta. Seleccione la suscripción llamada Suscripción de Concierge.
Si ha usado más de un espacio aislado recientemente, es posible que en el terminal se muestre más de una instancia de Suscripción de Concierge. En este caso, siga estos dos pasos para establecer una de las suscripciones como la predeterminada.
Obtenga los identificadores de la Suscripción de Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Establezca la suscripción predeterminada con el identificador de la suscripción. Reemplace {identificador de su suscripción} por el identificador más reciente de la Suscripción de Concierge.
az account set --subscription {your subscription ID}
Establecimiento del grupo de recursos predeterminado
Al usar la CLI de Azure, puede establecer el grupo de recursos predeterminado y omitir el parámetro del resto de los comandos de la CLI de Azure de este ejercicio. Establezca el valor predeterminado en el grupo de recursos que se ha creado de forma automática en el entorno del espacio aislado.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Implementación de la plantilla en Azure
Ejecute el código siguiente desde el terminal en Visual Studio Code para implementar la plantilla de Bicep en Azure. Esta operación puede tardar un par de minutos en completarse, antes de ver que la implementación se ha realizado correctamente.
az deployment group create --template-file main.bicep
Para implementar esta plantilla en Azure, inicie sesión en la cuenta de Azure desde el terminal de Visual Studio Code. Asegúrese de haber instalado Azure PowerShell e inicie sesión en la misma cuenta que ha activado el espacio aislado.
En el menú Terminal, seleccione Nuevo terminal. Normalmente, la ventana de terminal se abre en la mitad inferior de la pantalla.
Si la ventana del terminal muestra pwsh o powershell en el lado derecho, significa que el shell correcto ya está abierto. Como alternativa, si ve un icono de shell de PowerShell a la derecha, puede seleccionarlo para iniciar el shell.
Si aparece un shell distinto de pwsh o PowerShell, seleccione la flecha desplegable del shell y, a continuación, seleccione PowerShell.
En el terminal, vaya al directorio donde ha guardado la plantilla. Por ejemplo, si ha guardado la plantilla en la carpeta templates, puede usar este comando:
Set-Location -Path templates
Instalación de la CLI de Bicep
Para usar Bicep desde Azure PowerShell, instale la CLI de Bicep.
Inicio de sesión en Azure mediante Azure PowerShell
En el terminal de Visual Studio Code, ejecute el comando siguiente:
Connect-AzAccount
Se abre un explorador para que pueda iniciar sesión en la cuenta de Azure. Es posible que el explorador se abra en segundo plano.
Después de iniciar sesión, en el terminal se muestra una lista de las suscripciones asociadas a esta cuenta. Si ha activado el espacio aislado, se muestra una suscripción denominada Suscripción de Concierge. Selecciónelo para el resto del ejercicio.
Si ha usado más de un espacio aislado recientemente, es posible que en el terminal se muestre más de una instancia de Suscripción de Concierge. En este caso, siga estos dos pasos para establecer una de las suscripciones como la predeterminada.
Obtenga el identificador de la suscripción. Al ejecutar el comando siguiente se mostrarán las suscripciones y sus identificadores. Busque
Concierge Subscription
y copie el identificador de la segunda columna. Tiene un aspecto similar aaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Cambie la suscripción activa a la Suscripción de Concierge. Asegúrese de reemplazar {identificador de la suscripción} por el que ha copiado.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Establecimiento del grupo de recursos predeterminado
Puede establecer el grupo de recursos predeterminado y omitir el parámetro del resto de los comandos de Azure PowerShell de este ejercicio. Establezca este valor predeterminado en el grupo de recursos que se ha creado de forma automática en el entorno del espacio aislado.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Implementación de la plantilla en Azure
Implemente la plantilla en Azure usando el siguiente comando de Azure PowerShell en el terminal. Esta operación puede tardar un par de minutos en completarse, antes de ver que la implementación se ha realizado correctamente.
New-AzResourceGroupDeployment -TemplateFile main.bicep
Comprobación de la implementación
Vaya a Azure Portal y asegúrese de que está en la suscripción de espacio aislado:
Seleccione el avatar en la esquina superior derecha de la página.
Seleccione Cambiar directorio. En la lista, seleccione el directorio Espacio aislado de Microsoft Learn.
En la página principal, seleccione Grupos de recursos. Aparece el panel Grupos de recursos.
Seleccione
[nombre del grupo de recursos del espacio aislado] .En la Información general, puede ver la implementación realizada correctamente.
Seleccione 1 correcta para ver los detalles de la implementación.
Seleccione la implementación llamada main para ver qué recursos se han implementado; después, seleccione Detalles de la implementación para expandirla. En este caso, hay una cuenta de Cosmos DB, una base de datos y un contenedor en la lista.
Deje abierta la página en el explorador para que pueda volver a comprobar las implementaciones más adelante.