View a markdown version of this page

Personalizada - AWS Transformar

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Personalizada

¿Qué es? AWS ¿Transformar de forma personalizada?

AWS Transform custom utiliza la IA de los agentes para modernizar a gran escala el software, el código, las bibliotecas y los marcos a fin de reducir la deuda técnica. Gestiona diversos escenarios, como las actualizaciones de las versiones lingüísticas, las migraciones de API y servicios, las actualizaciones y migraciones de los marcos, la refactorización del código y las transformaciones específicas de la organización.

Gracias al aprendizaje continuo, el agente mejora a partir de cada ejecución y de los comentarios de los desarrolladores, y ofrece transformaciones repetibles y de alta calidad sin necesidad de conocimientos especializados en automatización.

Capacidades clave

AWS Transform custom ofrece las siguientes funciones:

  • Definición de transformación basada en el lenguaje natural: cree transformaciones personalizadas utilizando el lenguaje natural, la documentación y los ejemplos de código

  • Ejecución de transformaciones: aplique transformaciones de forma coherente y fiable en varias bases de código

  • Aprendizaje continuo: mejore automáticamente la calidad de la transformación en cada ejecución

  • AWS-transformaciones gestionadas: utilice transformaciones revisadas y listas para usar en escenarios AWS comunes

Patrones de transformación

AWS Transform custom admite diversos patrones de transformación para abordar sus necesidades de modernización. Cada patrón tiene características de complejidad diferentes según el alcance y la naturaleza de los cambios necesarios.

Patrón Description (Descripción) Complejidad Ejemplos
Migraciones de API y servicios Migración entre versiones de API o servicios equivalentes manteniendo la funcionalidad Medio AWS SDK v1→v2 (Java, Python JavaScript), Boto2→Boto3, JUnit 4→5, javax→Yakarta
Actualizaciones de la versión del idioma Actualización a versiones más recientes del mismo lenguaje de programación, adopción de nuevas funciones y sustitución de funciones obsoletas Low-Medium Java 8→17, Python 3.9→3.13, 12→22, actualizaciones de versiones Node.js TypeScript
Actualizaciones del marco Actualización a versiones más recientes del mismo marco, abordando los cambios más importantes Medio Spring Boot 2.x→3.x, React 17→18, actualizaciones de Angular, actualizaciones de Django
Migraciones de marcos Migración a marcos completamente diferentes que cumplen propósitos similares Alto Angular → React, Redux → Zustand, → React Vue.js
Actualizaciones de bibliotecas y dependencias Actualización de bibliotecas de terceros a versiones más recientes manteniendo el mismo lenguaje y marco Low-Medium Pandas 1.x→2.x, NumPy actualizaciones, actualizaciones de bibliotecas, Hadoop/HBase/Hive actualizaciones de Lodash
Refactorización de código y modernización de patrones Modernizar los patrones de código y adoptar las mejores prácticas sin cambiar la funcionalidad externa Low-Medium Imprimir → Marcos de registro, concatenación de cadenas → cadenas f, adopción de sugerencias de tipos, instrumentación de observabilidad
File-by-File Guión y traducciones Traducir scripts o archivos de configuración independientes, en los que la mayoría de los archivos son independientes Low-Medium AWS CDK→Terraform, Terraform→, Excel→Cuadernos Python, CloudFormation Bash→ PowerShell
Migraciones de arquitectura Migración entre arquitecturas de hardware o entornos de ejecución con cambios de código mínimos Medium-High x86 →AWS Graviton (ARM), local → Lambda, servidor tradicional → contenedores
Language-to-Language Migraciones Traducir bases de código de un lenguaje de programación a otro Muy alto Java→Python, JavaScript →, C→Rust, TypeScript Python→Go
Organization-Specific Personalización y transformaciones Requisitos organizativos únicos y necesidades de modernización especializadas Varía Migraciones de bibliotecas internas personalizadas, estándares de codificación específicos de la organización, migraciones de marcos patentados
nota

Para los COBOL/mainframe idiomas, utilice AWS Transform for Mainframe. Para las actualizaciones de.NET Framework a .NET Core, considere AWS Transform para Windows. Para migraciones a VMware AWS, considere AWS Transform for VMware.

Cómo AWS Transforme obras personalizadas

AWS Transform custom se suele utilizar en proyectos a gran escala en los que se transforman varias bases de código o módulos. Los equipos suelen seguir un flujo de trabajo de cuatro fases:

Defina la transformación: proporcione instrucciones en lenguaje natural, documentación y ejemplos de código al agente, lo que generará una definición inicial de la transformación. Esta definición se puede refinar de forma iterativa mediante el chat o mediante ediciones directas. Esta fase se puede omitir cuando se utilizan AWS transformaciones gestionadas.

Realice una prueba piloto o Proof-of-Concept pruebe la transformación en bases de código de muestra y fíjela en función de los resultados. Esta fase de validación ayuda a estimar el coste y el esfuerzo de la transformación completa. El aprendizaje continuo mejora la calidad durante esta fase.

Ejecución escalada: configure la ejecución masiva automatizada mediante la CLI, con los desarrolladores revisando y validando los resultados. Supervise el progreso mediante la aplicación web y realice un seguimiento de las transformaciones en varios repositorios.

Supervise y revise: el aprendizaje continuo mejora automáticamente la calidad de la transformación. Revisa las lecciones extraídas de series anteriores para asegurarte de que cumplen con los estándares de calidad y archiva las que no sean útiles.

Comprensión de conceptos clave de

En esta sección se explican los conceptos clave para trabajar con AWS Transform custom.

Definiciones de transformación

Una definición de transformación contiene las instrucciones y los conocimientos necesarios para realizar una transformación de código específica. Se representa como una habilidad y consiste en:

  • SKILL.md(obligatorio): instrucciones en Markdown con material (namey description campos) de YAML que contienen la lógica de transformación básica y las instrucciones de ejecución

  • references/carpeta (opcional): la documentación se carga según sea necesario durante la ejecución de la transformación

  • scripts/carpeta (opcional): scripts que la transformación descarga y ejecuta durante la ejecución

AWS Transform CLI descarga automáticamente las definiciones de transformación en el directorio actual cuando es necesario para su ejecución, inspección o modificación.

importante

Al publicar una transformación, el directorio debe contener solo SKILL.md y de forma opcional la references/ carpeta, la scripts/ carpeta o ambas. No se permiten otros archivos o subdirectorios.

nota

La versión 2.0 y posteriores de CLI utilizan el formato skills. La CLI gestiona automáticamente las definiciones de transformación existentes.

Categorías de definición de transformaciones

Una definición de transformación puede tener una categoría que indique cómo se usa:

  • analysis— Lee el código e informa de los resultados. La modernización continua ejecuta estas definiciones de transformación como un análisis personalizado.

  • remediation— Cambia el código. La modernización continua utiliza estas definiciones de transformación para corregir los hallazgos.

Defina la categoría con la --category opción de atx custom def publish oatx custom def save-draft:

atx custom def publish -n <transformation-name> --description "Description" --sd <directory> --category analysis atx custom def publish -n <transformation-name> --description "Description" --sd <directory> --category remediation atx custom def list # The Category column shows each transformation definition's category

AWS Transform usa la categoría para decidir dónde se puede usar una definición de transformación.

Uso Definiciones de transformación permitidas
Análisis personalizado (--type custom) Sus propias definiciones de transformación con la analysis categoría
Remediación con --transformation-name Sus propias definiciones de transformación con la remediation categoría, o transformaciones AWS gestionadas

Antes de enviar un análisis, un programa o una corrección personalizados, AWS Transform comprueba la categoría de la definición de transformación.

Para cambiar la categoría de una definición de transformación, vuelva a publicarla con un --category valor diferente. Si publica una nueva versión sin ella--category, la nueva versión mantiene la categoría de la versión anterior.

Para saber cómo ejecutar una definición de analysis transformación, consulteAnálisis personalizado.

nota

Una categoría es diferente de una etiqueta de recurso. Para administrar las etiquetas de recursos, consulteEtiquete los comandos.

Escriba una definición de transformación para su análisis

Para obtener resultados útiles, escriba la definición de transformación de forma que describa qué buscar, cómo clasificar cada problema y qué no hacer. Recomendamos las siguientes secciones enSKILL.md.

Sección Qué incluir
Introducción Una o dos oraciones que indiquen los resultados del análisis. Indique que es de solo lectura y que no debe modificar ningún archivo.
Criterios de entrada Cuando se aplica el análisis, por ejemplo, «El repositorio contiene un build.gradle archivo pom.xml o».
Alcance Los archivos y directorios que se deben inspeccionar y los que se deben omitir, como los archivos de salida de la compilación y las dependencias distribuidas por los proveedores.
¿Qué informar Los patrones o condiciones específicos que se consideran un problema. Solicita una búsqueda por número, con la ruta del archivo y el número de línea.
Categorías Un conjunto pequeño y fijo de valores de categoría y qué números pertenecen a cada categoría.
Criterios de gravedad Qué es lo que constituye un problema highmedium, olow.
Criterios de salida Cómo sabe el agente que se ha hecho: se inspeccionaron todos los archivos incluidos en el alcance, cada hallazgo tiene un archivo, una categoría y un nivel de gravedad, y no se ha modificado ningún archivo. Indique también qué debe informar cuando no se encuentre nada.

En el siguiente ejemplo, se buscan proyectos de Java que siguen apuntando a una versión de Java anterior a la 17.

--- name: java-version-detector description: Report where a repository still targets a Java version earlier than 17, in build files, Dockerfiles, toolchain files, and CI workflows. Analysis only - no code is modified. --- # Java Version Detector Find where the repository targets a Java version earlier than Java 17. This is a read-only analysis: report findings, and do not modify any files. ## Entry Criteria The repository contains a Java build file (`pom.xml`, `build.gradle`, `build.gradle.kts`, or `gradle.properties`), or a file that selects a JDK (`.java-version`, `.tool-versions`, `.sdkmanrc`, a `Dockerfile`, or a file under `.github/workflows/`). ## Scope - Inspect build files, toolchain files, Dockerfiles, and CI workflow files. - Skip build output (`build/`, `target/`) and vendored dependencies. ## What to Report Report one finding for each place that selects a Java version earlier than 17: 1. A compile target, such as `maven.compiler.source`, `maven.compiler.release`, `java.version`, `sourceCompatibility`, or a Gradle toolchain `languageVersion`. 2. A Dockerfile base image that ships a JDK or JRE earlier than 17, such as `openjdk:8` or `amazoncorretto:11`. 3. A CI job or toolchain file that selects a JDK earlier than 17. For each finding, include the file path, the line number, and the version you found. ## Categories - `outdated-compile-target` - a build file compiles for an old Java version - `outdated-runtime-image` - a Dockerfile uses an old JDK or JRE image - `outdated-ci-jdk` - a CI workflow or toolchain file selects an old JDK ## Severity Criteria - **high** - the project compiles for Java 8 or earlier - **medium** - the project compiles for Java 9 through 16 - **low** - only the runtime image or CI uses an old JDK, and the compile target is 17 or later ## Exit Criteria 1. Every in-scope file has been inspected. 2. Every finding has a file path, line number, category, and severity from the lists above. 3. No file in the repository has been modified. 4. If nothing is found, state that the repository targets Java 17 or later.

Cuando esta definición de transformación se ejecuta en un proyecto cuyos pom.xml conjuntos<source>1.8</source>, produce un hallazgo de high gravedad en la outdated-compile-target categoría, con AWS/java-version-upgrade la corrección.

Consejos para escribir definiciones de transformación y análisis

  • Manténgalo en modo de solo lectura. Indique explícitamente que el análisis no debe modificar los archivos. Solucionar problemas es el trabajo de una solución.

  • Sea específico acerca de lo que se considera un problema. Asigne un nombre a los archivos, las configuraciones y los patrones que desee buscar. Las instrucciones vagas producen resultados inconsistentes.

  • Solicita un resultado por problema. Cada hallazgo debe apuntar a un archivo y una línea específicos para poder revisarlos y corregirlos de forma individual.

  • Defina la gravedad y las categorías en la definición de transformación. El agente utiliza sus criterios para clasificar cada hallazgo.

  • Mantenga el alcance centrado. Un análisis personalizado informa solo de lo que describe su definición de transformación. Para encontrar muchos tipos de problemas, escriba definiciones de transformación independientes o utilice los tipos de análisis integrados.

  • Diga qué hacer cuando no encuentre nada. Un repositorio que no tiene problemas correctamente no produce ningún resultado.

  • Incluya las instrucciones de búsqueda en la definición de transformación. Si aprueba la configuración al ejecutar el análisis -g o --configuration al ejecutarlo, AWS Transform utilizará su configuración en lugar de las instrucciones predeterminadas. Si se mantiene la sección «Qué informar», la definición de transformación produce resultados en SKILL.md ambos sentidos.

Pruebe la definición de transformación en un repositorio que sepa que contiene el problema antes de publicarla. Guárdala como borrador o ejecútala localmente con atx ct analysis run (consulteAnálisis personalizado). atx custom def save-draft

Registro de transformaciones

El registro de transformaciones es el repositorio centralizado de su AWS cuenta para almacenar y gestionar las definiciones de transformación. Las transformaciones en el registro pueden ser:

  • Se enumeran usando atx custom def list

  • Se ejecuta en múltiples bases de código

  • Compartido con otros usuarios de tu cuenta AWS

  • Version-controlled

importante

Las definiciones de transformación son específicas de cada cuenta. Si desea utilizar una transformación en una AWS cuenta diferente, debe publicarla por separado en esa cuenta.

Transformaciones preliminares frente a transformaciones publicadas

AWS Transform custom admite dos estados para las transformaciones del registro:

Los borradores de las transformaciones son definiciones de transformación en curso o no probadas. Se guardan como versiones específicas y los usuarios que utilizan esa versión específica pueden recuperarlas, actualizarlas y ejecutarlas. Los borradores son útiles para el desarrollo, las pruebas y el perfeccionamiento iterativos antes de que la transformación esté lista para compartirse con tu equipo. Los borradores también se asocian a conversaciones específicas. Si reinicia la CLI, puede atx --conversation-id {id} utilizarla para restaurar una anterior.

Las transformaciones publicadas están disponibles en el registro de transformaciones de su cuenta para que las ejecuten otros usuarios con los permisos de IAM necesarios. Las transformaciones publicadas se pueden descubrir utilizandoatx custom def list.

El flujo de trabajo típico es:

  1. Cree la transformación a nivel local

  2. Guardar como borrador para probarlo (atx custom def save-draft)

  3. Refina y valida

  4. Publica para compartirlo con tu equipo (atx custom def publish)

También puedes publicar una transformación directamente sin guardarla como borrador.

Referencias frente a lecciones

AWS Transform custom utiliza dos tipos de conocimiento para mejorar la calidad de la transformación:

Las referencias son documentación proporcionada por el usuario que se almacena en la references/ carpeta de una definición de transformación. Las referencias solo admiten archivos de texto (máximo 10 MB en total para todos los archivos) y, por lo general, contienen documentación, especificaciones de API, guías de migración y ejemplos de código. Las referencias se cargan según sea necesario durante la ejecución de la transformación. Las referencias se añaden al crear o actualizar una definición de transformación en modo interactivo.

Las lecciones se extraen automáticamente de las ejecuciones anteriores de una transformación. El sistema de aprendizaje continuo las genera a partir de las trayectorias de ejecución, los comentarios de los desarrolladores y las correcciones de código que encuentra durante las transformaciones. Agrupa las lecciones relacionadas en categorías para que puedan repasarlas juntas. A diferencia de las referencias, que se proporcionan por adelantado, las lecciones se acumulan con el tiempo a medida que se ejecuta la transformación en diferentes bases de código, y el sistema las aplica automáticamente para mejorar las ejecuciones futuras. Con ellas revisas y gestionas las lecciones de forma interactiva. atx custom def learnings

Comandos de compilación y validación

El comando de compilación o validación es un parámetro opcional que especifica cómo validar el código durante el proceso de transformación. Este comando se ejecuta en varios puntos de la transformación para garantizar la integridad del código.

Para mejorar la calidad de la transformación mediante el aprendizaje continuo, es muy importante proporcionar un comando que valide los resultados y devuelva problemas si la validación falla. Si no es necesario compilarlo ni validarlo, omítelo en la entrada.

Para ver ejemplos y una guía detallada, consulta los comandos de compilación y validación en la sección Flujos de trabajo.

Aprendizaje continuo

El aprendizaje continuo es el sistema que captura automáticamente los comentarios de cada ejecución de una transformación y mejora la calidad de la transformación con el tiempo. El sistema recopila información a través de:

  • Comentarios explícitos: los comentarios y las correcciones de código se proporcionan en el modo interactivo

  • Observaciones implícitas: problemas que encuentra el agente al transformar y depurar el código

El sistema de aprendizaje continuo procesa esta información para crear lecciones que agrega a la definición de transformación para mejorar las transformaciones futuras. El sistema ejecuta el proceso de aprendizaje automáticamente una vez finalizadas las transformaciones, sin requerir ninguna intervención adicional por tu parte.

importante

Las lecciones son específicas de cada transformación y no se comparten entre distintas transformaciones o cuentas de clientes.

Gestión de las lecciones

El sistema genera las lecciones automáticamente, pero tú tienes el control de cuáles se aplican a futuras tiradas. El atx custom def learnings comando abre una sesión terminal interactiva para revisar y seleccionar las lecciones acumuladas durante la transformación.

En esta sesión, puede:

  • Explore las lecciones agrupadas en categorías y vea cuántas lecciones activas contiene cada categoría.

  • Abre una lección para leer todos sus detalles, incluidos el cuerpo de la lección, su impacto y el número de sesiones anteriores en la que se ha consultado.

  • Archiva una lección para evitar que el sistema la aplique en futuras ejecuciones y restaúrela más tarde si es necesario.

  • Elimine permanentemente una lección archivada que ya no sea útil.

Para obtener instrucciones paso a paso, consulte Aprendizaje continuo.

Client-Side Habilidades

Client-side las habilidades son capacidades adicionales que amplían al agente durante las ejecuciones de transformación. A diferencia de las definiciones de transformación, que definen qué transformación realizar, las habilidades del lado del cliente proporcionan herramientas, scripts e instrucciones adicionales que el agente puede utilizar junto con sus capacidades integradas durante cualquier transformación.

Client-side las habilidades se descubren en los directorios a nivel de proyecto y de usuario. Sitúe las habilidades en el nivel de proyecto cuando hagan cumplir los estándares específicos de un repositorio, y en el nivel de usuario cuando se apliquen a todos sus proyectos. Project-level Las habilidades solo están disponibles cuando se proporciona una ruta al repositorio de código. Para obtener información detallada sobre la configuración y el uso, consulteClient-Side Habilidades.

Introducción a los comandos de transformación personalizados

Estos son algunos de los comandos que puede utilizar con las transformaciones personalizadas. La lista completa de comandos se encuentra en la referencia de comandos AWS Transformar transformaciones personalizadas.

  • atx custom

    • Ejecuta una experiencia interactiva de transformación personalizada, lo que permite la creación, el descubrimiento, la ejecución y el perfeccionamiento de las transformaciones.

    • Este es el comando predeterminado para. atx

    • --trust-all-tools(-t) es opcional y permite implícitamente todas las solicitudes de herramientas solicitadas por el agente. Úselo con precaución, especialmente en entornos de producción. Puede configurar la confianza en las herramientas para herramientas y comandos específicos mediante el archivo de configuración de confianza.

  • atx custom --help | atx custom -h

    • Muestra el menú de ayuda.

    • Cada comando también incluye un menú de ayuda, por ejemplo,atx custom def exec --help.

  • atx --version | atx -v

    • Muestra la versión.

    • El número de versión cambia con cada versión.

  • atx custom def list

    • Imprime la lista de transformaciones disponibles en el registro de transformaciones.

  • atx custom def exec

    • Ejecuta una transformación

  • atx custom def learnings

    • Abre una sesión interactiva para ver y gestionar las lecciones que una transformación ha aprendido de las ejecuciones anteriores

  • atx mcp

    • Se utiliza para administrar las configuraciones del servidor MCP