

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Langkah 1: Siapkan infrastruktur Anda
<a name="tutorial-lambda-sam-setup-infrastructure"></a>

 Topik ini menunjukkan cara menggunakan AWS SAM untuk membuat file untuk AWS SAM template dan fungsi Lambda Anda. Kemudian, Anda menggunakan `deploy` perintah AWS SAM `package` dan untuk menghasilkan komponen dalam infrastruktur Anda. Ketika infrastruktur sudah siap, Anda memiliki grup CodeDeploy aplikasi dan penyebaran, fungsi Lambda untuk memperbarui dan menyebarkan, dan dua fungsi Lambda yang berisi pengujian validasi yang berjalan saat Anda menerapkan fungsi Lambda. Setelah selesai, Anda dapat menggunakan CloudFormation untuk melihat komponen Anda di konsol Lambda atau AWS CLI untuk menguji fungsi Lambda Anda. 

**Topics**
+ [Buat file Anda](tutorial-lambda-create-files.md)
+ [Package aplikasi AWS SAM](tutorial-lambda-sam-package.md)
+ [Menyebarkan aplikasi AWS SAM](tutorial-lambda-sam-deploy.md)
+ [(Opsional) memeriksa dan menguji infrastruktur Anda](tutorial-lambda-sam-confirm-components.md)

# Buat file Anda
<a name="tutorial-lambda-create-files"></a>

 Untuk membuat infrastruktur Anda, Anda harus membuat file-file berikut: 
+ `template.yml`
+ `myDateTimeFunction.js`
+ `beforeAllowTraffic.js`
+ `afterAllowTraffic.js`

**Topics**
+ [Buat template AWS SAM Anda](tutorial-lambda-sam-template.md)
+ [Buat file untuk fungsi Lambda Anda](tutorial-lambda-sam-create-lambda-function.md)
+ [Buat file untuk fungsi BeforeAllowTraffic Lambda Anda](tutorial-lambda-sam-create-lambda-before-traffic.md)
+ [Buat file untuk fungsi AfterAllowTraffic Lambda Anda](tutorial-lambda-sam-create-lambda-after-traffic.md)

# Buat template AWS SAM Anda
<a name="tutorial-lambda-sam-template"></a>

Buat file template AWS SAM yang menentukan komponen dalam infrastruktur Anda.

**Untuk membuat template AWS SAM Anda**

1.  Membuat sebuah direktori bernama `SAM-Tutorial`. 

1.  Di `SAM-Tutorial` direktori Anda, buat file bernama`template.yml`. 

1.  Salin kode YAML berikut ke dalam`template.yml`. Ini adalah AWS SAM template Anda. 

   ```
   AWSTemplateFormatVersion : '2010-09-09'
   Transform: AWS::Serverless-2016-10-31
   Description: A sample SAM template for deploying Lambda functions.
   
   Resources:
   # Details about the myDateTimeFunction Lambda function
     myDateTimeFunction:
       Type: AWS::Serverless::Function
       Properties:
         Handler: myDateTimeFunction.handler
         Runtime: nodejs18.x
   # Instructs your myDateTimeFunction is published to an alias named "live".      
         AutoPublishAlias: live
   # Grants this function permission to call lambda:InvokeFunction
         Policies:
           - Version: "2012-10-17"		 	 	 
             Statement: 
             - Effect: "Allow"
               Action: 
                 - "lambda:InvokeFunction"
               Resource: '*'
         DeploymentPreference:
   # Specifies the deployment configuration      
             Type: Linear10PercentEvery1Minute
   # Specifies Lambda functions for deployment lifecycle hooks
             Hooks:
               PreTraffic: !Ref beforeAllowTraffic
               PostTraffic: !Ref afterAllowTraffic
               
   # Specifies the BeforeAllowTraffic lifecycle hook Lambda function
     beforeAllowTraffic:
       Type: AWS::Serverless::Function
       Properties:
         Handler: beforeAllowTraffic.handler
         Policies:
           - Version: "2012-10-17"		 	 	 
   # Grants this function permission to call codedeploy:PutLifecycleEventHookExecutionStatus        
             Statement: 
             - Effect: "Allow"
               Action: 
                 - "codedeploy:PutLifecycleEventHookExecutionStatus"
               Resource:
                 !Sub 'arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:${ServerlessDeploymentApplication}/*'
           - Version: "2012-10-17"		 	 	 
   # Grants this function permission to call lambda:InvokeFunction        
             Statement: 
             - Effect: "Allow"
               Action: 
                 - "lambda:InvokeFunction"
               Resource: !Ref myDateTimeFunction.Version
         Runtime: nodejs18.x
   # Specifies the name of the Lambda hook function      
         FunctionName: 'CodeDeployHook_beforeAllowTraffic'
         DeploymentPreference:
           Enabled: false
         Timeout: 5
         Environment:
           Variables:
             NewVersion: !Ref myDateTimeFunction.Version
             
   # Specifies the AfterAllowTraffic lifecycle hook Lambda function
     afterAllowTraffic:
       Type: AWS::Serverless::Function
       Properties:
         Handler: afterAllowTraffic.handler
         Policies:
           - Version: "2012-10-17"		 	 	 
             Statement: 
   # Grants this function permission to call codedeploy:PutLifecycleEventHookExecutionStatus         
             - Effect: "Allow"
               Action: 
                 - "codedeploy:PutLifecycleEventHookExecutionStatus"
               Resource:
                 !Sub 'arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:${ServerlessDeploymentApplication}/*'
           - Version: "2012-10-17"		 	 	 
             Statement: 
   # Grants this function permission to call lambda:InvokeFunction          
             - Effect: "Allow"
               Action: 
                 - "lambda:InvokeFunction"
               Resource: !Ref myDateTimeFunction.Version
         Runtime: nodejs18.x
   # Specifies the name of the Lambda hook function      
         FunctionName: 'CodeDeployHook_afterAllowTraffic'
         DeploymentPreference:
           Enabled: false
         Timeout: 5
         Environment:
           Variables:
             NewVersion: !Ref myDateTimeFunction.Version
   ```

Template ini menentukan berikut ini. Untuk informasi selengkapnya, lihat [konsep AWS SAM templat](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html).

**Fungsi Lambda disebut `myDateTimeFunction`**  
 Ketika fungsi Lambda ini diterbitkan, `AutoPublishAlias` baris dalam template menautkannya ke alias bernama. `live` Kemudian dalam tutorial ini, pembaruan untuk fungsi ini memicu penerapan yang secara bertahap menggeser lalu lintas produksi dari versi asli ke versi yang diperbarui. AWS CodeDeploy 

**Dua fungsi validasi penerapan Lambda**  
 Fungsi Lambda berikut dijalankan selama kait siklus CodeDeploy hidup. Fungsi berisi kode yang memvalidasi penyebaran yang diperbarui. `myDateTimeFunction` Hasil tes validasi diteruskan CodeDeploy menggunakan metode `PutLifecycleEventHookExecutionStatus` API-nya. Jika tes validasi gagal, penerapan gagal dan dibatalkan.   
+  `CodeDeployHook_beforeAllowTraffic`berjalan selama `BeforeAllowTraffic` pengait. 
+  `CodeDeployHook_afterAllowTraffic`berjalan selama `AfterAllowTraffic` pengait. 
Nama kedua fungsi dimulai dengan`CodeDeployHook_`. `CodeDeployRoleForLambda`Peran memungkinkan panggilan ke `invoke` metode Lambda hanya dalam fungsi Lambda dengan nama yang dimulai dengan awalan ini. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'kait' untuk penerapan AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda) dan [PutLifecycleEventHookExecutionStatus](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_PutLifecycleEventHookExecutionStatus.html)di *Referensi CodeDeploy API*. 

**Deteksi otomatis fungsi Lambda yang diperbarui**  
 `AutoPublishAlias`Istilah ini memberi tahu kerangka kerja untuk mendeteksi kapan `myDateTimeFunction` fungsi berubah, dan kemudian menerapkannya menggunakan `live` alias. 

**Konfigurasi penerapan**  
 Konfigurasi deployment menentukan tingkat di mana CodeDeploy aplikasi Anda mengalihkan lalu lintas dari versi asli fungsi Lambda ke versi baru. Template ini menentukan konfigurasi deployment yang telah ditetapkan. `Linear10PercentEvery1Minute`   
 Anda tidak dapat menentukan konfigurasi penerapan kustom dalam template AWS SAM. Untuk informasi selengkapnya, lihat [Buat konfigurasi penerapan dengan CodeDeploy](deployment-configurations-create.md).

**Fungsi kait siklus hidup penerapan**  
 `Hooks`Bagian ini menentukan fungsi yang akan dijalankan selama kait peristiwa siklus hidup. `PreTraffic`menentukan fungsi yang berjalan selama `BeforeAllowTraffic` hook. `PostTraffic`menentukan fungsi yang berjalan selama `AfterAllowTraffic` hook. 

**Izin untuk Lambda untuk memanggil fungsi Lambda lain**  
 `lambda:InvokeFunction`Izin yang ditentukan memberikan peran yang digunakan oleh izin aplikasi AWS SAM untuk memanggil fungsi Lambda. Ini diperlukan saat `CodeDeployHook_afterAllowTraffic` fungsi `CodeDeployHook_beforeAllowTraffic` and memanggil fungsi Lambda yang diterapkan selama pengujian validasi. 

# Buat file untuk fungsi Lambda Anda
<a name="tutorial-lambda-sam-create-lambda-function"></a>

Buat file untuk fungsi yang Anda perbarui dan terapkan nanti dalam tutorial ini.

**catatan**  
 Fungsi Lambda dapat menggunakan runtime apa pun yang didukung oleh. AWS Lambda Untuk informasi selengkapnya, lihat [runtime AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). 

**Untuk membuat fungsi Lambda Anda**

1.  Buat file teks dan simpan seperti `myDateTimeFunction.js` di `SAM-Tutorial` direktori. 

1.  Salin kode Node.js berikut ke dalam`myDateTimeFunction.js`. 

   

   ```
   'use strict';
       
       exports.handler = function(event, context, callback) {
       
         if (event.body) {
           event = JSON.parse(event.body);
         }
       
         var sc; // Status code
         var result = ""; // Response payload
       
         switch(event.option) {
           case "date": 
             switch(event.period) {
               case "yesterday":
                 result = setDateResult("yesterday");
                 sc = 200;
                 break;
               case "today":
                 result = setDateResult();
                 sc = 200;
                 break;
               case "tomorrow":
                 result = setDateResult("tomorrow");
                 sc = 200;
                 break;
               default:
                 result = {
                   "error": "Must specify 'yesterday', 'today', or 'tomorrow'."
                 };
                 sc = 400;
                 break;
             }
             break;
             
       /*      Later in this tutorial, you update this function by uncommenting 
               this section. The framework created by AWS SAM detects the update 
               and triggers a deployment by CodeDeploy. The deployment shifts 
               production traffic to the updated version of this function.
               
               case "time":
               var d = new Date();
               var h = d.getHours();
               var mi = d.getMinutes();
               var s = d.getSeconds();
       
               result = {
                 "hour": h,
                 "minute": mi,
                 "second": s
               };
               sc = 200;
               break;
       */
             default:
               result = {
                 "error": "Must specify 'date' or 'time'."
               };
               sc = 400;
             break;
         }
       
         const response = {
           statusCode: sc,
           headers: { "Content-type": "application/json" },
           body: JSON.stringify( result )
         };
       
         callback(null, response);
       
         function setDateResult(option) {
       
           var d = new Date(); // Today
           var mo; // Month
           var da; // Day
           var y; // Year
       
           switch(option) {
             case "yesterday":
               d.setDate(d.getDate() - 1);
               break;
             case "tomorrow":
               d.setDate(d.getDate() + 1);
             default:
              break;
           }
       
           mo = d.getMonth() + 1; // Months are zero offset (0-11)
           da = d.getDate();
           y = d.getFullYear();
       
           result = {
             "month": mo,
             "day": da,
             "year": y
           };
       
           return result;
         }
       };
   ```

Fungsi Lambda mengembalikan hari, bulan, dan tahun untuk kemarin, hari ini, atau besok. Kemudian dalam tutorial ini, Anda menghapus kode komentar yang memperbarui fungsi untuk mengembalikan informasi tentang hari atau waktu yang Anda tentukan (misalnya, hari, bulan, dan tahun, atau jam, menit, dan detik saat ini). Kerangka kerja yang dibuat oleh AWS SAM mendeteksi dan menyebarkan versi fungsi yang diperbarui. 

**catatan**  
 Fungsi Lambda ini juga digunakan dalam tutorial. AWS Cloud9 AWS Cloud9 adalah lingkungan pengembangan terintegrasi berbasis cloud. Untuk informasi tentang cara membuat, mengeksekusi, memperbarui, dan men-debug fungsi ini AWS Cloud9, lihat [AWS Lambda tutorial untuk AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/tutorial-lambda.html). 

# Buat file untuk fungsi BeforeAllowTraffic Lambda Anda
<a name="tutorial-lambda-sam-create-lambda-before-traffic"></a>

Buat file untuk fungsi Lambda `beforeAllowTraffic` hook Anda.

1.  Buat file teks dan simpan seperti `beforeAllowTraffic.js` di `SAM-Tutorial` direktori. 

1.  Salin kode Node.js berikut ke dalam`beforeAllowTraffic.js`. Fungsi ini dijalankan selama hook penerapan Anda. `BeforeAllowTraffic` 

   ```
   'use strict';
       
       const AWS = require('aws-sdk'); 
       const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'});
       var lambda = new AWS.Lambda();
       
       exports.handler = (event, context, callback) => {
       
       	console.log("Entering PreTraffic Hook!");
       	
       	// Read the DeploymentId and LifecycleEventHookExecutionId from the event payload
         var deploymentId = event.DeploymentId;
       	var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
       
       	var functionToTest = process.env.NewVersion;
       	console.log("BeforeAllowTraffic hook tests started");
       	console.log("Testing new function version: " + functionToTest);
       
       	// Create parameters to pass to the updated Lambda function that
       	// include the newly added "time" option. If the function did not
       	// update, then the "time" option is invalid and function returns
       	// a statusCode of 400 indicating it failed.
       	var lambdaParams = {
       		FunctionName: functionToTest,    
       		Payload: "{\"option\": \"time\"}", 
       		InvocationType: "RequestResponse"
       	};
       
       	var lambdaResult = "Failed";
       	// Invoke the updated Lambda function.
       	lambda.invoke(lambdaParams, function(err, data) {
       		if (err){	// an error occurred
       			console.log(err, err.stack);
       			lambdaResult = "Failed";
       		}
       		else{	// successful response
       			var result = JSON.parse(data.Payload);
       			console.log("Result: " +  JSON.stringify(result));
             console.log("statusCode: " + result.statusCode);
             
             // Check if the status code returned by the updated
             // function is 400. If it is, then it failed. If 
             // is not, then it succeeded.
       			if (result.statusCode != "400"){
               console.log("Validation succeeded");
       				lambdaResult = "Succeeded";
             }
             else {
               console.log("Validation failed");
             }
       
       			// Complete the PreTraffic Hook by sending CodeDeploy the validation status
       			var params = {
       				deploymentId: deploymentId,
       				lifecycleEventHookExecutionId: lifecycleEventHookExecutionId,
       				status: lambdaResult // status can be 'Succeeded' or 'Failed'
       			};
       			
       			// Pass CodeDeploy the prepared validation test results.
       			codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) {
       				if (err) {
       					// Validation failed.
       					console.log("CodeDeploy Status update failed");
       					console.log(err, err.stack);
       					callback("CodeDeploy Status update failed");
       				} else {
       					// Validation succeeded.
       					console.log("CodeDeploy status updated successfully");
       					callback(null, "CodeDeploy status updated successfully");
       				}
       			});
       		}  
       	});
       }
   ```

# Buat file untuk fungsi AfterAllowTraffic Lambda Anda
<a name="tutorial-lambda-sam-create-lambda-after-traffic"></a>

Buat file untuk fungsi Lambda `afterAllowTraffic` hook Anda.

1.  Buat file teks dan simpan seperti `afterAllowTraffic.js` di `SAM-Tutorial` direktori. 

1.  Salin kode Node.js berikut ke dalam`afterAllowTraffic.js`. Fungsi ini dijalankan selama hook penerapan Anda. `AfterAllowTraffic` 

   ```
   'use strict';
       
       const AWS = require('aws-sdk');
       const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'});
       var lambda = new AWS.Lambda();
       
       exports.handler = (event, context, callback) => {
       
       	console.log("Entering PostTraffic Hook!");
       	
       	// Read the DeploymentId and LifecycleEventHookExecutionId from the event payload
         var deploymentId = event.DeploymentId;
       	var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
       
       	var functionToTest = process.env.NewVersion;
       	console.log("AfterAllowTraffic hook tests started");
       	console.log("Testing new function version: " + functionToTest);
       
       	// Create parameters to pass to the updated Lambda function that
       	// include the original "date" parameter. If the function did not 
       	// update as expected, then the "date" option might be invalid. If 
       	// the parameter is invalid, the function returns
       	// a statusCode of 400 indicating it failed.
       	var lambdaParams = {
       		FunctionName: functionToTest,    
       		Payload: "{\"option\": \"date\", \"period\": \"today\"}", 
       		InvocationType: "RequestResponse"
       	};
       
       	var lambdaResult = "Failed";
       	// Invoke the updated Lambda function.
       	lambda.invoke(lambdaParams, function(err, data) {
       		if (err){	// an error occurred
       			console.log(err, err.stack);
       			lambdaResult = "Failed";
       		}
       		else{	// successful response
       			var result = JSON.parse(data.Payload);
       			console.log("Result: " +  JSON.stringify(result));
             console.log("statusCode: " + result.statusCode);
             
             // Check if the status code returned by the updated
             // function is 400. If it is, then it failed. If 
             // is not, then it succeeded.
       			if (result.statusCode != "400"){
               console.log("Validation of time parameter succeeded");
       				lambdaResult = "Succeeded";
             }
             else {
               console.log("Validation failed");
             }
       
       			// Complete the PostTraffic Hook by sending CodeDeploy the validation status
       			var params = {
       				deploymentId: deploymentId,
       				lifecycleEventHookExecutionId: lifecycleEventHookExecutionId,
       				status: lambdaResult // status can be 'Succeeded' or 'Failed'
       			};
       			
       			// Pass CodeDeploy the prepared validation test results.
       			codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) {
       				if (err) {
       					// Validation failed.
       					console.log("CodeDeploy Status update failed");
       					console.log(err, err.stack);
       					callback("CodeDeploy Status update failed");
       				} else {
       					// Validation succeeded.
       					console.log("CodeDeploy status updated successfully");
       					callback(null, "CodeDeploy status updated successfully");
       				}
       			});
       		}  
       	});
       }
   ```

# Package aplikasi AWS SAM
<a name="tutorial-lambda-sam-package"></a>

 Anda sekarang harus memiliki empat file di `SAM-Tutorial` direktori Anda: 
+ `beforeAllowTraffic.js`
+ `afterAllowTraffic.js`
+ `myDateTimeFunction.js`
+ `template.yml`

 Anda sekarang siap menggunakan **sam package** perintah AWS SAM untuk membuat dan mengemas artefak untuk fungsi CodeDeploy dan aplikasi Lambda Anda. Artefak diunggah ke ember S3. Output dari perintah adalah file baru bernama`package.yml`. File ini digunakan oleh **sam deploy** perintah AWS SAM pada langkah berikutnya. 

**catatan**  
 Untuk informasi selengkapnya tentang **sam package** perintah, lihat [referensi perintah AWS SAM CLI di Panduan AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) *Pengembang*. 

 Di `SAM-Tutorial` direktori, jalankan yang berikut ini. 

```
sam package \
  --template-file template.yml \
  --output-template-file package.yml \
  --s3-bucket amzn-s3-demo-bucket
```

Untuk `s3-bucket` parameternya, tentukan bucket Amazon S3 yang Anda buat sebagai prasyarat untuk tutorial ini. `output-template-file`Menentukan nama file baru yang digunakan oleh **sam deploy** perintah AWS SAM.

# Menyebarkan aplikasi AWS SAM
<a name="tutorial-lambda-sam-deploy"></a>

 Gunakan **sam deploy** perintah AWS SAM dengan `package.yml` file untuk membuat fungsi Lambda Anda dan CodeDeploy aplikasi dan kelompok penyebaran menggunakan. CloudFormation

**catatan**  
Untuk informasi selengkapnya tentang **sam deploy** perintah, lihat [referensi perintah AWS SAM CLI di Panduan AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) *Pengembang*. 

 Dalam `SAM-Tutorial` direktori, jalankan perintah berikut. 

```
sam deploy \
  --template-file package.yml \
  --stack-name my-date-time-app \
  --capabilities CAPABILITY_IAM
```

 `--capabilities CAPABILITY_IAM`Parameter ini diperlukan untuk mengotorisasi CloudFormation untuk membuat peran IAM. 

# (Opsional) memeriksa dan menguji infrastruktur Anda
<a name="tutorial-lambda-sam-confirm-components"></a>

 Topik ini menunjukkan cara melihat komponen infrastruktur Anda dan menguji fungsi Lambda Anda. 

**Untuk melihat hasil tumpukan Anda setelah Anda menjalankan `sam deploy`**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1.  Di panel navigasi, pilih **Stacks (Tumpukan)**. `my-date-time-app`Tumpukan muncul di bagian atas. 

1.  Pilih tab **Acara** untuk melihat acara mana yang selesai. Anda dapat melihat peristiwa saat pembuatan tumpukan sedang berlangsung. Saat pembuatan tumpukan selesai, Anda dapat melihat semua peristiwa pembuatan tumpukan. 

1.  Dengan tumpukan Anda dipilih, pilih **Resources**. Di kolom **Type**, Anda dapat melihat fungsi Lambda Anda,, `myDateTimeFunction``CodeDeployHook_beforeAllowTraffic`, dan. `CodeDeployHook_afterAllowTraffic` Kolom **ID Fisik** dari setiap fungsi Lambda Anda berisi tautan untuk melihat fungsi di konsol Lambda. 
**catatan**  
 Nama fungsi `myDateTimeFunction` Lambda ditambahkan dengan nama CloudFormation tumpukan dan memiliki pengenal yang ditambahkan ke dalamnya, jadi sepertinya. `my-date-time-app-myDateTimeFunction-123456ABCDEF` 

1. Buka CodeDeploy konsol di [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/).

1.  **Di panel navigasi, perluas **Deploy**, lalu pilih Applications.** 

1.  Anda akan melihat CodeDeploy aplikasi baru yang dibuat CloudFormation dengan nama yang dimulai dengan`my-date-time-app-ServerlessDeploymentApplication`. Pilih aplikasi ini. 

1.  Anda akan melihat grup penyebaran dengan nama yang dimulai dengan`my-date-time-app-myDateTimeFunctionDeploymentGroup`. Pilih grup penyebaran ini. 

    **Di bawah **konfigurasi Deployment**, Anda akan melihatCodeDeployDefault. LambdaLinear10 PercentEvery 1 Menit**. 

**(Opsional) untuk menguji fungsi Anda (konsol)**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1.  Dari panel navigasi, pilih `my-date-time-app-myDateTimeFunction` fungsi Anda. Di konsol, namanya berisi pengidentifikasi, jadi sepertinya`my-date-time-app-myDateTimeFunction-123456ABCDEF`. 

1.  Pilih **Uji**. 

1.  Dalam **nama Acara**, masukkan nama untuk acara pengujian Anda. 

1.  Masukkan yang berikut ini untuk acara pengujian Anda, lalu pilih **Buat**. 

   ```
   {
     "option": "date",
     "period": "today"
   }
   ```

1.  Pilih **Uji**. Anda hanya akan melihat acara pengujian Anda dalam daftar acara pengujian. 

    Untuk **hasil Eksekusi**, Anda akan melihat **berhasil.** 

1.  Di bawah **Hasil eksekusi**, perluas **Detail** untuk melihat hasilnya. Anda harus melihat bulan, hari, dan tahun saat ini. 

**(Opsional) untuk menguji fungsi Anda (AWS CLI)**

1.  Temukan ARN fungsi Lambda Anda. Itu muncul di bagian atas konsol Lambda saat Anda melihat fungsi Anda. 

1.  Jalankan perintah berikut. Ganti *your-function-arn* dengan fungsi ARN. 

   ```
   aws lambda invoke \
   --function your-function-arn \
   --cli-binary-format raw-in-base64-out \
   --payload "{\"option\": \"date\", \"period\": \"today\"}" out.txt
   ```

1.  Buka `out.txt` untuk mengonfirmasi hasilnya berisi bulan, hari, dan tahun saat ini. 