Este é o Guia do Desenvolvedor AWS CDK v2. A versão CDK 1 mais antiga 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 os recursos e AWS CloudFormation modelos existentes para o AWS CDK
O recurso CDK Migrate está na versão prévia AWS CDK e está sujeito a alterações. |
Use a interface de linha de AWS Cloud Development Kit (AWS CDK) comando (AWS CDK CLI) para migrar AWS recursos implantados, AWS CloudFormation pilhas implantadas e modelos locais para o. AWS CloudFormation AWS CDK
Tópicos
Como funciona a migração
Use o AWS CDK CLI cdk migrate
comando 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 (Conta da AWS e Região da AWS) que não estejam associados a uma AWS CloudFormation pilha.
O AWS CDK CLI utiliza o serviço gerador IaC para verificar recursos em seu AWS 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 do recurso, o AWS CDK CLI cria um novo CDK aplicativo que inclui uma única pilha contendo seus recursos migrados.
- Pilhas implantadas AWS CloudFormation
-
Você pode migrar uma única AWS CloudFormation pilha para um novo AWS CDK aplicativo. O AWS CDK CLI recuperará o AWS CloudFormation modelo da sua pilha e criará um novo CDK aplicativo. O CDK aplicativo consistirá em uma única pilha que contém sua pilha migrada. AWS CloudFormation
- AWS CloudFormation Modelos locais
-
Você pode migrar de um AWS CloudFormation modelo local. Os modelos locais podem ou não conter recursos implantados. O AWS CDK CLI criará um novo CDK aplicativo que contém uma única pilha com seus recursos.
Depois de migrar, você pode gerenciar, modificar e implantar seu CDK aplicativo para AWS CloudFormation provisionar ou atualizar seus recursos.
Benefícios do CDK Migrate
Historicamente, migrar recursos para lá AWS CDK tem sido um processo manual que requer tempo e experiência AWS CDK para começar. AWS CloudFormation Com o CDK Migrate, o AWS CDK CLI facilita a maior parte do esforço de migração para você em uma fração do tempo. CDKO 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
- CDKMigrar versus importar CDK
-
O
cdk import
comando pode importar recursos implantados em um CDK aplicativo novo ou existente. Ao importar, cada recurso precisará ser definido manualmente como uma construção L1 em seu aplicativo. Recomendamos usarcdk import
para importar um ou mais recursos por vez em um CDK aplicativo novo ou existente. Para saber mais, consulte Importar recursos existentes para 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, o AWS CDK CLI usacdk import
para importar seus recursos para o novo CDK aplicativo. O AWS CDK CLI 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 AWS CDK aplicativo. - CDKO Migrate cria somente construções L1
-
O CDK aplicativo recém-criado incluirá somente construções L1. Você pode adicionar construções de alto nível ao seu aplicativo após a migração.
- CDKO Migrate cria CDK aplicativos que contêm uma única pilha
-
O CDK aplicativo recém-criado conterá uma única pilha.
Ao migrar os recursos implantados, todos os recursos migrados estarão contidos em uma única pilha no novo aplicativo. 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 AWS Lambda código, não migrarão diretamente para o novo CDK aplicativo. Após a migração, você pode especificar os valores dos ativos para incluí-los no CDK aplicativo.
- 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 a ID lógica do recurso migrado no novo CDK aplicativo corresponde à ID lógica do recurso implantado.
-
Se estiver migrando de uma AWS CloudFormation pilha, verifique se o nome da pilha no novo CDK aplicativo corresponde à pilha. AWS CloudFormation
-
Implante o CDK aplicativo usando a mesma AWS conta e Região da AWS do recurso migrado.
-
Considerações ao migrar de um modelo AWS CloudFormation
- CDKO Migrate suporta a migração de um único modelo
-
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, o AWS CDK CLI tentará migrar sua lógica para o CDK aplicativo com a
Fn
classe. Para saber mais, consulte a classe Fn na AWS Cloud Development Kit (AWS CDK) APIReferência.
Considerações ao migrar dos recursos implantados
- Limitações de verificação
-
Ao escanear seu ambiente em busca de recursos, o gerador 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 emComeçando com o AWS CDK.
Comece a usar o CDK Migrate
Para começar, execute o AWS CDK CLI cdk migrate
comando de 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 com as quais você pode usarcdk migrate
, consultecdk migrate.
A seguir estão algumas opções importantes que você talvez queira fornecer.
- 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 AWS CDK aplicativo 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 do novo CDK aplicativo. - AWS conta e Região da AWS
-
O AWS CDK CLI recupera AWS contas e Região da AWS informações de fontes padrão. Para obter mais informações, consulte Ambientes para o AWS CDK. Você pode usar
--account
as--region
opções comcdk migrate
para fornecer outros valores. - Diretório de saída do seu novo CDK projeto
-
Por padrão, o AWS CDK CLI criará um novo CDK projeto em seu diretório de trabalho e usará o valor fornecido
--stack-name
para nomear a pasta do projeto. Se uma pasta com o mesmo nome existir atualmente, o AWS CDK CLI sobrescreverá essa pasta.Você pode especificar um caminho de saída diferente para a nova pasta CDK do projeto com a
--output-path
opção. - 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. Região da AWS -
--from-stack
— Migre de uma AWS CloudFormation pilha.
Dependendo da fonte de migração, você pode fornecer opções adicionais para personalizar o
cdk migrate
comando. -
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"
O AWS CDK CLI fará o seguinte:
-
Recupere o AWS CloudFormation modelo da sua pilha implantada.
-
Execute
cdk init
para inicializar um novo CDK aplicativo. -
Crie uma pilha dentro do CDK aplicativo que contenha sua pilha migrada. AWS CloudFormation
Quando você migra de uma AWS CloudFormation pilha implantada, o AWS CDK CLI tenta combinar a lógica do recurso implantado IDs e o nome da AWS CloudFormation pilha implantada com os recursos e a pilha migrados no novo aplicativo. CDK
Após a migração, você pode gerenciar e modificar seu CDK aplicativo 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, consulteGerencie e implante seu CDK aplicativo.
Migrar de um modelo AWS CloudFormation
CDKO 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. Você também deve fornecer a --stack-name
opção necessária. Veja um exemplo a seguir:
$
cdk migrate --from-path
"./template.json"
--stack-name"myCloudFormationStack"
O AWS CDK CLI fará o seguinte:
-
Recupere seu AWS CloudFormation modelo local.
-
Execute
cdk init
para inicializar um novo CDK aplicativo. -
Crie uma pilha dentro do CDK aplicativo que contém seu modelo migrado. AWS CloudFormation
Após a migração, você pode gerenciar e modificar seu CDK aplicativo 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 AWS SAM
Para migrar de um modelo AWS Serverless Application Model (AWS SAM), você deve primeiro convertê-lo em um AWS CloudFormation modelo ou implantá-lo para criar uma AWS CloudFormation pilha.
Para converter um AWS SAM modelo em AWS CloudFormation, você pode usar o AWS SAM CLI sam validate --debug
comando. Talvez seja necessário lint
definir como false
em seu samconfig.toml
arquivo antes de executar esse comando.
Para converter em uma AWS CloudFormation pilha, implante o AWS SAM modelo usando o AWS SAM CLI. Em seguida, migre da pilha implantada.
Migre dos recursos implantados
Para migrar dos AWS recursos implantados, forneça a --from-scan
opção. Você também deve fornecer a --stack-name
opção necessária. Veja um exemplo a seguir:
$
cdk migrate --from-scan --stack-name
"myCloudFormationStack"
O AWS CDK CLI 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 AWS CloudFormation modelo.
-
Inicialize um novo CDK aplicativo e migre seu modelo — O AWS CDK CLI é executado
cdk init
para inicializar um novo AWS CDK aplicativo e migra seu AWS CloudFormation modelo para o CDK aplicativo como uma única pilha.
Use filtros
Por padrão, o AWS CDK CLI examinará todo o AWS ambiente e migrará recursos até o limite máximo de cota do gerador IaC. Você pode fornecer filtros com o AWS CDK CLI para especificar os critérios pelos quais os recursos serão migrados da sua conta para o novo CDK aplicativo. Para saber mais, consulte --filter
.
Escaneamento de recursos com o gerador IaC
Dependendo do número de recursos em sua conta, a verificação pode levar alguns minutos. Uma barra de progresso será exibida durante o processo de digitalização.
- Tipos de recursos compatíveis
-
O AWS CDK CLI 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 para 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 de gravação por motivos de segurança.
Ao escanear recursos durante a migração, o gerador de IaC detectará recursos que possam conter propriedades somente de gravação e os categorizará em qualquer um dos seguintes tipos:
-
MUTUALLY_EXCLUSIVE_PROPERTIES
— Essas são propriedades somente de 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
, e de umAWS::Lambda::Function
recurso sãoZipFile
propriedades mutuamente exclusivas somente para gravação. Qualquer um deles pode ser usado para especificar seus ativos de função, mas você deve usar um. -
MUTUALLY_EXCLUSIVE_TYPES
— Essas são propriedades obrigatórias somente de gravação que aceitam vários tipos de configuração. Por exemplo, aBody
propriedade de umAWS::ApiGateway::RestApi
recurso 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 para gravação no novo CDK aplicativo. O AWS CDK CLI anexará uma seção de avisos ao ReadMe
arquivo do CDK projeto para documentar todas as propriedades somente de gravação que foram 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 IaC.
Para resolver propriedades somente de gravação
-
Identifique as propriedades somente de gravação a serem resolvidas na seção Avisos do arquivo do seu CDK projeto.
ReadMe
Aqui, você pode anotar os recursos em seu CDK aplicativo que podem conter propriedades somente de gravação e identificar os tipos de propriedades somente de gravação que foram descobertos.-
Para
MUTUALLY_EXCLUSIVE_PROPERTIES
, determine qual propriedade mutuamente exclusiva configurar em seu AWS CDK aplicativo. -
Para
MUTUALLY_EXCLUSIVE_TYPES
, determine qual tipo aceito você usará para configurar a propriedade. -
Para
UNSUPPORTED_PROPERTIES
, determine se a propriedade é opcional ou obrigatória. Em seguida, configure conforme necessário.
-
-
Use a orientação do gerador IaC e das propriedades somente de gravação para fazer referência ao que significam os tipos de aviso.
-
No seu CDK aplicativo, os valores das propriedades somente de gravação a serem resolvidos também serão especificados na
Props
seção do seu aplicativo. Forneça os valores corretos aqui. Para obter descrições e orientações sobre propriedades, você pode consultar a AWS CDK APIReferência.Veja a seguir um exemplo da
Props
seção em um CDK aplicativo migrado com duas propriedades somente de 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 para gravação, você estará pronto para se preparar para a implantação.
O arquivo migrate.json
O AWS CDK CLI cria um migrate.json
arquivo em seu AWS CDK projeto durante a migração. Esse arquivo contém informações de referência sobre seus recursos implantados. Quando você implanta seu CDK aplicativo pela primeira vez, o AWS CDK CLI usa esse arquivo para referenciar seus recursos implantados, associar seus recursos à nova AWS CloudFormation pilha e excluir o arquivo.
Gerencie e implante seu CDK aplicativo
Ao migrar para AWS CDK, o novo CDK aplicativo pode não estar pronto para implantação imediatamente. Este tópico descreve itens de ação a serem considerados ao gerenciar e implantar seu novo CDK aplicativo.
Preparar-se para implantação
Antes da implantação, você deve preparar seu CDK aplicativo.
- Sintetize seu aplicativo
-
Use o
cdk synth
comando para sintetizar a pilha do seu CDK aplicativo 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 sobre
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. Compare 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.
Implemente seu CDK aplicativo
Quando você implanta um CDK aplicativo, o AWS CDK CLI utiliza o AWS CloudFormation serviço para provisionar seus recursos. Os recursos são agrupados em uma única pilha no CDK aplicativo 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, o AWS CDK CLI criará automaticamente uma nova AWS CloudFormation 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, o AWS CDK CLI criará automaticamente uma nova AWS CloudFormation 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 outra Região da AWS.
-
Se você quiser implantar uma nova pilha no mesmo AWS ambiente da pilha ou modelo migrado, você deve modificar o nome da pilha em seu CDK aplicativo para um novo valor. Você também deve modificar toda a lógica IDs dos recursos em seu CDK aplicativo. 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 CDK aplicativo corresponde ao nome da pilha implantada AWS CloudFormation e implante no mesmo ambiente. AWS