Tutorial: Menyebarkan fungsi Lambda menggunakan AWS CDK - AWS CloudShell

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

Tutorial: Menyebarkan fungsi Lambda menggunakan AWS CDK

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

Prasyarat

  • Bootstrap akun Anda untuk digunakan dengan fileAWS CDK. Untuk informasi tentang bootstrap denganAWS CDK, lihat Bootstrapping di Panduan Pengembang v2. 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

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

  1. Buat folder baru di direktori home Anda.

    mkdir ~/docker-cdk-tutorial
  2. Arahkan ke folder yang Anda buat.

    cd ~/docker-cdk-tutorial
  3. Instal AWS CDK dependensi secara lokal.

    npm install aws-cdk aws-cdk-lib
    Gambar perintah yang digunakan untuk menginstal AWS CDK dependensi.
  4. 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
  5. Menggunakan editor teks, misalnyanano cdk.json, buka file dan tempel konten berikut ke dalamnya.

    { "app": "node lib/docker-tutorial.js" }
  6. 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');
  7. 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" ]
  8. 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; };
  9. 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.
  10. 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.

    Anda sekarang telah berhasil menerapkan fungsi Lambda berbasis kontainer Docker menggunakan. AWS CDK Untuk informasi selengkapnyaAWS CDK, lihat Panduan Pengembang AWS CDK v2. Jika Anda mengalami kesalahan atau mengalami masalah saat mencoba menyelesaikan tutorial ini, lihat bagian Pemecahan Masalah dari panduan ini untuk mendapatkan bantuan.

Bersihkan

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