Creación de manuales de procedimientos de Automation - AWS Systems Manager

Creación de manuales de procedimientos de Automation

Cada manual de procedimientos en Automation, una capacidad de AWS Systems Manager, define una automatización. Los manuales de procedimientos de Automation definen las acciones que se realizan durante una automatización. En el contenido del manual de procedimientos, defina los parámetros de entrada, las salidas y las acciones que Systems Manager realiza en las instancias administradas y en los recursos de AWS.

Automation incluye varios manuales de procedimientos predefinidos que se pueden utilizar para realizar tareas comunes, como reiniciar una o más instancias de Amazon Elastic Compute Cloud (Amazon EC2), o crear una Amazon Machine Image (AMI). Sin embargo, los casos de uso pueden ir más allá de las capacidades de los manuales de procedimientos predefinidos. Si este es el caso, puede crear sus propios manuales de procedimientos y modificarlos de acuerdo con sus necesidades.

Un manual de procedimientos consta de acciones de automatización, parámetros para esas acciones y parámetros de entrada que usted especifica. El contenido de un manual de procedimientos está escrito en YAML o JSON. Si no conoce YAML ni JSON, recomendamos usar el diseñador visual o aprender más sobre cualquiera de los lenguajes de marcado antes de intentar crear su propio manual de procedimientos. Para obtener más información sobre el diseñador visual, consulte Experiencia de diseño visual para manuales de procedimientos de automatización.

Las siguientes secciones lo ayudarán a crear su primer manual de procedimientos.

Identifique su caso de uso

El primer paso para crear un manual de procedimientos es identificar su caso de uso. Por ejemplo, ha programado el manual de procedimientos AWS-CreateImage de manera que se ejecute diariamente en todas las instancias de Amazon EC2 de producción. Al final del mes, decide tener más imágenes de las necesarias para los puntos de recuperación. Desde entonces, desea eliminar automáticamente la AMI más antigua de una instancia de Amazon EC2 al crear una AMI nueva. Para ello, crea un nuevo manual de procedimientos que hace lo siguiente:

  1. Ejecuta la acción aws:createImage y especifica el ID de instancia en la descripción de la imagen.

  2. Ejecuta la acción aws:waitForAwsResourceProperty para sondear el estado de la imagen hasta que sea available.

  3. Después de que el estado de la imagen se haya establecido como available, la acción aws:executeScript ejecuta un script de Python personalizado que recopila los ID de todas las imágenes asociadas a su instancia de Amazon EC2. El script hace esto mediante el filtrado, con el ID de instancia en la descripción de la imagen que especificó en el momento de la creación. A continuación, el script ordena la lista de ID de imagen en función de la creationDate de la imagen y selecciona el ID de la AMI más antigua.

  4. Por último, la acción aws:deleteImage se ejecuta para eliminar la AMI más antigua con el ID de la salida del paso anterior.

En este escenario, ya estaba usando el manual de procedimientos AWS-CreateImage, pero descubrió que el caso de uso requería más flexibilidad. Esta es una situación común, ya que puede haber superposición entre los manuales de procedimientos y las acciones de automatización. Como resultado, es posible que tenga que ajustar qué manuales de procedimientos o acciones usa para abordar su caso de uso.

Por ejemplo, las acciones aws:executeScript y aws:invokeLambdaFunction le permiten ejecutar scripts personalizados como parte de la automatización. A la hora de elegir una, es posible que prefiera aws:invokeLambdaFunction debido a los lenguajes adicionales de tiempo de ejecución compatibles. Sin embargo, es posible que prefiera aws:executeScript porque le permite crear contenido de script directamente en los manuales de procedimientos YAML y proporcionar contenido de script como archivos adjuntos para los manuales de procedimientos JSON. También podría considerar que aws:executeScript es más simple en cuanto a la configuración de AWS Identity and Access Management (IAM). Como utiliza los permisos proporcionados en el AutomationAssumeRole, aws:executeScript no requiere un rol de ejecución de la función de AWS Lambda adicional.

En cualquier escenario, una acción puede proporcionar más flexibilidad o funcionalidad adicional que la otra. Por lo tanto, recomendamos que revise los parámetros de entrada disponibles para el manual de procedimientos o la acción que desea utilizar para determinar cuál se ajusta mejor a su caso de uso y sus preferencias.

Configure el entorno de desarrollo.

Después de identificar el caso de uso y los manuales de procedimientos predefinidos o las acciones de automatización que desea utilizar en el manual, debe configurar el entorno de desarrollo para el contenido del manual de procedimientos. Para desarrollar el contenido de su manual de procedimientos, recomendamos usar el AWS Toolkit for Visual Studio Code en lugar de la consola de documentos de Systems Manager.

El Toolkit for VS Code es una extensión de código abierto para Visual Studio Code (VS Code) que ofrece más características que la consola de documentos de Systems Manager. Entre las características útiles, se incluyen la validación de esquemas para YAML y JSON, los fragmentos para tipos de acciones de automatización y la compatibilidad con la capacidad de completar de manera automática para distintas opciones en YAML y JSON.

Para obtener más información acerca de la instalación de Toolkit for VS Code, consulte Instalación de AWS Toolkit for Visual Studio Code. Para obtener más información acerca del uso de Toolkit for VS Code para desarrollar manuales de procedimientos, consulte Uso de documentos de Automatización de Systems Manager en la Guía del usuario de AWS Toolkit for Visual Studio Code.

Desarrolle contenido para el manual de procedimientos

Con su caso de uso identificado y su entorno configurado, ya está listo para desarrollar el contenido para su manual de procedimientos. Su caso de uso y sus preferencias determinarán en gran medida las acciones de automatización o los manuales de procedimientos que utilice en el contenido de su manual. Algunas acciones admiten solo un subconjunto de parámetros de entrada si se comparan con otra acción que le permite llevar a cabo una tarea similar. Otras acciones tienen salidas específicas, como aws:createImage, donde algunas acciones le permiten definir sus propias salidas, tales como aws:executeAwsApi.

Si no está seguro de cómo se usa una acción concreta en el manual de procedimientos, le recomendamos que revise la entrada correspondiente a la acción en la Referencia de acciones de Automatización de Systems Manager. También recomendamos que revise el contenido de manuales de procedimientos predefinidos para ver ejemplos reales de cómo se utilizan estas acciones. Para obtener más ejemplos de la aplicación real de los manuales de procedimientos, consulte Ejemplos adicionales de manuales de procedimientos.

Con el fin de demostrar las diferencias en materia de simplicidad y flexibilidad que proporciona el contenido del manual de procedimientos, los siguientes tutoriales brindan un ejemplo de cómo aplicar revisiones a grupos de instancias de Amazon EC2 por etapas: