Usa la extensión de Microsoft Terraform de Visual Studio Code

La extensión Microsoft Terraform Visual Studio Code proporciona herramientas de creación, validación y migración para configuraciones de Terraform en Azure. Incluye inteligencia de idioma para los proveedores de AzureRM y AzAPI, la integración con Azure Export para Terraform (aztfexport) y soporte de validación preliminar.

En este artículo se describen las características más relevantes para la creación y la migración del proveedor de AzAPI. Para obtener una guía para instalar la extensión y ejecutar comandos básicos de Terraform, consulte Install the Microsoft Terraform Visual Studio Code extensión.

Prerequisites

Características del lenguaje del proveedor AzAPI

Úselo cuando: está creando o editando azapi_resource bloques y desea autocompletar, validación y documentación insertada.

La extensión proporciona inteligencia de lenguaje enriquecida para el proveedor AzAPI en archivos .tf respaldado por el Servidor de Lenguaje AzAPI.

Tipo de recurso y finalización de versión de API

Al escribir type = " dentro de una azapi_resource, azapi_update_resource o azapi_data_plane_resource bloque, la extensión muestra una lista de todos los tipos de recursos y versiones de API disponibles Azure:

Captura de pantalla que muestra el autocompletado para los tipos de recursos de AzAPI disponibles y las versiones de API de AzAPI.

Nombre de propiedad y finalización del valor

Dentro del body atributo , la extensión sugiere nombres de propiedad permitidos y valores válidos en función del tipo de recurso y la versión de API seleccionados:

Captura de pantalla que muestra la función autocompletar de los valores y nombres de propiedad permitidos en un cuerpo de azapi_resource.

En el caso de las propiedades que usan objetos discriminados (como las jerarquías de tipos basadas en kind), la extensión rellena automáticamente las subpropiedades necesarias.

Documentación sobre la función hover

Al mantener el puntero sobre un tipo de recurso, un nombre de propiedad o un valor de propiedad, se muestra la documentación insertada del esquema de recursos de Azure:

Captura de pantalla que muestra la documentación emergente para una propiedad AzAPI.

Validación de esquema

La extensión subraya los errores de esquema a medida que escribe( por ejemplo, nombres de propiedad no reconocidos, tipos de valor incorrectos o propiedades necesarias que faltan:

Captura de pantalla que muestra el resaltado de errores de esquema en línea en el cuerpo de un recurso azapi.

Pegar JSON de ARM como configuración de AzAPI

Si tiene una definición de recursos del portal de Azure, un objeto de recurso de plantilla de ARM o una respuesta de API REST sin procesar, puede pegarlo directamente en un archivo .tf y la extensión la convierte en un bloque azapi_resource.

Úselo cuando: va a crear un nuevo recurso de AzAPI y tiene una definición JSON existente desde la que empezar.

  1. Copie el recurso JSON o la plantilla de ARM en el Portapapeles.
  2. Abra un .tf archivo y coloque el cursor en el punto de inserción.
  3. Pegue (Ctrl+V en Windows/Linux, Cmd+V en macOS). La extensión detecta el formato JSON y lo convierte en azapi_resource HCL.

En el caso de las plantillas de ARM que contienen varios recursos, parámetros y variables, la limpieza manual suele ser necesaria después de la conversión. Revise los valores generados type, bodyy parent_id antes de aplicar.

Exportación de recursos de Azure existentes como Terraform

La extensión se integra con aztfexport para exportar los recursos de Azure existentes a la configuración y el estado de Terraform, con una elección de AzureRM o AzAPI como proveedor de salida.

Utilice esto cuando: tiene recursos de Azure existentes que no administra Terraform y quiere gestionarlos con Terraform.

  1. Abra la paleta de comandos (Ctrl+Shift+P en Windows/Linux, Cmd+Shift+P en macOS).
  2. Busque y seleccione Microsoft Terraform: Exportar recurso de Azure como Terraform.
  3. Siga las indicaciones para seleccionar la suscripción, el grupo de recursos y los recursos individuales.
  4. Seleccione azurerm o azapi como proveedor de salida.
  5. La extensión genera la configuración de Terraform y la abre en una nueva pestaña del editor.

También puede exportar recursos directamente desde el portal de Azure sin instalar ninguna herramienta. Consulte Exportar un recurso en el portal de Azure. Para obtener el uso completo de la CLI de aztfexport, consulte la descripción general de Azure Export para Terraform.

Migración de recursos de AzureRM a AzAPI

La extensión puede generar equivalentes de AzAPI para azurerm_* bloques de recursos en un módulo de Terraform, siguiendo la guía de migración de azapi-lsp.

Úselo cuando: está convirtiendo un módulo de AzureRM a AzAPI y necesita asistencia para crear los bloques equivalentes azapi_resource.

  1. Abra el .tf archivo que contiene los bloques de azurerm_* recursos.
  2. Abra la paleta de comandos y busque el comando de migración a AzAPI o use la acción de código en el editor al mantener el puntero sobre un azurerm_* bloque de recursos.
  3. Revise la salida generada. Valide la estructura type, api-version y body en la documentación del registro del proveedor AzAPI antes de reemplazar los bloques originales.

Importante

Esta característica solo ayuda con la creación de HCL; no actualiza el archivo de estado de Terraform. Si reemplaza los bloques de azurerm_* por los de azapi_resource sin actualizar el estado, Terraform trata los recursos de AzureRM como eliminados y los recursos de AzAPI como nuevos, provocando la recreación de los recursos subyacentes de Azure.

Para migrar el estado junto con la configuración, use terraform state mv para cada recurso después de la conversión o agregue import bloques. Ejecute terraform plan después de cada cambio de estado para confirmar que no se produce ninguna nueva creación no deseada.

Para obtener una guía completa sobre todas las direcciones de migración (incluidas aztfmigrate para AzAPI → AzureRM), consulte Migration paths between Azure, AzureRM y AzAPI Terraform providers.

Validación preliminar

La extensión se integra con la herramienta aztfpreflight para validar tu plan de Terraform contra las restricciones de recursos de Azure antes de la implementación.

Úselo cuando: quiera detectar errores de configuración en la fase de planificación sin desplegar recursos.

  1. Asegúrese de que está autenticado con az login.
  2. Abra la paleta de comandos y seleccione Microsoft Terraform: Validación preliminar.
  3. Seleccione un archivo de plan existente o deje que la extensión genere una nueva.
  4. La extensión ejecuta aztfpreflight contra el plan y muestra los resultados en la terminal.

La comprobación previa detecta errores como valores de propiedad no válidos, infracciones de cuota y errores de cumplimiento de directivas antes de que se creen o modifiquen los recursos. Para obtener más información sobre cómo habilitar directamente la validación previa en la configuración del proveedor de AzAPI, consulte el apartado Habilitación de la validación preparatoria en el proveedor de Terraform de AzAPI.

Generación de permisos necesarios

Utilice esto cuando: necesite determinar las asignaciones mínimas de roles de IAM necesarias para implementar los recursos de Terraform.

En azurerm_* el caso de los bloques de recursos, la extensión puede generar las asignaciones de roles de IAM mínimas necesarias para implementar los recursos.

  1. Seleccione uno o varios azurerm_* bloques de recursos en un .tf archivo.
  2. Haga clic en el icono de bombilla que aparece y seleccione la opción para generar los permisos necesarios.
  3. La extensión genera las definiciones de permisos y las abre en una nueva pestaña del editor.

Asegúrese de que está autenticado con az login antes de usar esta característica.

Paleta de comandos de Terraform

Todos los comandos estándar de Terraform están disponibles en la paleta de comandos y se ejecutan en el terminal integrado:

Comando Descripción
Microsoft Terraform: init Inicializa el directorio de trabajo de Terraform y descarga complementos de proveedor.
Microsoft Terraform: plan Crea un plan de ejecución de Terraform.
Microsoft Terraform: apply Aplica el plan de ejecución de Terraform.
Microsoft Terraform: validate Valida los archivos de configuración.
Microsoft Terraform: refresh Actualiza el archivo de estado con el estado real de los recursos.
Microsoft Terraform: destroy Destruye todos los recursos administrados por la configuración.
Microsoft Terraform: visualice Genera una visualización de grafo del módulo y la guarda como graph.png.
Microsoft Terraform: Exportar recurso de Azure en Terraform Exporta los recursos de Azure existentes como configuración de Terraform mediante aztfexport.
Microsoft Terraform: Validación preliminar Ejecuta la validación preliminar en un plan de Terraform mediante aztfpreflight.

Pasos siguientes

Lectura adicional