

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

# Menerapkan fungsi Lambda menggunakan in AWS CDK CloudShell
<a name="tutorial-docker-cdk-deploy"></a>

Tutorial ini menunjukkan cara menerapkan fungsi Lambda ke akun Anda menggunakan AWS Cloud Development Kit (AWS CDK) in. CloudShell

## Prasyarat
<a name="prerequisites-docker-cdk-deploy"></a>
+ Bootstrap akun Anda untuk digunakan dengan file AWS CDK. *Untuk informasi tentang bootstrap dengan AWS CDK, lihat [Bootstrapping di Panduan Pengembang v2](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html).AWS CDK * Jika Anda belum melakukan bootstrap akun, Anda dapat menjalankannya. `cdk bootstrap` CloudShell
+ Pastikan Anda memiliki izin yang sesuai untuk menyebarkan sumber daya ke akun Anda. Izin administrator direkomendasikan.

## Prosedur Tutorial
<a name="tutorial-docker-cdk-deploy-steps"></a>

Tutorial berikut menguraikan cara menerapkan fungsi Lambda berbasis kontainer Docker menggunakan in. AWS CDK CloudShell

1. Buat folder baru di direktori home Anda.

   ```
   mkdir ~/docker-cdk-tutorial
   ```

1. Arahkan ke folder yang Anda buat.

   ```
   cd ~/docker-cdk-tutorial
   ```

1. Instal AWS CDK dependensi secara lokal.

   ```
   npm install aws-cdk aws-cdk-lib
   ```  
![\[Gambar perintah yang digunakan untuk menginstal AWS CDK dependensi.\]](http://docs.aws.amazon.com/id_id/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%201-setup.png)

1. Buat AWS CDK proyek kerangka di folder yang Anda buat.

   ```
   touch cdk.json
   mkdir lib
   touch lib/docker-tutorial.js lib/Dockerfile lib/hello.js
   ```

1. Menggunakan editor teks, misalnya`nano cdk.json`, buka file dan tempel konten berikut ke dalamnya.

   ```
   {
     "app": "node lib/docker-tutorial.js"
   }
   ```

1. Buka `lib/docker-tutorial.js` file dan tempel konten berikut ke dalamnya.

   ```
   // this file defines the CDK constructs we want to deploy
   
   const { App, Stack } = require('aws-cdk-lib');
   const { DockerImageFunction, DockerImageCode } = require('aws-cdk-lib/aws-lambda');
   const path = require('path');
   
   // create an application
   const app = new App();
   
   // define stack
   class DockerTutorialStack extends Stack {
     constructor(scope, id, props) {
       super(scope, id, props);
   
       // define lambda that uses a Docker container
       const dockerfileDir = path.join(__dirname);
       new DockerImageFunction(this, 'DockerTutorialFunction', {
         code: DockerImageCode.fromImageAsset(dockerfileDir),
         functionName: 'DockerTutorialFunction',
       });
     }
   }
   
   // instantiate stack
   new DockerTutorialStack(app, 'DockerTutorialStack');
   ```

1. Buka `lib/Dockerfile` dan tempel konten berikut ke dalamnya.

   ```
   # Use a NodeJS 20.x runtime
   FROM public.ecr.aws/lambda/nodejs:20
   
   # Copy the function code to the LAMBDA_TASK_ROOT directory
   # This environment variable is provided by the lambda base image
   COPY hello.js ${LAMBDA_TASK_ROOT}
   
   # Set the CMD to the function handler
   CMD [ "hello.handler" ]
   ```

1. Buka `lib/hello.js` file dan tempel konten berikut ke dalamnya.

   ```
   // define the handler
   exports.handler = async (event) => {
     // simply return a friendly success response
     const response = {
       statusCode: 200,
       body: JSON.stringify('Hello, World!'),
     };
     return response;
   };
   ```

1. Gunakan AWS CDK CLI untuk mensintesis proyek dan menyebarkan sumber daya. Anda harus bootstrap akun Anda.

   ```
   npx cdk synth
   npx cdk deploy --require-approval never
   ```  
![\[Gambar perintah untuk menggunakan AWS CDK CLI untuk mensintesis proyek dan menyebarkan sumber daya.\]](http://docs.aws.amazon.com/id_id/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%203-cdk-deploy-build.png)

1. Panggil fungsi Lambda untuk mengonfirmasi dan memverifikasinya.

   ```
   aws lambda invoke --function-name DockerTutorialFunction out.json
   jq . out.json
   ```  
![\[Gambar perintah yang digunakan untuk memanggil fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%205-lambda-invoke.png)

   Anda sekarang telah berhasil menerapkan fungsi Lambda berbasis kontainer Docker menggunakan. AWS CDK Untuk informasi selengkapnya AWS CDK, lihat [Panduan Pengembang AWS CDK v2](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html). Jika Anda mengalami kesalahan atau mengalami masalah saat mencoba menyelesaikan tutorial ini, lihat bagian [Pemecahan Masalah](https://docs.aws.amazon.com/cloudshell/latest/userguide/troubleshooting.html) dari panduan ini untuk mendapatkan bantuan.

## Bersihkan
<a name="clean-up-docker-cdk-deploy"></a>

Anda sekarang telah berhasil menerapkan fungsi Lambda berbasis kontainer Docker menggunakan. AWS CDK Di dalam AWS CDK proyek, jalankan perintah berikut untuk menghapus sumber daya terkait. Anda akan diminta untuk mengkonfirmasi penghapusan.
+ 

  ```
  npx cdk destroy DockerTutorialStack
  ```
+ Untuk menghapus file dan sumber daya yang Anda buat dalam tutorial ini dari AWS CloudShell lingkungan Anda, jalankan perintah berikut.

  ```
  cd ~
  rm -rf ~/docker-cli-tutorial
  ```