Este é o Guia do desenvolvedor do AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Migre recursos e AWS CloudFormation modelos existentes para o CDK AWS
O recurso CDK Migrate está na versão prévia do AWS CDK e está sujeito a alterações. |
Use a interface de linha de comando (AWS CDK AWS CLI) do AWS Cloud Development Kit (CDK) para migrar AWS recursos implantados, AWS CloudFormation pilhas implantadas e modelos locais para o CDK. AWS CloudFormation AWS
Como funciona a migração
Use o comando AWS CDK cdk migrate
CLI para migrar das seguintes fontes:
-
AWS Recursos implantados.
-
Pilhas AWS CloudFormation implantadas.
-
AWS CloudFormation Modelos locais.
- Recursos implantados AWS
-
Você pode migrar AWS recursos implantados de um ambiente específico (AWS conta e AWS região) que não estejam associados a uma AWS CloudFormation pilha.
A CLI do AWS CDK utiliza o serviço gerador IaC para verificar recursos em AWS seu ambiente e coletar detalhes dos recursos. Para saber mais sobre o gerador IaC, consulte Geração de modelos para recursos existentes no Guia do AWS CloudFormation usuário.
Depois de coletar os detalhes dos recursos, a CLI do AWS CDK cria um novo aplicativo CDK que inclui uma única pilha contendo seus recursos migrados.
- Pilhas implantadas AWS CloudFormation
-
Você pode migrar uma única AWS CloudFormation pilha para um novo aplicativo AWS CDK. A CLI do AWS CDK recuperará AWS CloudFormation o modelo da sua pilha e criará um novo aplicativo CDK. O aplicativo CDK consistirá em uma única pilha que contém sua pilha AWS CloudFormation migrada.
- AWS CloudFormation Modelos locais
-
Você pode migrar de um AWS CloudFormation modelo local. Os modelos locais podem ou não conter recursos implantados. A CLI do AWS CDK criará um novo aplicativo CDK que contém uma única pilha com seus recursos.
Depois de migrar, você pode gerenciar, modificar e implantar seu aplicativo CDK para AWS CloudFormation provisionar ou atualizar seus recursos.
Benefícios do CDK Migrate
Historicamente, a migração de recursos para o AWS CDK tem sido um processo manual que requer tempo e experiência com AWS CloudFormation o AWS CDK para começar. Com o CDK Migrate, a CLI do AWS CDK facilita a maior parte do esforço de migração para você em uma fração do tempo. O CDK Migrate fará com que você comece rapidamente a usar o AWS CDK para desenvolver e gerenciar aplicativos novos e existentes no. AWS
Considerações
Considerações gerais
- CDK Migrate versus CDK Import
-
O comando
cdk import
pode importar recursos implantados em uma aplicação do CDK novo ou existente. Ao importar, cada recurso precisará ser definido manualmente como um constructo L1 em sua aplicação. Recomendamos usarcdk import
para importar um ou mais recursos por vez em uma aplicação o CDK novo ou existente. Para saber mais, consulte Importar recursos existentes em uma pilha.O
cdk migrate
comando migra de recursos implantados, AWS CloudFormation pilhas implantadas ou AWS CloudFormation modelos locais para um novo aplicativo CDK. Durante a migração, a CLI do AWS CDKcdk import
usa para importar seus recursos para o novo aplicativo CDK. A CLI do AWS CDK também gera construções L1 para cada recurso para você. Recomendamos usarcdk migrate
ao importar de uma fonte de migração compatível para um novo aplicativo AWS CDK. - O CDK Migrate cria somente construções L1
-
A aplicação do CDK recém-criado incluirá somente constructos L1. Você pode adicionar constructos de alto nível à sua aplicação após a migração.
- O CDK Migrate cria aplicativos CDK que contêm uma única pilha
-
A aplicação do CDK recém-criado conterá uma única pilha.
Ao migrar os recursos implantados, todos os recursos migrados estarão contidos em uma única pilha na nova aplicação do CDK.
Ao migrar AWS CloudFormation pilhas, você só pode migrar uma única pilha para uma única AWS CloudFormation pilha no novo aplicativo CDK.
- Migração de ativos
-
Os ativos do projeto, como o código AWS Lambda, não migrarão diretamente para o novo aplicativo CDK. Após a migração, você pode especificar os valores dos ativos para incluí-los na aplicação do CDK.
- Migração de recursos com estado
-
Ao migrar recursos com estado, como bancos de dados e buckets do Amazon Simple Storage Service (Amazon S3), você geralmente deseja migrar o recurso existente em vez de criar um novo recurso.
Para migrar e preservar recursos com estado, faça o seguinte:
-
Verifique se seu recurso com estado é compatível com importação. Para obter mais informações, consulte Suporte ao tipo de recurso no Guia AWS CloudFormation do usuário.
-
Após a migração, verifique se o ID lógico do recurso migrado na nova aplicação do CDK corresponde ao ID lógico do recurso implantado.
-
Se estiver migrando de uma AWS CloudFormation pilha, verifique se o nome da pilha no novo aplicativo CDK corresponde à pilha. AWS CloudFormation
-
Implante o aplicativo CDK usando a mesma AWS conta e AWS região do recurso migrado.
-
Considerações ao migrar de um modelo AWS CloudFormation
- O CDK Migrate oferece suporte à migração de modelo único
-
Ao migrar AWS CloudFormation modelos, você pode selecionar um único modelo para migrar. Não há suporte para modelos aninhados.
- Migração de modelos com funções intrínsecas
-
Ao migrar de um AWS CloudFormation modelo que usa funções intrínsecas, a AWS CLI do CDK tentará migrar sua lógica para o aplicativo CDK com a classe.
Fn
Para saber mais, consulte a classe Fn na Referência da API AWS Cloud Development Kit (AWS CDK).
Considerações ao migrar dos recursos implantados
- Limitações de verificação
-
Ao verificar seu ambiente em busca de recursos, o gerador de IaC tem limitações específicas nos dados que ele pode recuperar e limitações de cota durante a digitalização. Para saber mais, consulte Considerações no Guia do AWS CloudFormation usuário.
Pré-requisitos
Antes de usar o cdk migrate
comando, conclua todas as etapas de configuração em Introdução ao AWS CDK.
Começar a usar o CDK Migrate
Para começar, execute o comando AWS CDK cdk migrate
CLI em um diretório de sua escolha. Forneça as opções necessárias e opcionais, dependendo do tipo de migração que você está realizando.
Para obter uma lista completa e uma descrição das opções que você pode usarcdk migrate
, consulte cdk migrate.
A seguir estão algumas opções importantes que você pode oferecer.
- Nome da stack
-
A única opção necessária é
--stack-name
. Use essa opção para especificar um nome para a pilha que será criada no aplicativo AWS CDK após a migração. O nome da pilha também será usado como o nome da sua AWS CloudFormation pilha na implantação. - Idioma
-
Use
--language
para especificar a linguagem de programação da nova aplicação do CDK. - AWS conta e AWS região
-
A CLI do AWS CDK AWS recupera informações da conta AWS e da região de fontes padrão. Para obter mais informações, consulte Ambientes para o AWS CDK. Você pode usar as opções
--account
e--region
comcdk migrate
para fornecer outros valores. - Diretório de saída do seu novo projeto CDK
-
Por padrão, a CLI do AWS CDK criará um novo projeto CDK em seu diretório de trabalho e usará o valor fornecido para nomear
--stack-name
a pasta do projeto. Se uma pasta com o mesmo nome existir atualmente, a CLI do AWS CDK substituirá essa pasta.Você pode especificar um caminho de saída diferente para a nova pasta do projeto do CDK com a opção
--output-path
. - Fonte de migração
-
Forneça uma opção para especificar a origem da qual você está migrando.
-
--from-path
— Migre de um AWS CloudFormation modelo local. -
--from-scan
— Migre dos recursos implantados em uma AWS conta e AWS região. -
--from-stack
— Migre de uma AWS CloudFormation pilha.
Dependendo da fonte de migração, você pode fornecer opções adicionais para personalizar o comando
cdk migrate
. -
Migre de uma pilha AWS CloudFormation
Para migrar de uma AWS CloudFormation pilha implantada, forneça a opção. --from-stack
Forneça o nome da sua AWS CloudFormation pilha implantada com. --stack-name
Veja um exemplo a seguir:
$ cdk migrate --from-stack --stack-name "myCloudFormationStack"
A CLI do AWS CDK fará o seguinte:
-
Recupere o AWS CloudFormation modelo da sua pilha implantada.
-
Executar o
cdk init
para inicializar um nova aplicação do CDK. -
Crie uma pilha no aplicativo CDK que contenha sua pilha AWS CloudFormation migrada.
Quando você migra de uma AWS CloudFormation pilha implantada, a AWS CLI do CDK tenta combinar a lógica do recurso implantado e o nome da pilha implantada com os recursos IDs e a AWS CloudFormation pilha migrados no novo aplicativo CDK.
Após a migração, você pode gerenciar e modificar sua aplicação do CDK normalmente. Ao implantar, AWS CloudFormation identificará a implantação como uma atualização da AWS CloudFormation pilha devido ao nome da AWS CloudFormation pilha correspondente. Os recursos com a lógica correspondente IDs serão atualizados. Para obter mais informações sobre implantação, consulte Gerenciar e implantar seu aplicativo CDK.
Migrar de um modelo AWS CloudFormation
O CDK Migrate suporta a migração de AWS CloudFormation modelos formatados em ou. JSON
YAML
Para migrar de um AWS CloudFormation modelo local, use a --from-path
opção e forneça um caminho para o modelo local. Também é necessário fornecer a opção --stack-name
obrigatória. Veja um exemplo a seguir:
$ cdk migrate --from-path "./template.json" --stack-name "myCloudFormationStack"
A CLI do AWS CDK fará o seguinte:
-
Recupere seu AWS CloudFormation modelo local.
-
Executar o
cdk init
para inicializar um nova aplicação do CDK. -
Crie uma pilha no aplicativo CDK que contenha seu modelo AWS CloudFormation migrado.
Após a migração, você pode gerenciar e modificar sua aplicação do CDK normalmente. Na implantação, você tem as seguintes opções:
-
Atualizar uma AWS CloudFormation pilha — Se o AWS CloudFormation modelo local tiver sido implantado anteriormente, você poderá atualizar a pilha AWS CloudFormation implantada.
-
Implantar uma nova AWS CloudFormation pilha — Se o AWS CloudFormation modelo local nunca foi implantado, ou se você quiser criar uma nova pilha a partir de um modelo implantado anteriormente, você pode implantar uma nova pilha. AWS CloudFormation
Migrar de um modelo de AWS SAM
Para migrar de um modelo de modelo de aplicativo AWS sem servidor (AWS SAM), você deve primeiro convertê-lo em um AWS CloudFormation modelo ou implantá-lo para criar uma pilha. AWS CloudFormation
Para converter um modelo do AWS SAM em AWS CloudFormation, você pode usar o comando CLI sam validate --debug
do AWS SAM. Talvez seja necessário definir lint
como false
em seu arquivo samconfig.toml
antes de executar esse comando.
Para converter em uma AWS CloudFormation pilha, implante o modelo do AWS SAM usando a CLI do AWS SAM. Em seguida, migre da pilha implantada.
Migrar dos recursos implantados
Para migrar dos AWS recursos implantados, forneça a --from-scan
opção. Também é necessário fornecer a opção --stack-name
obrigatória. Veja um exemplo a seguir:
$ cdk migrate --from-scan --stack-name "myCloudFormationStack"
A CLI do AWS CDK fará o seguinte:
-
Examine sua conta para obter detalhes de recursos e propriedades — O AWS CDK CLI utiliza o gerador IaC para escanear sua conta e coletar detalhes.
-
Gere um AWS CloudFormation modelo — Após a digitalização, o AWS CDK CLI utiliza o gerador IaC para criar um modelo. AWS CloudFormation
-
Inicialize um novo aplicativo CDK e migre seu modelo — A AWS CLI do CDK é executada
cdk init
para inicializar um novo aplicativo CDK e migra seu AWS CloudFormation modelo para o aplicativo AWS CDK como uma única pilha.
Usar filtros
Por padrão, a CLI do AWS CDK examinará AWS todo o ambiente e migrará recursos até o limite máximo de cota do gerador IaC. Você pode fornecer filtros com a CLI do AWS CDK para especificar um critério para os quais os recursos serão migrados da sua conta para o novo aplicativo CDK. Para saber mais, consulte
--filter
.
Verificar recursos com o gerador de IaC
Dependendo do número de recursos na sua conta, a verificação pode demorar alguns minutos. Uma barra de progresso será exibida durante o processo de verificação.
- Tipos de recursos compatíveis
-
A CLI do AWS CDK migrará recursos suportados pelo gerador IaC. Para obter uma lista completa, consulte Suporte ao tipo de recurso no Guia AWS CloudFormation do usuário.
Resolver propriedades somente gravação
Alguns recursos compatíveis contêm propriedades somente gravação. Essas propriedades podem ser gravadas para configurar a propriedade, mas não podem ser lidas pelo gerador IaC ou AWS CloudFormation para obter o valor. Por exemplo, uma propriedade usada para especificar uma senha de banco de dados pode ser somente gravação por motivos de segurança.
Ao verificar recursos durante a migração, o gerador de IaC detectará recursos que possam conter propriedades somente gravação e os categorizará em qualquer um dos seguintes tipos:
-
MUTUALLY_EXCLUSIVE_PROPERTIES
: essas são propriedades somente gravação para um recurso específico que são intercambiáveis e têm uma finalidade semelhante. Uma das propriedades mutuamente exclusivas é necessária para configurar seu recurso. Por exemplo, as propriedadesS3Bucket
,ImageUri
eZipFile
de um recursoAWS::Lambda::Function
são propriedades mutuamente exclusivas somente gravação. Qualquer uma delas pode ser usada para especificar seus ativos de função, mas você deve usar uma. -
MUTUALLY_EXCLUSIVE_TYPES
: essas são propriedades obrigatórias somente gravação que aceitam vários tipos de configuração. Por exemplo, a propriedadeBody
de um recursoAWS::ApiGateway::RestApi
aceita um tipo de objeto ou string. -
UNSUPPORTED_PROPERTIES
— Essas são propriedades somente para gravação que não se enquadram nas outras duas categorias. Elas são propriedades opcionais ou obrigatórias que aceitam uma matriz de objetos.
Para obter mais informações sobre propriedades somente de gravação e como o gerador de IaC as gerencia ao verificar recursos implantados e criar AWS CloudFormation modelos, consulte Gerador de IaC e propriedades somente de gravação no Guia do usuário. AWS CloudFormation
Após a migração, você deve especificar valores de propriedade somente gravação na nova aplicação do CDK. A CLI do AWS CDK anexará uma seção Avisos ao arquivo do projeto CDK para documentar todas as propriedades somente ReadMe
de gravação identificadas pelo gerador IaC. Veja um exemplo a seguir:
# 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
-
Os avisos são organizados em títulos que identificam o ID lógico do recurso ao qual estão associados.
-
Os avisos são categorizados por tipo. Esses tipos vêm diretamente do gerador de IaC.
- Para resolver propriedades somente de gravação
-
-
Identifique propriedades somente gravação a serem resolvidas na seção Avisos do arquivo
ReadMe
do seu projeto do CDK. Aqui, você pode anotar os recursos em sua aplicação do CDK que podem conter propriedades somente gravação e identificar os tipos de propriedades somente gravação que foram descobertos.-
Para
MUTUALLY_EXCLUSIVE_PROPERTIES
, determine qual propriedade mutuamente exclusiva configurar em seu aplicativo AWS CDK. -
Em
MUTUALLY_EXCLUSIVE_TYPES
, determine qual tipo aceito você usará para configurar a propriedade. -
Em
UNSUPPORTED_PROPERTIES
, determine se a propriedade é opcional ou obrigatória. Em seguida, configure conforme for necessário.
-
-
Use a orientação em gerador de IaC e propriedades somente gravação para ter uma referência sobre o que significam os tipos de aviso.
-
Na sua aplicação do CDK, os valores das propriedades somente gravação a serem resolvidos também serão especificados na seção
Props
da sua aplicação. Forneça os valores corretos aqui. Para obter descrições e orientações sobre propriedades, você pode consultar a Referência da API AWS CDK.Veja a seguir um exemplo da seção
Props
em uma aplicação do CDK migrado com duas propriedades somente gravação a serem resolvidas: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; }
Depois de resolver todos os valores de propriedade somente gravação, você estará pronto para se preparar para a implantação.
-
O arquivo migrate.json
A CLI do AWS CDK cria migrate.json
um arquivo em AWS seu projeto CDK durante a migração. Esse arquivo contém informações de referência sobre seus recursos implantados. Quando você implanta seu aplicativo CDK pela primeira vez, a AWS CLI do CDK usa esse arquivo para referenciar seus recursos implantados, associar seus recursos à nova AWS CloudFormation pilha e excluir o arquivo.
Gerenciar e implantar sua aplicação do CDK
Ao migrar para o AWS CDK, o novo aplicativo CDK pode não estar pronto para implantação imediatamente. Este tópico descreve itens de ação a serem considerados ao gerenciar e implantar sua nova aplicação do CDK.
Preparar-se para implantação
Antes da implantação, você deve preparar sua aplicação do CDK.
- Sintetize seu aplicativo
-
Use o
cdk synth
comando para sintetizar a pilha em seu aplicativo CDK em um modelo. AWS CloudFormationSe você migrou de uma AWS CloudFormation pilha ou modelo implantado, você pode comparar o modelo sintetizado com o modelo migrado para verificar os valores de recursos e propriedades.
Para saber mais
cdk synth
, consulte Sintetizar pilhas. - Execute um diff
-
Se você migrou de uma AWS CloudFormation pilha implantada, pode usar o comando cdk diff para comparar com a pilha em seu novo aplicativo CDK.
Para saber mais sobre cdk diff, consulte Comparar pilhas.
- Inicialize seu ambiente
-
Se você estiver implantando a partir de um AWS ambiente pela primeira vez, use
cdk bootstrap
para preparar seu ambiente. Para saber mais, consulte AWS CDK bootstrapping.
Implantar sua aplicação do CDK
Quando você implanta um aplicativo CDK, a AWS CLI do CDK utiliza o AWS CloudFormation serviço para provisionar seus recursos. Os recursos são agrupados em uma única pilha no aplicativo CDK e implantados como uma única pilha. AWS CloudFormation
Dependendo de onde você migrou, você pode implantar para criar uma nova AWS CloudFormation pilha ou atualizar uma pilha existente AWS CloudFormation .
- Implante para criar uma nova AWS CloudFormation pilha
-
Se você migrou dos recursos implantados, a CLI do AWS CDK criará automaticamente uma AWS CloudFormation nova pilha na implantação. Seus recursos implantados serão incluídos na nova AWS CloudFormation pilha.
Se você migrou de um AWS CloudFormation modelo local que nunca foi implantado, a CLI do AWS CDK criará automaticamente uma AWS CloudFormation nova pilha na implantação.
Se você migrou de uma AWS CloudFormation pilha implantada ou de um AWS CloudFormation modelo local que foi implantado anteriormente, você pode implantar para criar uma nova pilha. AWS CloudFormation Para criar uma nova pilha, faça o seguinte:
-
Implemente em um novo AWS ambiente. Isso consiste em usar uma AWS conta diferente ou implantar em uma AWS região diferente.
-
Se quiser implantar uma nova pilha no mesmo AWS ambiente da pilha ou modelo migrado, você deve modificar o nome da pilha em seu aplicativo CDK para um novo valor. Você também deve modificar toda a lógica IDs dos recursos em seu aplicativo CDK. Em seguida, você pode implantar no mesmo ambiente para criar uma nova pilha e novos recursos.
-
- Implemente para atualizar uma AWS CloudFormation pilha existente
-
Se você migrou de uma AWS CloudFormation pilha implantada ou de um AWS CloudFormation modelo local que foi implantado anteriormente, você pode implantar para atualizar a pilha existente. AWS CloudFormation
Verifique se o nome da pilha em seu aplicativo CDK corresponde ao nome da pilha implantada e implante no AWS CloudFormation mesmo ambiente. AWS