

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

# Jalankan build pada komputasi AWS Lambda
<a name="lambda"></a>

AWS Lambda compute menawarkan kecepatan start-up yang dioptimalkan untuk build Anda. AWS Lambda mendukung build yang lebih cepat karena latensi start-up yang lebih rendah. AWS Lambda juga secara otomatis menskalakan, jadi build tidak menunggu dalam antrian untuk dijalankan. Namun, ada beberapa kasus penggunaan yang AWS Lambda tidak mendukung, dan jika berdampak pada Anda, gunakan komputasi EC2. Untuk informasi selengkapnya, lihat [Keterbatasan AWS Lambda komputasi](#lambda.limitations).

**Topics**
+ [

## Alat dan runtime mana yang akan disertakan dalam gambar docker lingkungan runtime yang dikuratori yang berjalan? AWS Lambda
](#lambda.tools)
+ [

## Bagaimana jika gambar yang dikuratori tidak menyertakan alat yang saya butuhkan?
](#lambda.custom)
+ [

## Wilayah mana yang mendukung AWS Lambda komputasi? CodeBuild
](#lambda.regions)
+ [

## Keterbatasan AWS Lambda komputasi
](#lambda.limitations)
+ [

# Menyebarkan fungsi Lambda menggunakan AWS SAM dengan CodeBuild Lambda Java
](sample-lambda-sam-gradle.md)
+ [

# Buat aplikasi React satu halaman dengan CodeBuild Lambda Node.js
](sample-lambda-react-nodejs.md)
+ [

# Perbarui konfigurasi fungsi Lambda dengan CodeBuild Lambda Python
](sample-lambda-boto3-python.md)

## Alat dan runtime mana yang akan disertakan dalam gambar docker lingkungan runtime yang dikuratori yang berjalan? AWS Lambda
<a name="lambda.tools"></a>

AWS Lambda mendukung alat-alat berikut: AWS CLI v2, AWS SAM CLI, git, go, Java, Node.js, Python, pip, Ruby, dan.NET.

## Bagaimana jika gambar yang dikuratori tidak menyertakan alat yang saya butuhkan?
<a name="lambda.custom"></a>

Jika gambar yang dikurasi tidak menyertakan alat yang Anda butuhkan, Anda dapat menyediakan gambar Docker lingkungan khusus yang menyertakan alat yang diperlukan.

**catatan**  
Lambda tidak mendukung fungsi yang menggunakan gambar kontainer multi-arsitektur. Untuk informasi selengkapnya, lihat [Membuat fungsi Lambda menggunakan gambar kontainer](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs) di Panduan *AWS Lambda Pengembang*.

Perhatikan bahwa Anda memerlukan izin Amazon ECR berikut untuk menggunakan gambar kustom untuk komputasi Lambda:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/image-repo"
        }
    ]
}
```

------

Perhatikan juga bahwa `curl` atau `wget` harus diinstal untuk menggunakan gambar khusus.

## Wilayah mana yang mendukung AWS Lambda komputasi? CodeBuild
<a name="lambda.regions"></a>

Pada tahun CodeBuild, AWS Lambda komputasi didukung sebagai berikut Wilayah AWS: AS Timur (Virginia N.), AS Timur (Ohio), AS Barat (Oregon), Asia Pasifik (Mumbai), Asia Pasifik (Singapura), Asia Pasifik (Sydney), Asia Pasifik (Tokyo), Eropa (Frankfurt), Eropa (Irlandia), dan Amerika Selatan (São Paulo). Untuk informasi selengkapnya tentang Wilayah AWS tempat CodeBuild tersedia, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Keterbatasan AWS Lambda komputasi
<a name="lambda.limitations"></a>

Ada beberapa kasus penggunaan yang AWS Lambda tidak mendukung, dan jika memengaruhi Anda, gunakan komputasi EC2:
+ AWS Lambda tidak mendukung alat yang memerlukan izin root. Untuk alat seperti `yum` atau`rpm`, gunakan jenis komputasi EC2 atau alat lain yang tidak memerlukan izin root.
+ AWS Lambda tidak mendukung build atau run Docker.
+ AWS Lambda tidak mendukung penulisan ke file di luar`/tmp`. Manajer paket yang disertakan dikonfigurasi untuk menggunakan `/tmp` direktori secara default untuk mengunduh dan mereferensikan paket.
+ AWS Lambda tidak mendukung jenis lingkungan `LINUX_GPU_CONTAINER` dan tidak didukung pada Windows Server Core 2019.
+ AWS Lambda tidak mendukung caching, batas waktu pembuatan kustom, batas waktu antrian, lencana build, mode istimewa, lingkungan runtime kustom, atau runtime lebih dari 15 menit.
+ AWS Lambda tidak mendukung konektivitas VPC, rentang tetap alamat IP CodeBuild sumber, EFS, menginstal sertifikat, atau akses SSH dengan Session Manager.

# Menyebarkan fungsi Lambda menggunakan AWS SAM dengan CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle"></a>

The AWS Serverless Application Model (AWS SAM) adalah kerangka kerja sumber terbuka untuk membangun aplikasi tanpa server. Untuk informasi selengkapnya, lihat [AWS Serverless Application Model repositori](https://github.com/aws/serverless-application-model) di. GitHub Contoh Java berikut menggunakan Gradle untuk membangun dan menguji AWS Lambda fungsi. Setelah itu, AWS SAM CLI digunakan untuk menyebarkan CloudFormation template dan bundel penerapan. Dengan menggunakan CodeBuild Lambda, langkah-langkah pembuatan, pengujian, dan penerapan semuanya ditangani secara otomatis, memungkinkan infrastruktur diperbarui dengan cepat tanpa intervensi manual dalam satu build.

## Siapkan AWS SAM repositori Anda
<a name="sample-lambda-sam-gradle.set-up-repo"></a>

Buat AWS SAM `Hello World` proyek menggunakan AWS SAM CLI.

**Untuk membuat AWS SAM Proyek Anda**

1. Ikuti petunjuk di *Panduan AWS Serverless Application Model Pengembang* untuk [Menginstal AWS SAM CLI di mesin](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) lokal Anda.

1. Jalankan `sam init` dan pilih konfigurasi proyek berikut.

   ```
   Which template source would you like to use?: 1 - AWS Quick Start Templates
   Choose an AWS Quick Start application template: 1 - Hello World Example
   Use the most popular runtime and package type? (Python and zip) [y/N]: N
   Which runtime would you like to use?: 8 - java21
   What package type would you like to use?: 1 - Zip
   Which dependency manager would you like to use?: 1 - gradle
   Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N
   Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N
   Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]:  N
   Project name [sam-app]: <insert project name>
   ```

1. Unggah folder AWS SAM proyek ke repositori sumber yang didukung. Untuk daftar jenis sumber yang didukung, lihat [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Buat proyek CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle.create-project"></a>

Buat proyek AWS CodeBuild Lambda Java dan siapkan izin IAM yang diperlukan untuk build.

**Untuk membuat proyek CodeBuild Lambda Java Anda**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini. Membangun nama proyek harus unik di setiap AWS akun. Anda juga dapat menyertakan deskripsi opsional proyek build untuk membantu pengguna lain memahami tujuan proyek ini.

1. Di **Sumber**, pilih repositori sumber tempat AWS SAM proyek Anda berada.

1. Di **Lingkungan**:
   + Untuk **Compute**, pilih **Lambda**.
   + Untuk **Runtime**, pilih **Java**.
   + Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-lambda-standard:corretto21**.
   + Untuk **peran Layanan**, biarkan **peran Layanan baru** dipilih. Catat **nama Peran**. Ini akan diperlukan saat Anda memperbarui izin IAM proyek nanti dalam sampel ini.

1. Pilih **Buat proyek build**.

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

1. Di panel navigasi, pilih **Peran dan pilih peran** layanan yang terkait dengan proyek Anda. Anda dapat menemukan peran proyek Anda CodeBuild dengan memilih proyek build, memilih **Edit**, **Lingkungan**, dan kemudian **peran Layanan**.

1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

1. Tambahkan kebijakan inline berikut ke peran IAM Anda. Ini akan digunakan untuk menyebarkan AWS SAM infrastruktur Anda nanti. Untuk informasi lebih lanjut, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dalam *Panduan Pengguna IAM*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:*",
                   "lambda:*",
                   "iam:*",
                   "apigateway:*",
                   "s3:*"
               ],
               "Resource": "arn:aws:iam::*:role/Service*"
           }
       ]
   }
   ```

------

## Siapkan proyek buildspec
<a name="sample-lambda-sam-gradle.set-up-buildspec"></a>

Untuk membangun, menguji, dan menerapkan fungsi Lambda Anda CodeBuild , membaca dan mengeksekusi perintah build dari buildspec.

**Untuk menyiapkan buildspec proyek Anda**

1. Di CodeBuild konsol, pilih proyek build Anda, lalu pilih **Edit** dan **Buildspec**.

1. Di **Buildspec**, pilih **Sisipkan perintah build** dan kemudian **Beralih ke** editor.

1. Hapus perintah build yang telah diisi sebelumnya dan tempel di buildspec berikut.

   ```
   version: 0.2
   env:
     variables:
       GRADLE_DIR: "HelloWorldFunction"
   phases:
     build:
       commands:
         - echo "Running unit tests..."
         - cd $GRADLE_DIR; gradle test; cd ..
         - echo "Running build..."
         - sam build --template-file template.yaml
         - echo "Running deploy..."
         - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml
         - yes | sam deploy
   ```

1. Pilih **Perbarui buildspec**.

## Terapkan infrastruktur AWS SAM Lambda Anda
<a name="sample-lambda-sam-gradle.deploy"></a>

Gunakan CodeBuild Lambda untuk menyebarkan infrastruktur Lambda Anda secara otomatis

**Untuk menyebarkan infrastruktur Lambda Anda**

1. Pilih **Mulai membangun**. Ini akan secara otomatis membangun, menguji, dan menyebarkan AWS SAM aplikasi Anda untuk AWS Lambda digunakan CloudFormation.

1. Setelah build selesai, navigasikan ke AWS Lambda konsol dan cari fungsi Lambda baru Anda di bawah nama AWS SAM proyek.

1. Uji fungsi Lambda Anda dengan memilih **API Gateway** di bawah ikhtisar **Fungsi**, lalu mengklik URL titik **akhir API**. Anda akan melihat halaman terbuka dengan pesan`"message": "hello world"`.

## Bersihkan infrastruktur Anda
<a name="sample-lambda-sam-gradle.clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat oleh AWS SAM template Anda dan CodeBuild.

**Untuk membersihkan infrastruktur Anda**

1. Arahkan ke CloudFormation konsol dan pilih`aws-sam-cli-managed-default`.

1. Di **Resources**, kosongkan bucket `SamCliSourceBucket` penerapan.

1. Hapus `aws-sam-cli-managed-default` tumpukan.

1. Hapus CloudFormation tumpukan yang terkait dengan AWS SAM proyek Anda. Tumpukan ini harus memiliki nama yang sama dengan AWS SAM proyek Anda.

1. Arahkan ke CloudWatch konsol dan hapus grup CloudWatch log yang terkait dengan CodeBuild proyek Anda.

1. Arahkan ke CodeBuild konsol dan hapus CodeBuild proyek Anda dengan memilih **Delete build project**.

# Buat aplikasi React satu halaman dengan CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs"></a>

[Create React App](https://create-react-app.dev/) adalah cara untuk membuat aplikasi React satu halaman. Contoh Node.js berikut menggunakan Node.js untuk membangun artefak sumber dari Create React App dan mengembalikan artefak build.

## Siapkan ember repositori dan artefak sumber Anda
<a name="sample-lambda-react-nodejs.set-up-repo"></a>

Buat repositori sumber untuk proyek Anda menggunakan yarn dan Create React App.

**Untuk mengatur repositori sumber dan ember artefak**

1. Di mesin lokal Anda, jalankan `yarn create react-app <app-name>` untuk membuat aplikasi React sederhana.

1. Unggah folder proyek aplikasi React ke repositori sumber yang didukung. Untuk daftar jenis sumber yang didukung, lihat [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Buat proyek CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs.create-project"></a>

Buat proyek AWS CodeBuild Lambda Node.js.

**Untuk membuat proyek CodeBuild Lambda Node.js Anda**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini. Membangun nama proyek harus unik di setiap AWS akun. Anda juga dapat menyertakan deskripsi opsional proyek build untuk membantu pengguna lain memahami tujuan proyek ini.

1. Di **Sumber**, pilih repositori sumber tempat AWS SAM proyek Anda berada.

1. Di **Lingkungan**:
   + Untuk **Compute**, pilih **Lambda**.
   + Untuk **Runtime**, pilih **Node.js**.
   + Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-lambda-standard:nodejs20**.

1. Dalam **Artefak**:
   + Untuk **Jenis**, pilih **Amazon S3**.
   + Untuk **nama Bucket**, pilih bucket artefak proyek yang Anda buat sebelumnya.
   + Untuk **kemasan Artefak**, pilih **Zip**.

1. Pilih **Buat proyek build**.

## Siapkan proyek buildspec
<a name="sample-lambda-react-nodejs.set-up-buildspec"></a>

Untuk membangun aplikasi React Anda, CodeBuild membaca dan mengeksekusi perintah build dari file buildspec.

**Untuk menyiapkan buildspec proyek Anda**

1. Di CodeBuild konsol, pilih proyek build Anda, lalu pilih **Edit** dan **Buildspec**.

1. Di **Buildspec**, pilih **Sisipkan perintah build** dan kemudian **Beralih ke** editor.

1. Hapus perintah build yang telah diisi sebelumnya dan tempel di buildspec berikut.

   ```
   version: 0.2
   phases:
     build:
       commands:
         - yarn
         - yarn add --dev jest-junit @babel/plugin-proposal-private-property-in-object
         - yarn run build
         - yarn run test -- --coverage --watchAll=false --testResultsProcessor="jest-junit" --detectOpenHandles
   artifacts:
     name: "build-output"
     files:
       - "**/*"
   reports:
     test-report:
       files:
         - 'junit.xml'
       file-format: 'JUNITXML'
     coverage-report:
       files:
         - 'coverage/clover.xml'
       file-format: 'CLOVERXML'
   ```

1. Pilih **Perbarui buildspec**.

## Membangun dan menjalankan aplikasi React Anda
<a name="sample-lambda-react-nodejs.build"></a>

Bangun aplikasi React di CodeBuild Lambda, unduh artefak build, dan jalankan aplikasi React secara lokal.

**Untuk membangun dan menjalankan aplikasi React Anda**

1. Pilih **Mulai membangun**.

1. Setelah build selesai, navigasikan ke bucket artefak proyek Amazon S3 Anda dan unduh artefak aplikasi React.

1. Buka zip artefak build React dan `run npm install -g serve && serve -s build` di folder proyek.

1. `serve`Perintah akan melayani situs statis pada port lokal dan mencetak output ke terminal Anda. Anda dapat mengunjungi URL localhost `Local:` di bawah output terminal untuk melihat aplikasi React Anda.

Untuk mempelajari lebih lanjut tentang cara menangani deployment untuk server berbasis React, lihat [Membuat Penerapan Aplikasi React](https://create-react-app.dev/docs/deployment/).

## Bersihkan infrastruktur Anda
<a name="sample-lambda-react-nodejs.clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat untuk CodeBuild proyek Anda.

**Untuk membersihkan infrastruktur Anda**

1. Hapus artefak proyek Anda Amazon S3 bucket

1. Arahkan ke CloudWatch konsol dan hapus grup CloudWatch log yang terkait dengan CodeBuild proyek Anda.

1. Arahkan ke CodeBuild konsol dan hapus CodeBuild project Anda dengan memilih **Delete build project**.

# Perbarui konfigurasi fungsi Lambda dengan CodeBuild Lambda Python
<a name="sample-lambda-boto3-python"></a>

Contoh Python berikut menggunakan [Boto3](https://aws.amazon.com/sdk-for-python/) dan Lambda Python untuk memperbarui konfigurasi fungsi CodeBuild Lambda. Sampel ini dapat diperluas untuk mengelola AWS sumber daya lain secara terprogram. Untuk informasi selengkapnya, lihat [dokumentasi Boto3](https://aws.amazon.com/sdk-for-python/).

## Prasyarat
<a name="sample-lambda-boto3-python.prerequisites"></a>

Buat atau temukan fungsi Lambda di akun Anda.

Contoh ini mengasumsikan bahwa Anda telah membuat fungsi Lambda di akun Anda dan akan CodeBuild digunakan untuk memperbarui variabel lingkungan fungsi Lambda. Untuk informasi selengkapnya tentang pengaturan fungsi Lambda CodeBuild, lihat [Menyebarkan fungsi Lambda menggunakan AWS SAM dengan CodeBuild Lambda Java](sample-lambda-sam-gradle.md) sampel atau kunjungi. [AWS Lambda](https://aws.amazon.com/lambda/)

## Siapkan repositori sumber Anda
<a name="sample-lambda-boto3-python.set-up-repo"></a>

Buat repositori sumber untuk menyimpan skrip python Boto3 Anda.

**Untuk mengatur repositori sumber**

1. Salin script python berikut ke file baru bernama`update_lambda_environment_variables.py`.

   ```
   import boto3
   from os import environ
   
   
   def update_lambda_env_variable(lambda_client):
       lambda_function_name = environ['LAMBDA_FUNC_NAME']
       lambda_env_variable = environ['LAMBDA_ENV_VARIABLE']
       lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE']
       print("Updating lambda function " + lambda_function_name + " environment variable "
             + lambda_env_variable + " to " + lambda_env_variable_value)
       lambda_client.update_function_configuration(
           FunctionName=lambda_function_name,
           Environment={
               'Variables': {
                   lambda_env_variable: lambda_env_variable_value
               }
           },
       )
   
   
   if __name__ == "__main__":
       region = environ['AWS_REGION']
       client = boto3.client('lambda', region)
       update_lambda_env_variable(client)
   ```

1. Unggah file python ke repositori sumber yang didukung. Untuk daftar jenis sumber yang didukung, lihat [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Buat proyek CodeBuild Lambda Python
<a name="sample-lambda-boto3-python.create-project"></a>

Buat proyek CodeBuild Lambda Python.

**Untuk membuat proyek CodeBuild Lambda Java Anda**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini. Membangun nama proyek harus unik di setiap AWS akun. Anda juga dapat menyertakan deskripsi opsional proyek build untuk membantu pengguna lain memahami tujuan proyek ini.

1. Di **Sumber**, pilih repositori sumber tempat AWS SAM proyek Anda berada.

1. Di **Lingkungan**:
   + Untuk **Compute**, pilih **Lambda**.
   + Untuk **Runtime**, pilih **Python**.
   + Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-lambda-standard:python3.12**.
   + Untuk **peran Layanan**, biarkan **peran Layanan baru** dipilih. Catat **nama Peran**. Ini akan diperlukan saat Anda memperbarui izin IAM proyek nanti dalam sampel ini.

1. Pilih **Buat proyek build**.

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

1. Di panel navigasi, pilih **Peran dan pilih peran** layanan yang terkait dengan proyek Anda. Anda dapat menemukan peran proyek Anda CodeBuild dengan memilih proyek build, memilih **Edit**, **Lingkungan**, dan kemudian **peran Layanan**.

1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

1. Tambahkan kebijakan inline berikut ke peran IAM Anda. Ini akan digunakan untuk menyebarkan AWS SAM infrastruktur Anda nanti. Untuk informasi lebih lanjut, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dalam *Panduan Pengguna IAM*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "UpdateLambdaPermissions",
               "Effect": "Allow",
               "Action": [
                   "lambda:UpdateFunctionConfiguration"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

## Siapkan proyek buildspec
<a name="sample-lambda-boto3-python.set-up-buildspec"></a>

Untuk memperbarui fungsi Lambda, skrip membaca variabel lingkungan dari buildspec untuk menemukan nama fungsi Lambda, nama variabel lingkungan, dan nilai variabel lingkungan.

**Untuk menyiapkan buildspec proyek Anda**

1. Di CodeBuild konsol, pilih proyek build Anda, lalu pilih **Edit** dan **Buildspec**.

1. Di **Buildspec**, pilih **Sisipkan perintah build** dan kemudian **Beralih ke** editor.

1. Hapus perintah build yang telah diisi sebelumnya dan tempel di buildspec berikut.

   ```
   version: 0.2
   env:
     variables:
       LAMBDA_FUNC_NAME: "<lambda-function-name>"
       LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED"
       LAMBDA_ENV_VARIABLE_VALUE: "true"
   phases:
     install:
       commands:
          - pip3 install boto3
     build:
       commands:
          - python3 update_lambda_environment_variables.py
   ```

1. Pilih **Perbarui buildspec**.

## Perbarui konfigurasi Lambda Anda
<a name="sample-lambda-boto3-python.update"></a>

Gunakan CodeBuild Lambda Python untuk memperbarui konfigurasi fungsi Lambda Anda secara otomatis.

**Untuk memperbarui konfigurasi fungsi Lambda**

1. Pilih **Mulai membangun**.

1. Setelah build selesai, navigasikan ke fungsi Lambda Anda.

1. Pilih **Konfigurasi** dan kemudian variabel **Lingkungan**. Anda akan melihat variabel lingkungan baru dengan kunci `FEATURE_ENABLED` dan nilai`true`.

## Bersihkan Infrastruktur Anda
<a name="sample-lambda-boto3-python.clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat untuk CodeBuild proyek Anda.

**Untuk Membersihkan Infrastruktur Anda**

1. Arahkan ke CloudWatch konsol dan hapus grup CloudWatch log yang terkait dengan CodeBuild proyek Anda.

1. Arahkan ke CodeBuild konsol dan hapus CodeBuild project Anda dengan memilih **Delete build project**.

1. Jika Anda membuat fungsi Lambda untuk tujuan sampel ini, pilih fungsi **Tindakan** dan **Hapus untuk membersihkan fungsi** Lambda Anda.

## Ekstensi
<a name="sample-lambda-boto3-python.extensions"></a>

Jika Anda ingin memperluas sampel ini untuk mengelola AWS sumber daya lain menggunakan AWS CodeBuild Lambda Python:
+ Perbarui skrip Python untuk memodifikasi sumber daya baru menggunakan Boto3.
+ Perbarui peran IAM yang terkait dengan CodeBuild proyek Anda agar memiliki izin untuk sumber daya baru.
+ Tambahkan variabel lingkungan baru yang terkait dengan sumber daya baru ke buildspec Anda.