本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本地測試 AWS CDK 應用
您可以從 AWS CDK 應 AWS SAMCLI用程式的專案根目錄執行下列命令,使用在本機測試應用 AWS CDK 程式:
在您使 AWS CDK 用應用程式執行任何sam local命令之前,您必須執行cdk synth
。
運行時,sam local invoke您需要要調用的函數構造標識符以及合成 AWS CloudFormation 模板的路徑。如果您的應用程式使用巢狀堆疊,為了解決命名衝突,您也需要定義函數的堆疊名稱。
用法:
# 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]
範例
請考慮使用下列範例宣告的堆疊和函數:
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', { ... }); }
下列命令會在本機叫用上述範例中定義的 Lambda 函數:
# 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