

這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護，並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 本機測試入門
<a name="testing-locally-getting-started"></a>

本主題說明搭配 AWS CDK 應用程式使用 AWS SAM CLI 所需的內容，並提供建置和本機測試簡單 AWS CDK 應用程式的指示。

## 先決條件
<a name="testing-locally-getting-started-prerequisites"></a>

若要在本機測試，您必須安裝 AWS SAM CLI。如需安裝說明[，請參閱安裝 AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/getting_started.html)。

## 建立和本機測試 AWS CDK 應用程式
<a name="testing-locally-getting-started-tutorial"></a>

若要使用 SAM AWS CLI 在本機測試 AWS CDK 應用程式，您必須擁有包含 Lambda 函數的 AWS CDK 應用程式。使用下列步驟建立具有 Lambda 函數的基本 AWS CDK 應用程式。如需詳細資訊，請參閱《雲端開發套件 (CDK) 開發人員指南》中的[使用 AWS CDK 建立無伺服器應用程式](https://docs.aws.amazon.com/cdk/latest/guide/serverless_example.html)。 * AWS AWS *<a name="testing-locally-getting-started-tutorial-init"></a>

 **步驟 1：建立 AWS CDK 應用程式**   
在本教學課程中，初始化使用 TypeScript 的 AWS CDK 應用程式。  
要執行的命令：  

```
$ mkdir cdk-sam-example
$ cd cdk-sam-example
$ cdk init app --language typescript
```<a name="testing-locally-getting-started-tutorial-lambda"></a>

 **步驟 2：將 Lambda 函數新增至您的應用程式**   
使用`lib/cdk-sam-example-stack.ts`下列項目取代 中的程式碼：  

```
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';

export class CdkSamExampleStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    new lambda.Function(this, 'MyFunction', {
      runtime: lambda.Runtime.PYTHON_3_12,
      handler: 'app.lambda_handler',
      code: lambda.Code.fromAsset('./my_function'),
    });
  }
}
```<a name="testing-locally-getting-started-tutorial-code"></a>

 **步驟 3：新增您的 Lambda 函數程式碼**   
建立名為 `my_function` 的目錄。在該目錄中，建立名為 `app.py` 的檔案。  
要執行的命令：  

**Example**  

```
$ mkdir my_function
$ cd my_function
$ touch app.py
```

```
$ mkdir my_function
$ cd my_function
$ type nul > app.py
```

```
$ mkdir my_function
$ cd my_function
$ New-Item -Path "app.py”
```
為 `app.py` 添加以下程式碼：

```
def lambda_handler(event, context):
    return "Hello from SAM and the CDK!"
```<a name="testing-locally-getting-started-tutorial-function"></a>

 **步驟 4：測試您的 Lambda 函數**   
您可以使用 AWS SAM CLI 在本機叫用您在 AWS CDK 應用程式中定義的 Lambda 函數。若要這樣做，您需要函數建構識別碼和合成 AWS CloudFormation 範本的路徑。  
執行下列命令以返回 `lib`目錄：  

```
$  cd ..
```
 **要執行的命令：**  

```
$  cdk synth --no-staging
```

```
$  sam local invoke MyFunction --no-event -t ./cdk.out/CdkSamExampleStack.template.json
```
 **輸出範例：**  

```
Invoking app.lambda_handler (python3.9)

START RequestId: 5434c093-7182-4012-9b06-635011cac4f2 Version: $LATEST
"Hello from SAM and the CDK!"
END RequestId: 5434c093-7182-4012-9b06-635011cac4f2
REPORT RequestId: 5434c093-7182-4012-9b06-635011cac4f2	Init Duration: 0.32 ms	Duration: 177.47 ms	Billed Duration: 178 ms	Memory Size: 128 MB	Max Memory Used: 128 MB
```