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.
Teste locais de aplicações do AWS CDK com o AWS SAM
É possível usar a CLI do AWS SAM para testar localmente suas aplicações do AWS CDK executando os comandos a seguir no diretório raiz do projeto da sua aplicação do AWS CDK:
Antes de executar qualquer um dos comandos sam local com uma aplicação do AWS CDK, é necessário executar cdk synth.
Durante a execução de sam local invoke será necessário o identificador do constructo da função que você deseja invocar e do caminho para o modelo sintetizado do AWS CloudFormation. Se a sua aplicação usa pilhas aninhadas, para resolver conflitos de nomenclatura, você também precisará do nome da pilha em que a função está definida.
- Uso
-
# Invoke the function FUNCTION_IDENTIFIER declared in the stack STACK_NAME $ sam local invoke <OPTIONS> <STACK_NAME/FUNCTION_IDENTIFIER> # Start all APIs declared in the AWS CDK application $ sam local start-api -t <./cdk.out/CdkSamExampleStack.template.json> <OPTIONS> # Start a local endpoint that emulates AWS Lambda $ sam local start-lambda -t <./cdk.out/CdkSamExampleStack.template.json> <OPTIONS>
Exemplo
Considere pilhas e funções que são declaradas com o exemplo a seguir:
app = new HelloCdkStack(app, "HelloCdkStack", ... ) class HelloCdkStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { ... new lambda.Function(this, 'MyFunction', { ... }); new HelloCdkNestedStack(this, 'HelloNestedStack' ,{ ... }); } } class HelloCdkNestedStack extends cdk.NestedStack { constructor(scope: Construct, id: string, props?: cdk.NestedStackProps) { ... new lambda.Function(this, 'MyFunction', { ... }); new lambda.Function(this, 'MyNestedFunction', { ... }); } }
Os comandos a seguir invocam localmente as funções Lambda definidas no exemplo apresentado acima:
# Invoke MyFunction from the HelloCdkStack $ sam local invoke -t <./cdk.out/HelloCdkStack.template.json> <MyFunction>
# Invoke MyNestedFunction from the HelloCdkNestedStack $ sam local invoke -t <./cdk.out/HelloCdkStack.template.json> <MyNestedFunction>
# Invoke MyFunction from the HelloCdkNestedStack $ sam local invoke -t <./cdk.out/HelloCdkStack.template.json> <HelloNestedStack/MyFunction>