Servidor de lenguaje AWS CloudFormation
El servidor de lenguaje AWS CloudFormation ofrece capacidades para acelerar la creación de infraestructura como código (IaC) y la implementación de recursos de AWS de forma segura y confiable. Sigue el protocolo de servidor de lenguaje
Temas
Los IDE se integran con el servidor de lenguaje AWS CloudFormation
La extensión del kit de herramientas de AWS integra el servidor de lenguaje de CloudFormation para mejorar la experiencia de creación. Actualmente, esta integración es compatible con los IDE basados en VS Code, que incluyen:
Introducción
Temas
Requisitos previos
Antes de comenzar, asegúrese de que:
-
Está utilizando un IDE basado en VS Code en un sistema operativo compatible (macOS, Windows o Linux).
-
Ha instalado o actualizado a la última versión del kit de herramientas de AWS
para su IDE.
Algunas características del servidor de lenguaje AWS CloudFormation requieren una Cuenta de AWS activa y credenciales configuradas. Debe iniciar sesión en su Cuenta de AWS a través del kit de herramientas de AWS con credenciales válidas.
Paso 1: Instalar o actualizar el kit de herramientas de AWS
-
Abra el administrador de extensiones o complementos de su IDE.
-
Busque el kit de herramientas de AWS.
-
Instale o actualice a la versión 3.85.0 o posterior del kit de herramientas de AWS de su IDE.
-
Reinicie el IDE tras la instalación.
Nota: Tras la instalación, el kit de herramientas de AWS habilita automáticamente la compatibilidad con el IDE de CloudFormation. La primera vez que instale o actualice el kit de herramientas de AWS con la extensión de servidor de lenguaje AWS CloudFormation, se le solicitará que conceda permiso a AWS para recopilar datos de uso anónimos. Estos datos ayudan a que AWS mejore el servidor de lenguaje de CloudFormation y mejoran la experiencia de creación. No se recopila información confidencial y AWS no registra ni almacena el contenido de las plantillas, las configuraciones de los recursos ni ningún dato identificable del cliente. Puede cambiar las preferencias de telemetría en cualquier momento desde la configuración del IDE. Los datos de uso recopilados se centran únicamente en las interacciones de las características y las métricas de rendimiento. Esta información ayuda a AWS a identificar y priorizar mejoras, como una validación más rápida, un mejor autocompletado y un mejor diagnóstico de errores.
Paso 2: Acceder a CloudFormation en el panel del kit de herramientas de AWS
En su IDE, abra el panel del kit de herramientas de AWS desde la barra de actividades. En el kit de herramientas de AWS, seleccione CLOUDFORMATION.
Secciones del panel:
-
Región: muestra la Región de AWS actual. Para cambiarlo, seleccione el nombre de la región o utilice el comando AWS CloudFormation: seleccionar región de la paleta de comandos.
-
Entorno: indica el entorno que seleccionó durante CFN init (por ejemplo, desarrollo, pruebas o producción). Este valor aparece solo después de completar el paso de selección del entorno.
-
Pilas: muestra una lista paginada de las pilas de CloudFormation de su cuenta.
-
Haga clic en el icono de actualización para actualizar la lista de pilas.
-
Use el icono + para implementar una nueva plantilla como pila.
-
Cada entrada de la pila incluye:
-
Descripción general: muestra el resumen y el estado de la pila
-
ID de pila de
-
Descripción
-
Hora de creación y hora de actualización
-
Estado y motivo del estado
-
Eventos, salidas y recursos
-
-
Conjunto de cambios
-
-
Recursos: después de seleccionar un tipo de recurso, el panel muestra los recursos de AWS de ese tipo en su cuenta. Puede verlos, actualizarlos, copiarlos o importarlos a su plantilla.
Paso 3: Validar, probar y refinar la plantilla
A medida que redacta la plantilla de CloudFormation, el IDE proporciona asistencia de creación inteligente para ayudarle a crear una infraestructura precisa y compatible con mayor rapidez. El servidor de lenguaje de CloudFormation se ejecuta en segundo plano y proporciona las siguientes características de creación:
-
Finalización de código: sugiere tipos de recursos, parámetros y propiedades en función de los esquemas de CloudFormation.
-
Añadir recursos de AWS existentes: le permite importar los recursos existentes de su Cuenta de AWS a su plantilla. El IDE usa el API de control de nube de AWS (CCAPI) para recuperar la configuración activa y las propiedades del recurso, lo que le ayuda a clonar o reutilizar la infraestructura existente en su plantilla.
Adición de recursos a una plantilla
-
Expanda el panel de recursos de CloudFormation: en el panel lateral del kit de herramientas de AWS, expanda CloudFormation y, en Recursos, haga clic en el icono Añadir +.
-
Busque un tipo de recurso: para buscar un tipo de recurso de AWS específico, en la barra de búsqueda escriba el tipo de recurso de AWS específico que desee añadir. Ejemplo:
-
AWS::S3::Bucket -
AWS::Lambda::Function
Puede seleccionar el tipo de recurso mediante AWS CloudFormation: añadir tipos de recursos en la paleta de comandos.
-
-
Añadir recursos a la plantilla: en el panel Recursos, se muestra una lista paginada de los recursos de AWS detectados en su cuenta. Si tiene muchos recursos, solo se muestra la primera página. Use los controles de navegación de la parte inferior del panel para desplazarse por páginas adicionales y ver todos los recursos disponibles.
-
Elija el recurso que desea incluir en la plantilla.
-
Puede insertar un recurso en la plantilla en dos formas, en función de su objetivo:
-
Clonar un recurso existente: para crear un recurso nuevo en su plantilla, utilice la configuración activa y las propiedades de un recurso de AWS existente.
-
Importar un recurso existente: para insertar el recurso real en su pila, añádalo a su plantilla utilizando su estado activo.
-
Consejos
-
Puede actualizar el panel de Recursos en cualquier momento para ver la lista más reciente de recursos disponibles en su cuenta o región.
-
Si va a importar recursos, no añada un recurso que ya pertenezca a una pila de CloudFormation existente en la misma cuenta.
-
Para confirmar si CloudFormation ya administra un recurso, haga clic en el icono i (información) situado junto al nombre del recurso.
-
Como alternativa, puede usar el comando AWS CloudFormation: obtener información de administración de la pila para comprobar si un recurso pertenece a una pila.
Adición de recursos relacionados
Puede añadir recursos relacionados al recurso seleccionado mediante el comando AWS CloudFormation: añadir recursos relacionados por tipo. Una vez que haya seleccionado un tipo de recurso entre los que ya están definidos en la plantilla, el IDE muestra una lista de los recursos que normalmente están asociados a ese tipo o que dependen de él. Por ejemplo, si selecciona AWS::EC2::Instance, el IDE puede sugerirle que añada recursos relacionados, como AWS::EC2::SecurityGroup o AWS::EC2::Subnet. Esta característica le ayuda a crear rápidamente componentes de infraestructura conectados sin tener que buscar manualmente los tipos de recursos compatibles.
Validación estática
El IDE de CloudFormation proporciona una validación estática integrada con la tecnología de AWS CloudFormation Linter (cfn-lint)
Descripción general de la validación estática
Verá dos tipos de validaciones estáticas en tiempo real en el IDE:
-
CloudFormation Linter (
cfn-lint): valida la plantilla según las especificaciones de recursos y las reglas del esquema de CloudFormation. -
Guard (
cfn-guard): valida la plantilla según las normas de cumplimiento y los paquetes de políticas organizacionales.
CloudFormation Linter (cfn-lint)
CloudFormation Linter está integrado en el IDE para comprobar automáticamente la sintaxis y la estructura de la plantilla a medida que escribe.
-
Validación de esquemas: detecta errores de sintaxis y esquema para garantizar que las plantillas se ajusten al esquema de recursos de CloudFormation.
-
Resaltado de error: muestra líneas onduladas rojas o amarillas debajo de los problemas, que representan advertencias o bloqueos de implementación.
-
Pase el cursor sobre la ayuda: al pasar el cursor por encima de un error, el IDE muestra el mensaje de diagnóstico asociado a ese problema. Si hay una solución rápida disponible, también aparecerá en el panel al pasar el cursor.
Integración de CI/CD
Guard valida sus plantillas comparándolas con los conjuntos de reglas que definen las políticas de cumplimiento y seguridad. El IDE ejecuta las validaciones de Guard en tiempo real a través del servidor de lenguaje de CloudFormation, lo que le proporciona comentarios inmediatos mientras crea plantillas.
-
Paquetes de reglas predeterminados: el IDE incluye un conjunto de reglas de Guard previamente registradas que se centran en las prácticas recomendadas fundamentales para la seguridad de los recursos y la higiene de la configuración. Para obtener más información, consulte el registro de reglas de Guard
. -
Añadir paquetes de reglas: para añadir o modificar conjuntos de reglas, abra Configuración, Guard y seleccione o carga paquetes de reglas de Guard adicionales.
Consejos: entender los indicadores de líneas onduladas.
-
Garabatos azules: sugerencias de prácticas recomendadas o recomendaciones de optimización.
-
Garabatos amarillos: advertencias sobre problemas no relacionados con el bloqueo (por ejemplo, falta de etiquetas o parámetros).
-
Garabatos rojos: bloquean la implementación, como nombres de propiedades no válidos, campos obligatorios que faltan o discordancias en los esquemas.
Paso 4: Navegar por la plantilla
Al hacer clic en un archivo de plantilla en el Explorador, el panel Esquema muestra automáticamente una vista jerárquica y estructurada de la plantilla de CloudFormation. Organiza la plantilla en secciones como Parameters, Resources, Outputs y Mappings, y muestra cada tipo de recurso e ID lógico. Esto facilita la búsqueda rápida de recursos o parámetros específicos dentro de plantillas grandes y la navegación a ellos.
Puede utilizar Ir a la definición para funciones intrínsecas, como GetAtt y Ref, que le permite ir directamente al recurso o parámetro al que se hace referencia en la plantilla. Esto le ayuda a rastrear las dependencias, comprender las relaciones entre los recursos y realizar modificaciones de manera más eficiente.
Paso 5: Validar e implementar
Cuando esté listo para implementar la plantilla de CloudFormation, abra la paleta de comandos y ejecute AWS CloudFormation: validar e implementar. El comando valida la plantilla y, si no se encuentra ningún error de bloqueo, pasa a la fase de implementación. Antes de confirmarlo, el IDE muestra un resumen del conjunto de cambios con reconocimiento de desviación y una vista de diferencias para que pueda revisar todos los cambios propuestos.
Cómo funciona la validación
El IDE realiza automáticamente una comprobación de validación antes de la implementación y valida la plantilla en función de las causas de error más comunes, entre las que se incluyen las siguientes:
-
Discordancias entre esquemas o sintaxis de propiedades no válidas: estos problemas suele detectarlos
cfn-lintdurante la creación, pero si un usuario continúa con la implementación sin solucionarlos, la validación de CloudFormation en el momento de la implementación mostrará los mismos errores antes de que se cree o actualice la pila. -
El nombre del recurso entra en conflicto con los recursos existentes en su cuenta.
-
Restricciones específicas del servicio, como conflictos en el nombre del bucket de S3 o falta de cifrado.
Si la validación detecta errores, el IDE resalta los problemas directamente en la plantilla mediante líneas onduladas rojas o amarillas y enumera los errores en el panel PROBLEMAS. Cada problema incluye la propiedad o el recurso específico que causó el error, junto con una sugerencia de solución. Si no hay errores de bloqueo, puede pasar a la fase de implementación.
Si se encuentran advertencias (problemas no relacionados con el bloqueo), aparece un cuadro de diálogo que le permite continuar con la implementación o cancelar y realizar las correcciones necesarias.
El IDE abre un conjunto de cambios con reconocimiento de desviación en el que se muestran las diferencias entre la plantilla actual y la configuración de la pila implementada. Esto le permite revisar, confirmar o cancelar el conjunto de cambios antes de su ejecución.
Nota: Los conjuntos de cambios con reconocimiento de desviación mejoran el proceso de implementación de CloudFormation al permitirle gestionar la desviación de la pila de forma segura. La desviación de la pila se produce cuando el estado real de los recursos difiere del definido en la plantilla de CloudFormation, a menudo debido a cambios manuales realizados mediante la Consola de administración de AWS, la CLI o el SDK. El conjunto de cambios con reconocimiento de desviación de CloudFormation compara la configuración de la pila procesada con el estado actual de los recursos, y el IDE muestra estas diferencias para que pueda hacer que los recursos vuelvan a cumplir con las normas antes de la implementación.
Visualización de eventos de pilas
Cuando comience la implementación, puede ir a la pestaña CloudFormation del panel para supervisar el progreso en tiempo real. En Eventos de la pila, verá una lista de las operaciones realizadas durante la implementación. Cada evento incluye detalles como:
-
Marca temporal: la hora en que ocurrió el evento.
-
Recurso: el recurso de AWS específico que se crea, actualiza o elimina
-
Estado: el estado actual de la operación (por ejemplo,
CREATE_IN_PROGRESS,UPDATE_COMPLETEoROLLBACK_IN_PROGRESS) -
Motivo: mensajes de contexto o de error adicionales, si corresponde
También puede ver los recursos y las salidas de la pila desde este panel. Si quiere abrir la pila en Consola de administración de AWS, utilice el icono de enlace externo situado junto al nombre de la pila. La vista Eventos de la pila le ayuda a realizar un seguimiento del progreso de la implementación, identificar posibles problemas y confirmar si la pila se ha completado correctamente.
Inicialización de un proyecto de CloudFormation en el IDE
La inicialización de un proyecto de CloudFormation en el IDE le ayuda a configurar un espacio de trabajo estructurado con las carpetas, la configuración del entorno y las credenciales de AWS correctas para que pueda validar e implementar sus plantillas de forma fiable. Puede inicializar un nuevo proyecto de CloudFormation directamente desde el IDE para crear la configuración recomendada.
Para inicializar un proyecto de CloudFormation:
-
Abra la paleta de comandos
-
Desde su IDE, abra la paleta de comandos (
Ctrl+Shift+PoCmd+Shift+Pen macOS). -
Elija AWS CloudFormation: CFN Init: inicializar proyecto.
-
-
Elija un directorio de proyectos
-
El IDE utiliza su directorio de trabajo actual de forma predeterminada.
-
Puede cambiar esta ruta a cualquier carpeta en la que desea almacenar las plantillas de CloudFormation.
-
-
Seleccione su perfil de credenciales de AWS
-
Se le pedirá que elija un perfil de credenciales de AWS. El perfil seleccionado se utilizará para la detección, las validaciones y las implementaciones del entorno.
-
-
Configure el entorno
-
Se le pedirá que cree o seleccione un entorno.
-
Los entornos definen dónde y cómo se implementarán o validarán las plantillas (por ejemplo, desarrollo, versión beta o producción). Puede usar AWS CloudFormation: CFN Init: añadir entorno para seleccionar o cambiar su entorno.
-
Puede usar AWS CloudFormation: CFN Init: eliminar entorno para eliminar el entorno que ha seleccionado.
-
-
(Opcional) Importe archivos de parámetros
-
Si ya tiene archivos de parámetros existentes, el IDE le permite importarlos durante la inicialización.
-
El IDE detecta automáticamente los archivos compatibles y los vincula a su proyecto para utilizarlos en la validación y la implementación de la plantilla.
-
-
Asigne un nombre al proyecto y finalícelo
-
Proporcione un nombre de proyecto, como un entorno beta, y complete la configuración.
-
El IDE crea automáticamente la estructura inicial del proyecto y el archivo de configuración.
-
Puede ejecutar validaciones, previsualizar las implementaciones o cambiar de un entorno a otro directamente desde el IDE.
Código abierto
El servidor de lenguaje de AWS CloudFormation es de código abierto bajo la licencia de Apache-2.0, lo que brinda a los clientes total transparencia sobre cómo se realizan el diagnóstico de las plantillas, la validación de esquemas y el análisis estático. Esto reduce los problemas de seguridad y cumplimiento para los clientes que requieren visibilidad a nivel de origen antes de adoptar las herramientas.
La base de código está disponible públicamente en GitHub: https://github.com/aws-cloudformation/cloudformation-languageserver/
¿Necesita ayuda?
Pruebe la comunidad de CloudFormation