Migre os recursos e AWS CloudFormation modelos existentes para o AWS CDK - AWS Cloud Development Kit (AWS CDK) v2

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

Como funciona a migração

Use o AWS CDK CLI cdk migratecomando 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 usar cdk 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 usa cdk 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 usar cdk 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 migratecomando 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 com cdk 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:

  1. Recupere o AWS CloudFormation modelo da sua pilha implantada.

  2. Execute cdk init para inicializar um novo CDK aplicativo.

  3. 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:

  1. Recupere seu AWS CloudFormation modelo local.

  2. Execute cdk init para inicializar um novo CDK aplicativo.

  3. 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 --debugcomando. 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:

  1. 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.

  2. Gere um AWS CloudFormation modelo — Após a digitalização, o AWS CDK CLI utiliza o gerador IaC para criar um AWS CloudFormation modelo.

  3. 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 propriedades S3BucketImageUri, e de um AWS::Lambda::Function recurso são ZipFile 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, a Body propriedade de um AWS::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
  1. 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.

    1. ParaMUTUALLY_EXCLUSIVE_PROPERTIES, determine qual propriedade mutuamente exclusiva configurar em seu AWS CDK aplicativo.

    2. ParaMUTUALLY_EXCLUSIVE_TYPES, determine qual tipo aceito você usará para configurar a propriedade.

    3. ParaUNSUPPORTED_PROPERTIES, determine se a propriedade é opcional ou obrigatória. Em seguida, configure conforme necessário.

  2. 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.

  3. 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 CloudFormation

Se 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