

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

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

 AWS Serverless Application Model (AWS SAM) adalah kerangka kerja open-source untuk membangun aplikasi tanpa server. Untuk informasi selengkapnya, lihat [AWS Serverless Application Model repositori ](https://github.com/aws/serverless-application-model) pada GitHub. Contoh Java berikut menggunakan Gradle untuk membangun dan menguji AWS Lambda fungsi. Setelah itu, AWS SAM CLI digunakan untuk menerapkan 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
<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**

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

1. J `sam init` alankan 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 atur izin IAM yang diperlukan untuk build.

**Untuk membuat proyek CodeBuild Lambda Java**

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, per ** luas Bang ** un, pilih ** Bang ** un proyek, lalu pilih ** Buat proyek build**. 

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

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

1. Di ** Lingkungan**:
   + Untuk ** Compute**, pilih ** Lambda**.
   + Untuk ** Runtime (s)**, pilih ** Java**.
   + Untuk ** Gambar**, pilih ** aws/codebuild /amaz ** onlinux-x86\_64-lambda-standard:corretto21.
   + Untuk ** Peran Layanan**, biarkan ** Peran layanan baru ** dipilih. Catat nama ** Peran**. Anda memerlukan ini saat memperbarui izin IAM proyek nanti dalam contoh ini.

1. Pilih ** Buat proyek pembangunan**.

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

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

1. Pilih ** tab Relasi ** kepercayaan, lalu pilih ** Edit kebijakan kepercayaan**.

1. Tambahkan kebijakan sebaris 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 mengatur buildspec proyek Anda**

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

1. Di ** Buildspec**, pilih S ** isipkan perintah build ** dan kemudian Ber ** alih ke editor. **

1. Hapus perintah build yang sudah 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 Per ** barui buildspec**.

## Menyebarkan milik Anda AWS SAM Infrastruktur Lambda
<a name="sample-lambda-sam-gradle.deploy"></a>

Gunakan CodeBuild Lambda untuk secara otomatis menerapkan infrastruktur Lambda Anda

**Untuk menyebarkan infrastruktur Lambda**

1. Pilih ** Mulai membangun**. Ini akan secara otomatis membangun, menguji, dan menyebarkan AWS SAM aplikasi Anda untuk AWS Lambda menggunakan 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 I ** kh ** tisar Fungsi, lalu klik ** 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 penerapan`SamCliSourceBucket`.

1. Hapus tum `aws-sam-cli-managed-default` pukan.

1. Hapus tum CloudFormation pukan 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 H ** apus proyek build**.