View a markdown version of this page

Travailler dans le cadre d'une modernisation continue - AWS Transformation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Travailler dans le cadre d'une modernisation continue

Gestion des sources

Utilisez atx ct source des commandes pour connecter des référentiels. Fournisseurs pris en charge : GitHub GitLab, Bitbucket, local.

GitHub organisations

Jeton : jeton d'accès personnel (classique) avec repo scope. Read-only pour l'analyse, dépôt complet pour la correction.

atx ct source add --name name --provider github --org org --token pat

GitLab groupes et utilisateurs

Jeton : jeton d'accès personnel avec api scope.

atx ct source add --name name --provider gitlab --org group-or-user --token pat # Self-hosted: atx ct source add --name name --provider gitlab --org group-or-user --token pat --url https://gitlab.example.com

Espaces de travail et projets Bitbucket

Bitbucket Cloud — domaines d'application :read:repository:bitbucket,,write:repository:bitbucket,read:pullrequest:bitbucket. write:pullrequest:bitbucket A également besoin --email de et--username.

atx ct source add --name name --provider bitbucket --org workspace --token api-token --email email --username username

Centre de données Bitbucket :

atx ct source add --name name --provider bitbucket --org project-key --token http-access-token --url https://bitbucket.example.com

Référentiels locaux

atx ct source add --name name --provider local --path parent-directory
Important

--pathdoit pointer vers un répertoire parent contenant des dépôts git en tant que sous-répertoires, et non vers un seul dépôt.

Gestion des sources

atx ct source list atx ct source remove --name name

Découverte et gestion du référentiel

atx ct discovery scan --source name atx ct discovery status --source name atx ct discovery scan --source name --path new-directory

Après la découverte :

atx ct repository list atx ct repository list --source name atx ct repository list --labels "team:frontend,priority:high" atx ct repository update --source name --repo "source::repo" --labels "team:frontend,priority:high" atx ct repository update --source name --labels "migration:wave-1"

Analyse en cours

Le --type drapeau indique le type d'analyse à exécuter :

  • rapid-techdebt-analysis— Dépendances obsolètes et gains faciles.

  • tech-debt-comprehensive— AI-powered Analyse approfondie portant sur les dépendances, la sécurité, les modèles, les performances, la maintenabilité, l'architecture, la qualité du code et les résultats de l'infrastructure.

  • security— Vulnérabilités et expositions en matière de sécurité.

  • agentic-readiness— Préparation de vos référentiels pour les agents d'IA (frameworks, API, documentation).

  • modernization-readiness— Des opportunités de modernisation dans tous les domaines de votre infrastructure, de vos applications, de vos données, de votre sécurité et de vos opérations.

atx ct analysis run --type type --source name [--repo source::repo] [--wait] atx ct analysis get --id id --json atx ct analysis list --json atx ct analysis list --status pending|running|complete|cancelled|failed --json atx ct analysis list --type type --json atx ct analysis cancel --id id atx ct analysis delete --id id [--cascade-findings]

Analyse personnalisée

atx ct analysis run --type custom --transformation-name name --source source --repo source::repo --wait

Configuration avec -g indicateur : clé-valeur, JSON ou chemin de fichier.

Liste des TD : atx custom def list

Gestion des résultats

atx ct findings list --json atx ct findings list --repo source::repo --source name --severity high|medium|low --type analysis-type --status open|dismissed|obsolete --analysis-id id --fix-transform transform-name --json

Trouver des statuts

  • open— Actif

  • dismissed— Rejeté manuellement (nécessite une raison)

  • obsolete— System-set lorsque la nouvelle analyse ne produit plus le résultat

atx ct findings update --id id --status dismissed --reason "reason" atx ct findings update --id id --status open atx ct findings batch-update --ids id1,id2 --status dismissed --reason "reason" atx ct findings get --id id atx ct findings delete --id id

Trouver l'obsolescence

Re-analysis marque les résultats résolus comme étant obsolètes. Ne peut pas être rouvert. Conservé à des fins d'audit.

Création de mesures correctives

Trois modes : basé sur les résultats, remplacement TD, TD direct.

atx ct remediation create --ids id1,id2 --name "name" atx ct remediation create --ids id1,id2 --transformation-name TD atx ct remediation create --transformation-name TD --repo source::repo

Sortie par fournisseur : GitHub PR, GitLab MR, Bitbucket PR, succursale locale.

Note

Le jeton doit disposer d'un accès en écriture pour être PR/MR créé.

Exécution locale avec --local drapeau.

atx ct remediation create --transformation-name TD --repo source::repo -g "additionalPlanContext=Upgrade to Node.js 22" atx ct remediation list atx ct remediation status --id id atx ct remediation retry --id id atx ct remediation cancel --id id atx ct remediation delete --id id

Exécution à distance

Par défaut, les analyses et les corrections s'exécutent sur votre machine locale. Pour les portefeuilles plus importants, vous pouvez déléguer le travail à une infrastructure distante. Vous pouvez fonctionner sur une AWS Transform-managed infrastructure sans rien à provisionner (analyses uniquement), ou sur Compte AWS une infrastructure que vous provisionnez et gérez dans votre instance Amazon EC2 persistante ou des tâches AWS Batch (Fargate). Les atx ct remote commandes approvisionnent, exécutent, surveillent et démantelent l'infrastructure gérée par le client. Quel que soit l'endroit où l'exécution a lieu, vous créez toutes les ressources dans votre ordinateur Compte AWS et votre code source reste sous votre contrôle.

Note

Le provisionnement, la mise à jour et le démantèlement de l'infrastructure créent et modifient des AWS CloudFormation piles et des rôles IAM, et nécessitent des autorisations d'administrateur. Passez --ack pour en accuser réception et ignorez l'invite interactive. L'exécution d'analyses et de corrections sur une infrastructure déjà provisionnée utilise des politiques d'exécution dotées du moindre privilège. Consultez la section Marquage et contrôle d'accès et les options de calcul pour les politiques gérées concernées. Comment ? AWS Transformez les travaux de modernisation continue

En cours d'exécution AWS Transform-managed infrastructure (pas de provisionnement)

Pour exécuter une analyse à distance sans rien provisionner, utilisez--mode aws-managed. La soumission est envoyée à AWS Transform, qui effectue l'analyse de l' AWS Transform-managed infrastructure. Il n'y a aucune pile à provisionner, aucun réseau à configurer et aucune information d'identification à stocker dans AWS Secrets Manager. La soumission est définitive. Choisissez la AWS région dans laquelle s'exécute la charge de travail--region.

# Run an analysis on AWS Transform-managed infrastructure atx ct remote analysis --type type --mode aws-managed --sources name [--repos repo1,repo2] [--region region] # Poll the submission (there is no remote status command in this mode) atx ct analysis get --id id --json

Ce mode exécute uniquement des analyses. Il ne prend pas en charge la correction, le type custom d'analyse ou les sources locales. Comme il n'y a pas de pile--stack-name, les --batch-name options --tags--existing-instance,, et ne s'appliquent pas. Une seule soumission couvre jusqu'à 100 référentiels. Pour couvrir des domaines plus larges, répartissez-les sur plusieurs soumissions avec--repos. Contrairement à Amazon EC2 et aux exécutions par lots, vous pouvez suivre la progression avec atx ct analysis get plutôt queatx ct remote status.

Mise en réseau

Le calcul à distance doit être exécuté dans des sous-réseaux privés. Découvrez le réseau existant ou créez un nouveau VPC avant de procéder au provisionnement :

# List VPCs, private subnets, and security groups in the current account and Region atx ct remote network discover atx ct remote network discover --vpc vpc-id --json # Create a new VPC with private subnets, a NAT gateway, and a security group atx ct remote network create --cidr 10.1.0.0/16 --ack

Provisionnement de l'infrastructure

Déployez la pile Amazon EC2 ou Batch. Omettez --execute de prévisualiser le modèle ou l'ensemble de modifications ; ajoutez-le --execute pour appliquer.

Le provisionnement crée la pile de calcul pour le mode que vous choisissez, ainsi qu'une pile de planificateur :

  • Batch  : une file d'attente de tâches et un environnement de calcul AWS par lots, une définition de tâche avec l'image du conteneur de modernisation continue, des rôles IAM pour l'exécution des tâches et une fonction Lambda pour la soumission des tâches. Batch nécessite un groupe de sécurité.

  • Amazon EC2  : instance Amazon EC2 persistante dotée d'un profil d'instance IAM et d'un groupe de sécurité. Si vous omettez--securityGroup, la pile crée un groupe de sécurité sans règles entrantes ; l'accès se fait via SSM.

  • Planificateur  : atx-scheduler pile (un groupe de EventBridge planification Amazon Scheduler et un rôle d'invocation) utilisée par les analyses récurrentes. Laissez-passer --skip-scheduler pour vous désinscrire.

# Preview, then deploy an EC2 stack atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b --execute --ack # Deploy a Batch stack atx ct remote provision --mode batch --vpc vpc-id --subnets subnet-a,subnet-b --securityGroup sg-id --execute --ack # Update an existing stack to the latest template, or tear it down atx ct remote update --mode ec2|batch --execute --ack atx ct remote teardown --mode ec2|batch --execute --ack

Image de conteneur

Lorsque vous exécutez des analyses et des corrections à distance, elles s'exécutent dans une image de conteneur. Par défaut, lorsque vous provisionnez un environnement distant, celui-ci utilise l'image publique AWS Transform,public.ecr.aws/d9h8z6l7/aws-transform:latest. Batch la définit comme image de définition de tâche. Amazon EC2 l'utilise comme image du coureur.

Pour exécuter une autre image (par exemple, une image Amazon ECR privée qui regroupe des langues ou des outils --image-uri supplémentaires), vous devez procéder à la mise en service :

# Batch: provision with a custom image atx ct remote provision --mode batch --vpc vpc-id --subnets subnet-a,subnet-b --securityGroup sg-id --image-uri account-id.dkr.ecr.region.amazonaws.com/repo:tag --execute --ack # EC2: provision with a custom image atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b --image-uri account-id.dkr.ecr.region.amazonaws.com/repo:tag --execute --ack

Stockage des informations d'identification source

Les conteneurs distants clonent vos référentiels à l'aide de jetons stockés dans AWS Secrets Manager. Enregistrez un jeton pour chaque source SCM avant d'exécuter une analyse ou une correction à distance :

atx ct remote credentials --source name --token token atx ct remote credentials --source name --remove

Courir à distance

L'analyse à distance exécute un conteneur pour chaque référentiel ; la correction à distance exécute un conteneur pour chaque découverte. Utilisez --sources--repos, et --labels pour contrôler le fan-out, --stack-name et/ou --tags pour sélectionner la pile provisionnée à utiliser.

# Run analysis across a source on Batch atx ct remote analysis --type type --mode batch --sources name [--repos repo1,repo2] [--labels "team:frontend"] # Run remediation for specific findings on EC2 atx ct remote remediation --mode ec2 --ids id1,id2 atx ct remote remediation --mode ec2 --sources name --min-severity high

Surveillance et gestion des courses

# Check whether infrastructure is deployed atx ct remote detect --mode ec2|batch # Track a submission (Batch by batch ID, EC2 by group ID) atx ct remote status --batch batch-id --stack-name name atx ct remote status --group ec2-group-id --wait # Resume a partially-failed Batch run (re-submits only incomplete repos). # On resume, --batch-name takes the existing batch ID reported by "remote status --batch". atx ct remote analysis --type type --mode batch --sources name --resume-incomplete --batch-name batch-id # Cancel a running submission atx ct remote cancel --mode batch --batch batch-id --stack-name name atx ct remote cancel --mode ec2 --group ec2-group-id

Planifier une analyse récurrente

Permet atx ct schedule d'exécuter des analyses automatiquement à une cadence récurrente. Vous pouvez planifier des analyses mais pas des mesures correctives. Miroir des options d'emploiatx ct remote analysis. Les horaires sont exécutés à distance, de deux manières différentes :

  • AWS Transform-managed(--mode aws-managed) : un calendrier côté serveur qui déclenche des analyses sur AWS Transform-managed l'infrastructure. Il n'y a pas de EventBridge calendrier Amazon et il n'y a rien à prévoir. Cela nécessite un rôle d'exécution (--execution-role) que AWS Transform assume à chaque exécution (voirRôle d'exécution pour AWS Transform-managed horaires).

  • Customer-managed(--mode ec2|batch) : un calendrier Amazon EventBridge Scheduler intégré à votre compte répartit chaque exécution vers une instance Amazon EC2 persistante ou une pile de AWS lots que vous provisionnez en premier (voir). Exécution à distance

La --recurrence valeur acceptedaily, weekly:DAY (par exemple,weekly:MONDAY), ou monthly:NN est un jour compris entre 1 et 28. Les horaires relatifs à AWS Transform-managed l'infrastructure sont exécutés en UTC.

# AWS Transform-managed schedule (no infrastructure; requires an execution role) atx ct schedule create --name name --mode aws-managed --execution-role role-arn --recurrence daily --type type --sources name [--repos repo1,repo2] # Customer-managed schedule (EventBridge Scheduler dispatching to your EC2 or Batch stack) atx ct schedule create --name name --mode ec2|batch --recurrence weekly:MONDAY --type type --sources name [--repos repo1,repo2] # Manage schedules of either type by their schedule ID (from schedule list) atx ct schedule list atx ct schedule get schedule-id atx ct schedule disable schedule-id atx ct schedule enable schedule-id atx ct schedule delete schedule-id

Pour afficher les analyses exécutées par un calendrier, utilisezatx ct analysis list --schedule-id schedule-id, qui renvoie les exécutions déclenchées par le calendrier, les plus récentes en premier.

Pour supprimer le rôle de planificateur et le groupe de planification utilisés par les planifications gérées par le client, exécutez. atx ct schedule teardown --execute

Rôle d'exécution pour AWS Transform-managed horaires

Un planning créé avec --mode aws-managed nécessite un --execution-role ARN que AWS Transform assume à chaque exécution du planning. Configurez le rôle comme suit :

  • L'identité qui crée le planning doit disposer d'une iam:PassRole autorisation sur le rôle d'exécution.

  • La politique de confiance du rôle doit permettre au transform-custom.amazonaws.com responsable du service de l'assumer.

  • Au minimum, le rôle doit être AWSTransformCustomFullAccess associé à la politique AWS gérée, ainsi que des secretsmanager:DescribeSecret autorisations sur secretsmanager:GetSecretValue les secrets sous le atx/* préfixe afin que les exécutions planifiées puissent récupérer les informations d'identification du clone source.

La politique en ligne suivante accorde au AWS Secrets Manager l'accès dont les exécutions planifiées ont besoin pour récupérer les informations d'identification du clone source. Attachez-le au rôle d'exécution à côté de la politique AWSTransformCustomFullAccess gérée, en account-id remplaçant region et par la AWS région et le compte dans lesquels le calendrier s'exécute.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AtxSourceCredentials", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:atx/*" } ] }

Marquage et contrôle d'accès

Vous pouvez appliquer des balises (key=valuepaires séparées par des virgules) aux sources, aux analyses et aux corrections à l'aide de cette option. --tags Les balises sont également prises en charge sur l'infrastructure distante, les informations d'identification stockées et les ressources réseau. Les balises vous permettent d'organiser les ressources. Combinées aux conditions des balises IAM, les balises implémentent le contrôle d'accès basé sur les attributs (ABAC) afin que les équipes n'accèdent qu'aux ressources qui contiennent leurs balises.

atx ct source add --name name --provider github --org org --token pat --tags team=platform,env=prod atx ct analysis run --type type --source name --tags team=platform atx ct remediation create --ids id1,id2 --tags team=platform

Par défaut, les ressources sont balisées avec les balises que vous définissez dans~/.aws/atx/settings.json. Ajoutez les balises que vous souhaitez appliquer à chaque ressource ci-dessousapplyTags, et elles deviendront vos balises par défaut.

{ "applyTags": [ { "team": "alpha" } ] }
Note

Les balises transmises --tags sont fusionnées avec toutes les balises par défaut configurées, et chaque clé est --tags gagnante aux deux endroits.

AWS Transformez les applications Web

Utilisez l'application Web AWS Transform pour créer et exécuter des analyses, examiner les résultats, créer des solutions et suivre les demandes d'extraction générées dans vos sources de code.

Avant d'utiliser l'application Web, votre organisation doit activer votre identité d'utilisateur pour accéder à AWS Transform. Pour plus d'informations sur la configuration de AWS Transform, voir Configuration de AWS Transform.

Connexion

Pour accéder à l'application Web AWS Transform, procédez comme suit.

  1. Ouvrez https://aws.amazon.com/transform/ et connectez-vous à l'aide des informations d'identification AWS IAM Identity Center.

  2. Si la modernisation continue n'apparaît pas, connectez-vous plutôt avec des informations d'identification IAM :

    1. Dans la console AWS de gestion, ouvrez AWS Transform et choisissez Paramètres.

    2. Activez Access AWS Transform à l'aide des informations d'identification IAM.

    3. Copiez l'URL de l'application Web (avec IAM) et collez-la dans la même fenêtre de navigateur que celle où la console est ouverte.

  3. Ouvrez le menu de navigation de gauche et choisissez Modernisation continue.

Modes d'infrastructure

Lorsque vous créez une analyse, choisissez l'un des modes d'infrastructure suivants :

  • AWS géré — Exécuté sur une infrastructure gérée par AWS Transform. Vous n'avez pas besoin de provisionner d'infrastructure.

  • Appartenant au client — Exécutez sur une pile déployée dans votre propre environnement Compte AWS. Utilisez ce mode lorsque vous avez besoin de contrôler le calcul, la mise en réseau ou la configuration de sécurité.

Note

Pour effectuer une analyse de sécurité, utilisez l'infrastructure appartenant au client. L'analyse de sécurité s'exécute sur l'agent de sécurité déployé sur votre compte.

Pour utiliser l'infrastructure appartenant au client, ouvrez l'onglet Paramètres. Utilisez les liens de AWS CloudFormation création rapide pour déployer les piles suivantes dans l'ordre :

  1. AtxDispatcherStack— Répartiteur de messages (toujours obligatoire).

  2. Pile de calcul : AtxInfrastructureStack (AWS Batch) ou atx-runner (Amazon EC2).

  3. atx-scheduler— Nécessaire pour les analyses programmées récurrentes.

  4. AtxSecurityAgentStack-<region>— Nécessaire uniquement pour l'analyse de sécurité.

Pour le CLI-based provisionnement et la configuration réseau, consultezExécution à distance.

Démarrage du flux de travail

  1. Connecter des sources  : ouvrez l'onglet Sources et ajoutez des référentiels depuis GitHubGitLab, ouBitbucket.

  2. Exécuter ou planifier une analyse  : ouvrez l'onglet Analyses, sélectionnez des référentiels, choisissez un type d'analyse, sélectionnez un mode d'infrastructure, puis choisissez Exécuter. Pour exécuter selon une cadence récurrente (quotidienne, hebdomadaire ou mensuelle), choisissez Planifier à la place.

  3. Examiner les résultats — Ouvrez l'onglet Résultats pour afficher les résultats par niveau de gravité.

  4. Créer une correction  : sélectionnez les résultats et choisissez Créer une correction.

  5. Passez en revue les pull requests  : ouvrez l'onglet Corrections pour afficher les liens PR générés par référentiel.

Discutez avec AWS Transform directement depuis l'application Web pour poser des questions sur vos analyses, vos résultats ou les mesures correctives.