Questa è la guida per sviluppatori AWS CDK v2. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
La funzionalità CDK Migrate è disponibile in anteprima AWS CDK ed è soggetta a modifiche. |
Utilizzate l'interfaccia a riga AWS Cloud Development Kit (AWS CDK) di comando (AWS CDK CLI) per migrare AWS le risorse distribuite, gli AWS CloudFormation stack distribuiti e i modelli locali verso. AWS CloudFormation AWS CDK
Argomenti
Come funziona la migrazione
Usa il AWS CDK CLI cdk migrate
comando per migrare dalle seguenti fonti:
-
Risorse distribuite AWS .
-
Stack distribuiti AWS CloudFormation .
-
Modelli locali AWS CloudFormation .
- Risorse distribuite AWS
-
È possibile migrare AWS le risorse distribuite da un ambiente specifico (Account AWS e Regione AWS) che non sono associate a uno stack. AWS CloudFormation
Il AWS CDK CLI utilizza il servizio di generazione IaC per ricercare le risorse presenti nell' AWS ambiente e raccogliere i dettagli delle risorse. Per ulteriori informazioni sul generatore IAc, consulta Generazione di modelli per risorse esistenti nella Guida per l'AWS CloudFormation utente.
Dopo aver raccolto i dettagli delle risorse, AWS CDK CLI crea una nuova app CDK che include un singolo stack contenente le risorse migrate.
- Stack distribuiti AWS CloudFormation
-
Puoi migrare un singolo AWS CloudFormation stack in una nuova app. AWS CDK La AWS CDK CLI recupererà il AWS CloudFormation modello del tuo stack e creerà una nuova app CDK. L'app CDK sarà composta da un unico stack che contiene lo stack migrato. AWS CloudFormation
- Modelli locali AWS CloudFormation
-
È possibile migrare da un AWS CloudFormation modello locale. I modelli locali possono contenere o meno risorse distribuite. Il AWS CDK CLI creerà una nuova app CDK che contiene un unico stack con le tue risorse.
Dopo la migrazione, puoi gestire, modificare e distribuire l'app CDK per fornire o aggiornare le tue AWS CloudFormation risorse.
Vantaggi di CDK Migrate
La migrazione delle risorse verso questa AWS CDK destinazione è stata storicamente un processo manuale che richiede tempo ed esperienza e persino per essere avviato. AWS CloudFormation AWS CDK Con CDK Migrate, AWS CDK CLI facilita la maggior parte delle attività di migrazione in una frazione del tempo. CDK Migrate ti consentirà di iniziare rapidamente a utilizzare lo strumento AWS CDK per sviluppare e gestire applicazioni nuove ed esistenti su. AWS
Considerazioni
Considerazioni generali
- CDK Migrate e CDK Import
-
Il
cdk import
comando può importare le risorse distribuite in un'app CDK nuova o esistente. Durante l'importazione, ogni risorsa dovrà essere definita manualmente come un costrutto L1 nell'app. Ti consigliamo dicdk import
utilizzarla per importare una o più risorse alla volta in un'app CDK nuova o esistente. Per ulteriori informazioni, consulta Importa le risorse esistenti in uno stack.Il
cdk migrate
comando migra dalle risorse distribuite, dagli AWS CloudFormation stack distribuiti o dai AWS CloudFormation modelli locali a una nuova app CDK. Durante la migrazione, AWS CDK CLI utilizzacdk import
per importare le risorse nella nuova app CDK. La AWS CDK CLI genera anche costrutti L1 per ogni risorsa per te. Si consiglia di utilizzarlocdk migrate
durante l'importazione da una fonte di migrazione supportata in una nuova app. AWS CDK - CDK Migrate crea solo costrutti L1
-
L'app CDK appena creata includerà solo costrutti L1. Puoi aggiungere costrutti di livello superiore all'app dopo la migrazione.
- CDK Migrate crea app CDK che contengono un singolo stack
-
L'app CDK appena creata conterrà un singolo stack.
Durante la migrazione delle risorse distribuite, tutte le risorse migrate saranno contenute in un unico stack nella nuova app CDK.
Durante la migrazione degli AWS CloudFormation stack, è possibile migrare solo un singolo stack in un unico AWS CloudFormation stack nella nuova app CDK.
- Migrazione delle risorse
-
Le risorse del progetto, come il AWS Lambda codice, non migreranno direttamente nella nuova app CDK. Dopo la migrazione, puoi specificare i valori degli asset per includerli nell'app CDK.
- Migrazione di risorse stateful
-
Quando esegui la migrazione di risorse con stato, come database e bucket Amazon Simple Storage Service (Amazon S3), molto spesso desideri migrare la risorsa esistente anziché crearne una nuova.
Per migrare e preservare le risorse con stato, procedi come segue:
-
Verifica che la risorsa stateful supporti l'importazione. Per ulteriori informazioni, consulta il supporto per i tipi di risorse nella Guida per l'AWS CloudFormation utente.
-
Dopo la migrazione, verifica che l'ID logico della risorsa migrata nella nuova app CDK corrisponda all'ID logico della risorsa distribuita.
-
Se esegui la migrazione da uno AWS CloudFormation stack, verifica che il nome dello stack nella nuova app CDK corrisponda allo stack. AWS CloudFormation
-
Implementa l'app CDK utilizzando lo stesso AWS account e la risorsa migrata. Regione AWS
-
Considerazioni sulla migrazione da un modello AWS CloudFormation
- CDK Migrate supporta la migrazione di un singolo modello
-
Durante la migrazione dei AWS CloudFormation modelli, è possibile selezionare un singolo modello da migrare. I modelli annidati non sono supportati.
- Migrazione di modelli con funzioni intrinseche
-
Durante la migrazione da un AWS CloudFormation modello che utilizza funzioni intrinseche, AWS CDK CLI tenterà di migrare la logica nell'app CDK con la classe.
Fn
Per saperne di più, consulta la classe Fn nell'API Reference.AWS Cloud Development Kit (AWS CDK)
Considerazioni sulla migrazione dalle risorse distribuite
- Limitazioni di scansione
-
Durante la scansione dell'ambiente alla ricerca di risorse, il generatore IaC presenta limitazioni specifiche sui dati che può recuperare e limiti di quota durante la scansione. Per ulteriori informazioni, consulta Considerazioni nella Guida per l'AWS CloudFormation utente.
Prerequisiti
Prima di utilizzare il cdk migrate
comando, completa tutti i passaggi di configurazione indicati inGuida introduttiva al AWS CDK.
Inizia a usare CDK Migrate
Per iniziare, esegui il AWS CDK CLI cdk migrate
comando da una directory a tua scelta. Fornisci le opzioni obbligatorie e facoltative, a seconda del tipo di migrazione che stai eseguendo.
Per un elenco completo e una descrizione delle opzioni utilizzabilicdk migrate
, consultacdk migrate.
Di seguito sono riportate alcune opzioni importanti che potresti voler fornire.
- Stack name (Nome stack)
-
L'unica opzione richiesta è
--stack-name
. Utilizzate questa opzione per specificare un nome per lo stack che verrà creato all'interno dell' AWS CDK app dopo la migrazione. Il nome dello stack verrà utilizzato anche come nome dello AWS CloudFormation stack al momento della distribuzione. - Lingua
-
Viene utilizzato
--language
per specificare il linguaggio di programmazione della nuova app CDK. - AWS account e Regione AWS
-
Il AWS CDK CLI recupera AWS account e Regione AWS informazioni da fonti predefinite. Per ulteriori informazioni, consulta Ambienti per AWS CDK. È possibile utilizzare
--account
e utilizzare--region
le opzionicdk migrate
per fornire altri valori. - Directory di output del nuovo progetto CDK
-
Per impostazione predefinita, il AWS CDK CLI creerà un nuovo progetto CDK nella directory di lavoro e utilizzerà il valore fornito
--stack-name
per denominare la cartella del progetto. Se esiste attualmente una cartella con lo stesso nome, AWS CDK CLI sovrascriverà quella cartella.È possibile specificare un percorso di output diverso per la nuova cartella di progetto CDK con l'
--output-path
opzione. - Fonte di migrazione
-
Fornisci un'opzione per specificare la fonte da cui stai migrando.
-
--from-path
— Eseguire la migrazione da un modello locale AWS CloudFormation . -
--from-scan
— Esegui la migrazione dalle risorse distribuite in un AWS account e. Regione AWS -
--from-stack
— Migrazione da uno stack. AWS CloudFormation
A seconda della fonte di migrazione, è possibile fornire opzioni aggiuntive per personalizzare il
cdk migrate
comando. -
Esegui la migrazione da uno stack AWS CloudFormation
Per migrare da uno AWS CloudFormation stack distribuito, offri l'opzione. --from-stack
Fornisci il nome dello stack distribuito AWS CloudFormation con. --stack-name
Di seguito è riportato un esempio:
$
cdk migrate --from-stack --stack-name
"myCloudFormationStack"
La AWS CDK CLI farà quanto segue:
-
Recupera il AWS CloudFormation modello dello stack distribuito.
-
Esegui
cdk init
per inizializzare una nuova app CDK. -
Crea uno stack all'interno dell'app CDK che contiene lo stack migrato. AWS CloudFormation
Quando esegui la migrazione da uno stack distribuito, AWS CloudFormation AWS CDK CLI tenta di abbinare la logica della risorsa distribuita IDs e il nome dello AWS CloudFormation stack distribuito alle risorse e allo stack migrati nella nuova app CDK.
Dopo la migrazione, puoi gestire e modificare normalmente l'app CDK. Al momento della distribuzione, AWS CloudFormation identificherà la distribuzione come un aggiornamento AWS CloudFormation dello stack a causa del nome dello stack corrispondente AWS CloudFormation . Le risorse con logica corrispondente IDs verranno aggiornate. Per ulteriori informazioni sulla distribuzione, vedereGestisci e distribuisci la tua app CDK.
Esegui la migrazione da un modello AWS CloudFormation
CDK Migrate supporta la migrazione da AWS CloudFormation modelli formattati in o. JSON
YAML
Per migrare da un AWS CloudFormation modello locale, utilizzate l'--from-path
opzione e fornite un percorso al modello locale. È inoltre necessario fornire l'--stack-name
opzione richiesta. Di seguito è riportato un esempio:
$
cdk migrate --from-path
"./template.json"
--stack-name"myCloudFormationStack"
La AWS CDK CLI farà quanto segue:
-
Recupera il tuo AWS CloudFormation modello locale.
-
Esegui
cdk init
per inizializzare una nuova app CDK. -
Crea uno stack all'interno dell'app CDK che contenga il modello migrato. AWS CloudFormation
Dopo la migrazione, puoi gestire e modificare normalmente l'app CDK. Al momento della distribuzione, sono disponibili le seguenti opzioni:
-
Aggiorna uno AWS CloudFormation stack: se il AWS CloudFormation modello locale è stato distribuito in precedenza, puoi aggiornare lo stack distribuito AWS CloudFormation .
-
Distribuisci un nuovo AWS CloudFormation stack: se il AWS CloudFormation modello locale non è mai stato distribuito o se desideri creare un nuovo stack da un modello distribuito in precedenza, puoi distribuire un nuovo stack. AWS CloudFormation
Esegui la migrazione da un modello AWS SAM
Per migrare da un modello AWS Serverless Application Model (AWS SAM), devi prima convertirlo in un AWS CloudFormation modello o distribuirlo per creare uno stack. AWS CloudFormation
Per convertire un AWS SAM modello in AWS CloudFormation, puoi usare il AWS SAM CLI sam validate --debug
comando. Potrebbe essere necessario lint
impostarlo false
nel samconfig.toml
file prima di eseguire questo comando.
Per convertirlo in uno AWS CloudFormation stack, distribuisci il AWS SAM modello utilizzando AWS SAM CLI. Quindi esegui la migrazione dallo stack distribuito.
Esegui la migrazione dalle risorse distribuite
Per migrare dalle AWS risorse distribuite, offri l'opzione. --from-scan
È inoltre necessario fornire l'opzione richiesta. --stack-name
Di seguito è riportato un esempio:
$
cdk migrate --from-scan --stack-name
"myCloudFormationStack"
La AWS CDK CLI farà quanto segue:
-
Scansiona il tuo account per i dettagli di risorse e proprietà: The AWS CDK CLI utilizza il generatore IAc per scansionare il tuo account e raccogliere dettagli.
-
Genera un AWS CloudFormation modello: dopo la scansione, AWS CDK CLI utilizza il generatore IAc per creare un AWS CloudFormation modello.
-
Inizializza una nuova app CDK e migra il tuo modello: The AWS CDK CLI viene eseguito
cdk init
per inizializzare una nuova AWS CDK app e migra il AWS CloudFormation modello nell'app CDK come singolo stack.
Usa i filtri
Per impostazione predefinita, il AWS CDK CLI eseguirà la scansione AWS dell'intero ambiente e migrerà le risorse fino al limite di quota massimo del generatore IAc. È possibile fornire filtri con AWS CDK CLI per specificare un criterio in base al quale le risorse vengono migrate dal tuo account alla nuova app CDK. Per ulteriori informazioni, consulta --filter
.
Ricerca di risorse con il generatore IAc
A seconda del numero di risorse presenti nell'account, la scansione potrebbe richiedere alcuni minuti. Durante il processo di scansione verrà visualizzata una barra di avanzamento.
- Tipi di risorse supportati
-
La AWS CDK CLI migrerà le risorse supportate dal generatore IAc. Per un elenco completo, consulta il supporto per i tipi di risorse nella Guida per l'AWS CloudFormation utente.
Risolvi le proprietà di sola scrittura
Alcune risorse supportate contengono proprietà di sola scrittura. Queste proprietà possono essere scritte su, per configurare la proprietà, ma non possono essere lette dal generatore IAc o AWS CloudFormation per ottenere il valore. Ad esempio, una proprietà utilizzata per specificare una password di database può essere di sola scrittura per motivi di sicurezza.
Durante la scansione delle risorse durante la migrazione, il generatore IaC rileverà le risorse che possono contenere proprietà di sola scrittura e le classificherà in uno dei seguenti tipi:
-
MUTUALLY_EXCLUSIVE_PROPERTIES
— Si tratta di proprietà di sola scrittura per una risorsa specifica che sono intercambiabili e hanno uno scopo simile. Per configurare la risorsa è necessaria una delle proprietà che si escludono a vicenda. Ad esempio, le proprietàS3Bucket
ImageUri
, e di unaAWS::Lambda::Function
risorsa sonoZipFile
proprietà di sola scrittura che si escludono a vicenda. È possibile utilizzare ognuna di esse per specificare le risorse funzionali, ma è necessario utilizzarne una. -
MUTUALLY_EXCLUSIVE_TYPES
— Si tratta di proprietà di sola scrittura obbligatorie che accettano più tipi di configurazione. Ad esempio, laBody
proprietà di unaAWS::ApiGateway::RestApi
risorsa accetta un tipo di oggetto o di stringa. -
UNSUPPORTED_PROPERTIES
— Si tratta di proprietà di sola scrittura che non rientrano nelle altre due categorie. Sono proprietà opzionali o proprietà obbligatorie che accettano una serie di oggetti.
Per ulteriori informazioni sulle proprietà di sola scrittura e su come il generatore IaC le gestisce durante la scansione delle risorse distribuite e la creazione di AWS CloudFormation modelli, consultate il generatore IaC e le proprietà di sola scrittura nella Guida per l'utente.AWS CloudFormation
Dopo la migrazione, è necessario specificare i valori delle proprietà di sola scrittura nella nuova app CDK. La AWS CDK CLI aggiungerà una sezione Warnings al ReadMe
file del progetto CDK per documentare tutte le proprietà di sola scrittura identificate dal generatore IAc. Di seguito è riportato un esempio:
# Welcome to your CDK TypeScript project
...
## Warnings
### Write-only properties
Write-only properties are resource property values that can be written to but can't be read by AWS CloudFormation or CDK Migrate. For more information, see [IaC generator and write-only properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC-write-only-properties.html).
Write-only properties discovered during migration are organized here by resource ID and categorized by write-only property type. Resolve write-only properties by providing property values in your CDK app. For guidance, see [Resolve write-only properties](https://docs.aws.amazon.com/cdk/v2/guide/migrate.html#migrate-resources-writeonly).
### MyLambdaFunction
- **UNSUPPORTED_PROPERTIES**:
- SnapStart/ApplyOn: Applying SnapStart setting on function resource type.Possible values: [PublishedVersions, None]
This property can be replaced with other types
- Code/S3ObjectVersion: For versioned objects, the version of the deployment package object to use.
This property can be replaced with other exclusive properties
- **MUTUALLY_EXCLUSIVE_PROPERTIES**:
- Code/S3Bucket: An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account.
This property can be replaced with other exclusive properties
- Code/S3Key: The Amazon S3 key of the deployment package.
This property can be replaced with other exclusive properties
-
Gli avvisi sono organizzati in titoli che identificano l'ID logico della risorsa a cui sono associati.
-
Gli avvisi sono suddivisi in categorie per tipo. Questi tipi provengono direttamente dal generatore IAc.
Per risolvere le proprietà di sola scrittura
-
Identifica le proprietà di sola scrittura da risolvere nella sezione Avvertenze del file del tuo progetto CDK.
ReadMe
Qui puoi prendere nota delle risorse dell'app CDK che possono contenere proprietà di sola scrittura e identificare i tipi di proprietà di sola scrittura che sono stati scoperti.-
Ad esempio
MUTUALLY_EXCLUSIVE_PROPERTIES
, stabilite quale proprietà mutuamente esclusiva configurare nella vostra app. AWS CDK -
Per
MUTUALLY_EXCLUSIVE_TYPES
, determina quale tipo accettato utilizzerai per configurare la proprietà. -
Per
UNSUPPORTED_PROPERTIES
, determina se la proprietà è facoltativa o obbligatoria. Quindi, configurate se necessario.
-
-
Utilizzate le indicazioni del generatore IAc e delle proprietà di sola scrittura per fare riferimento al significato dei tipi di avviso.
-
Nell'app CDK, i valori delle proprietà di sola scrittura da risolvere verranno specificati anche nella sezione dell'app.
Props
Fornisci qui i valori corretti. Per le descrizioni e le indicazioni sulle proprietà, puoi fare riferimento all'AWS CDK API Reference.Di seguito è riportato un esempio della
Props
sezione all'interno di un'app CDK migrata con due proprietà di sola scrittura da risolvere:export interface MyTestAppStackProps extends cdk.StackProps { /** * The Amazon S3 key of the deployment package. */ readonly lambdaFunction00asdfasdfsadf008grk1CodeS3Keym8P82: string; /** * An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account. */ readonly lambdaFunction00asdfasdfsadf008grk1CodeS3Bucketzidw8: string; }
Una volta risolti tutti i valori delle proprietà di sola scrittura, sei pronto per prepararti alla distribuzione.
Il file migrate.json
Il AWS CDK CLI crea un migrate.json
file nel AWS CDK progetto durante la migrazione. Questo file contiene informazioni di riferimento sulle risorse distribuite. Quando si distribuisce l'app CDK per la prima volta, AWS CDK CLI utilizza questo file per fare riferimento alle risorse distribuite, associa le risorse al nuovo AWS CloudFormation stack ed elimina il file.
Gestisci e distribuisci la tua app CDK
Durante la migrazione a AWS CDK, la nuova app CDK potrebbe non essere immediatamente pronta per l'implementazione. Questo argomento descrive le azioni da prendere in considerazione durante la gestione e la distribuzione della nuova app CDK.
Preparati per la distribuzione
Prima della distribuzione, devi preparare l'app CDK.
- Sintetizza la tua app
-
Usa il
cdk synth
comando per sintetizzare lo stack dell'app CDK in un modello. AWS CloudFormationSe hai eseguito la migrazione da uno AWS CloudFormation stack o da un modello distribuito, puoi confrontare il modello sintetizzato con il modello migrato per verificare i valori delle risorse e delle proprietà.
Per ulteriori informazioni su
cdk synth
, consulta Sintetizza gli stack. - Esegui un diff
-
Se hai eseguito la migrazione da uno AWS CloudFormation stack distribuito, puoi usare il comando cdk diff per eseguire il confronto con lo stack della tua nuova app CDK.
Per ulteriori informazioni su cdk diff, consulta. Confronta gli stack
- Avvia il tuo ambiente
-
Se esegui la distribuzione da un AWS ambiente per la prima volta, usalo
cdk bootstrap
per preparare l'ambiente. Per ulteriori informazioni, consulta AWS CDK bootstrap.
Implementa la tua app CDK
Quando distribuisci un'app CDK, AWS CDK CLI utilizza il AWS CloudFormation servizio per fornire le tue risorse. Le risorse sono raggruppate in un unico stack nell'app CDK e vengono distribuite come un unico stack. AWS CloudFormation
A seconda della provenienza da cui è stata effettuata la migrazione, è possibile eseguire l'implementazione per creare un nuovo AWS CloudFormation stack o aggiornare uno stack esistente. AWS CloudFormation
- Esegui la distribuzione per creare un nuovo stack AWS CloudFormation
-
Se hai effettuato la migrazione da risorse distribuite, AWS CDK CLI creerà automaticamente un nuovo AWS CloudFormation stack al momento della distribuzione. Le risorse distribuite verranno incluse nel nuovo AWS CloudFormation stack.
Se hai effettuato la migrazione da un AWS CloudFormation modello locale che non è mai stato distribuito, AWS CDK CLI creerà automaticamente un nuovo AWS CloudFormation stack al momento della distribuzione.
Se hai eseguito la migrazione da uno AWS CloudFormation stack distribuito o da un AWS CloudFormation modello locale distribuito in precedenza, puoi eseguire la distribuzione per creare un nuovo stack. AWS CloudFormation Per creare un nuovo stack, procedi come segue:
-
Esegui la distribuzione in un nuovo AWS ambiente. Consiste nell'utilizzo di un AWS account diverso o nella distribuzione in un altro. Regione AWS
-
Se desideri distribuire un nuovo stack nello stesso AWS ambiente dello stack o del modello migrato, devi modificare il nome dello stack nell'app CDK con un nuovo valore. È inoltre necessario modificare tutta la logica IDs delle risorse nell'app CDK. Quindi, puoi eseguire la distribuzione nello stesso ambiente per creare un nuovo stack e nuove risorse.
-
- Esegui la distribuzione per aggiornare uno stack esistente AWS CloudFormation
-
Se hai eseguito la migrazione da uno AWS CloudFormation stack distribuito o da un AWS CloudFormation modello locale distribuito in precedenza, puoi eseguire la distribuzione per aggiornare lo stack esistente. AWS CloudFormation
Verifica che il nome dello stack nell'app CDK corrisponda al nome dello stack distribuito ed esegui la distribuzione nello stesso ambiente. AWS CloudFormation AWS