

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

# Membangun fungsi Lambda dengan PowerShell
<a name="lambda-powershell"></a>

Bagian berikut menjelaskan bagaimana pola pemrograman umum dan konsep inti berlaku ketika Anda menulis kode fungsi Lambda PowerShell.

Lambda menyediakan contoh aplikasi berikut untuk: PowerShell
+ [blank-powershell](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-powershell) — PowerShell Fungsi yang menunjukkan penggunaan logging, variabel lingkungan, dan SDK. AWS 

Sebelum memulai, Anda harus terlebih dahulu mengatur lingkungan PowerShell pengembangan. Untuk petunjuk tentang cara melakukannya, lihat [Menyiapkan Lingkungan PowerShell Pembangunan](powershell-devenv.md).

Untuk mempelajari cara menggunakan AWSLambda PSCore modul untuk mengunduh PowerShell proyek sampel dari templat, membuat paket PowerShell penerapan, dan menerapkan PowerShell fungsi ke AWS Cloud, lihat. [Menyebarkan fungsi PowerShell Lambda dengan arsip file.zip](powershell-package.md)

Lambda menyediakan runtime berikut untuk bahasa.NET:


| Nama | Pengidentifikasi | Sistem operasi | Tanggal pengusangan | Buat fungsi blok | Pembaruan fungsi blok | 
| --- | --- | --- | --- | --- | --- | 
|  .NET 10  |  `dotnet10`  |  Amazon Linux 2023  |   Nov 14, 2028   |   14 Des 2028   |   15 Jan 2029   | 
|  .NET 9 (hanya wadah)  |  `dotnet9`  |  Amazon Linux 2023  |   Nov 10, 2026   |   Tidak dijadwalkan   |   Tidak dijadwalkan   | 
|  .NET 8  |  `dotnet8`  |  Amazon Linux 2023  |   Nov 10, 2026   |   10 Des 2026   |   11 Jan 2027   | 

**Topics**
+ [Menyiapkan Lingkungan PowerShell Pembangunan](powershell-devenv.md)
+ [Menyebarkan fungsi PowerShell Lambda dengan arsip file.zip](powershell-package.md)
+ [Tentukan penangan fungsi Lambda di PowerShell](powershell-handler.md)
+ [Menggunakan objek konteks Lambda untuk mengambil informasi fungsi PowerShell](powershell-context.md)
+ [Log dan pantau fungsi Powershell Lambda](powershell-logging.md)

# Menyiapkan Lingkungan PowerShell Pembangunan
<a name="powershell-devenv"></a>

Lambda menyediakan seperangkat alat dan pustaka untuk runtime. PowerShell Untuk petunjuk penginstalan, lihat [Alat Lambda untuk PowerShell aktif](https://github.com/aws/aws-lambda-dotnet/tree/master/PowerShell). GitHub

 AWSLambdaPSCore Modul ini mencakup cmdlet berikut untuk membantu penulis dan mempublikasikan fungsi Lambda PowerShell :
+ **Dapatkan- AWSPower ShellLambdaTemplate** — Mengembalikan daftar template memulai.
+ **New- AWSPower ShellLambda** — Membuat PowerShell skrip awal berdasarkan template.
+ **Publikasikan- AWSPower ShellLambda** — Menerbitkan PowerShell skrip yang diberikan ke Lambda.
+ **Baru- AWSPower ShellLambdaPackage** — Membuat paket penyebaran Lambda yang dapat Anda gunakan dalam sistem CI/CD untuk penyebaran.

# Menyebarkan fungsi PowerShell Lambda dengan arsip file.zip
<a name="powershell-package"></a>

Paket penerapan untuk PowerShell runtime berisi PowerShell skrip Anda, PowerShell modul yang diperlukan untuk PowerShell skrip Anda, dan rakitan yang diperlukan untuk meng-host Core. PowerShell 

## Buat fungsi Lambda
<a name="powershell-package-create"></a>

Untuk mulai menulis dan menjalankan PowerShell skrip dengan Lambda, Anda dapat menggunakan `New-AWSPowerShellLambda` cmdlet untuk membuat skrip pemula berdasarkan templat. Anda dapat menggunakan cmdlet `Publish-AWSPowerShellLambda` untuk men-deploy skrip Anda ke Lambda. Kemudian, Anda dapat menguji skrip Anda melalui baris perintah atau konsol Lambda.

Untuk membuat PowerShell skrip baru, unggah, dan uji, lakukan hal berikut:

1. Untuk menampilkan daftar templat yang tersedia, jalankan perintah berikut:

   ```
   PS C:\> Get-AWSPowerShellLambdaTemplate
   
   Template               Description
   --------               -----------
   Basic                  Bare bones script
   CodeCommitTrigger      Script to process AWS CodeCommit Triggers
   ...
   ```

1. Untuk membuat skrip sampel berdasarkan templat `Basic`, jalankan perintah berikut:

   ```
   New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic
   ```

   File baru bernama `MyFirstPSScript.ps1` dibuat di subdirektori baru dari direktori saat ini. Nama direktori didasarkan pada parameter `-ScriptName`. Anda dapat menggunakan parameter `-Directory` untuk memilih direktori alternatif.

   Anda dapat melihat file baru tersebut memiliki konten berikut:

   ```
   # PowerShell script file to run as a Lambda function
   # 
   # When executing in Lambda the following variables are predefined.
   #   $LambdaInput - A PSObject that contains the Lambda function input data.
   #   $LambdaContext - An Amazon.Lambda.Core.ILambdaContext object that contains information about the currently running Lambda environment.
   #
   # The last item in the PowerShell pipeline is returned as the result of the Lambda function.
   #
   # To include PowerShell modules with your Lambda function, like the AWSPowerShell.NetCore module, add a "#Requires" statement 
   # indicating the module and version.
                   
   #Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
   
   # Uncomment to send the input to CloudWatch Logs
   # Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
   ```

1. Untuk melihat bagaimana pesan log dari PowerShell skrip Anda dikirim ke Amazon CloudWatch Logs, batalkan komentar pada `Write-Host` baris skrip sampel.

   Untuk mendemonstrasikan bagaimana Anda dapat mengembalikan data dari fungsi Lambda Anda, tambahkan garis baru di akhir skrip dengan `$PSVersionTable`. Ini menambah `$PSVersionTable` ke PowerShell pipa. Setelah PowerShell skrip selesai, objek terakhir dalam PowerShell pipeline adalah data pengembalian untuk fungsi Lambda. `$PSVersionTable`adalah variabel PowerShell global yang juga memberikan informasi tentang lingkungan berjalan.

   Setelah membuat perubahan ini, dua baris terakhir dari skrip sampel akan terlihat seperti ini:

   ```
   Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
   $PSVersionTable
   ```

1. Setelah mengedit file `MyFirstPSScript.ps1`, ubah direktori ke lokasi skrip. Kemudian jalankan perintah berikut untuk menerbitkan skrip ke Lambda:

   ```
   Publish-AWSPowerShellLambda -ScriptPath .\MyFirstPSScript.ps1 -Name  MyFirstPSScript -Region us-east-2
   ```

   Perhatikan bahwa parameter `-Name` menentukan nama fungsi Lambda, yang muncul di konsol Lambda. Anda dapat menggunakan fungsi ini untuk mengaktifkan skrip Anda secara manual.

1. Memanggil fungsi Anda menggunakan `invoke` perintah AWS Command Line Interface (AWS CLI).

   ```
   > aws lambda invoke --function-name MyFirstPSScript out
   ```

# Tentukan penangan fungsi Lambda di PowerShell
<a name="powershell-handler"></a>

Ketika fungsi Lambda dipanggil, penangan Lambda memanggil skrip. PowerShell 

Saat PowerShell skrip dipanggil, variabel berikut telah ditentukan sebelumnya:
+  *\$1LambdaInput*— A PSObject yang berisi input ke handler. Input ini dapat berupa data peristiwa (diterbitkan oleh sumber peristiwa) atau input kustom yang Anda berikan, seperti string atau objek data kustom apa pun. 
+  *\$1LambdaContext*— Amazon.Lambda.Core. ILambdaObjek konteks yang dapat Anda gunakan untuk mengakses informasi tentang pemanggilan saat ini—seperti nama fungsi saat ini, batas memori, waktu eksekusi yang tersisa, dan pencatatan. 

Misalnya, perhatikan PowerShell contoh kode berikut.

```
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
Write-Host 'Function Name:' $LambdaContext.FunctionName
```

Script ini mengembalikan FunctionName properti yang diperoleh dari LambdaContext variabel \$1.

**catatan**  
Anda harus menggunakan `#Requires` pernyataan dalam PowerShell skrip Anda untuk menunjukkan modul yang menjadi sandaran skrip Anda. Pernyataan ini melakukan dua tugas penting. 1) Ini berkomunikasi dengan pengembang lain modul mana yang digunakan skrip, dan 2) mengidentifikasi modul dependen yang perlu dikemas AWS PowerShell alat dengan skrip, sebagai bagian dari penerapan. Untuk informasi selengkapnya tentang `#Requires` pernyataan di PowerShell, lihat [Tentang membutuhkan](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_requires?view=powershell-6). Untuk informasi selengkapnya tentang paket PowerShell penerapan, lihat[Menyebarkan fungsi PowerShell Lambda dengan arsip file.zip](powershell-package.md).  
Saat fungsi PowerShell Lambda Anda menggunakan AWS PowerShell cmdlet, pastikan untuk menetapkan `#Requires` pernyataan yang mereferensikan `AWSPowerShell.NetCore` modul, yang mendukung PowerShell Core—dan bukan modul, yang hanya mendukung Windows. `AWSPowerShell` PowerShell Selain itu, pastikan untuk menggunakan versi 3.3.270.0 atau yang lebih baru dari `AWSPowerShell.NetCore` yang mengoptimalkan proses impor cmdlet. Jika Anda menggunakan versi lama, Anda akan mengalami proses mulai dari awal dalam waktu yang lebih lama. Untuk informasi selengkapnya, lihat [AWS Alat untuk PowerShell](https://aws.amazon.com/powershell/?track=sdk).

## Mengembalikan data
<a name="powershell-handler-output"></a>

Beberapa invokasi Lambda dimaksudkan untuk mengembalikan data ke pemanggilnya. Misalnya, jika invokasi adalah sebagai respons terhadap permintaan web yang berasal dari API Gateway, fungsi Lambda kita harus mengembalikan respons tersebut. Untuk PowerShell Lambda, objek terakhir yang ditambahkan ke PowerShell pipeline adalah data pengembalian dari pemanggilan Lambda. Jika objek berupa string, data akan dikembalikan apa adanya. Jika tidak, objek dikonversi ke JSON dengan menggunakan cmdlet `ConvertTo-Json`.

Misalnya, perhatikan PowerShell pernyataan berikut, yang `$PSVersionTable` menambah PowerShell pipa:

```
$PSVersionTable
```

Setelah PowerShell skrip selesai, objek terakhir dalam PowerShell pipeline adalah data pengembalian untuk fungsi Lambda. `$PSVersionTable`adalah variabel PowerShell global yang juga memberikan informasi tentang lingkungan berjalan.

# Menggunakan objek konteks Lambda untuk mengambil informasi fungsi PowerShell
<a name="powershell-context"></a>

Ketika Lambda menjalankan fungsi Anda, hal ini melewati informasi konteks dengan membuat variabel `$LambdaContext` tersedia untuk [handler](powershell-handler.md). Variabel ini menyediakan metode dan properti dengan informasi tentang lingkungan invokasi, fungsi, dan eksekusi.

**Properti konteks**
+ `FunctionName` – Nama fungsi Lambda.
+ `FunctionVersion` – [Versi](configuration-versions.md) fungsi.
+ `InvokedFunctionArn` – Amazon Resource Name (ARN) yang digunakan untuk memicu fungsi. Menunjukkan jika pemicu menyebutkan nomor versi atau alias.
+ `MemoryLimitInMB` – Jumlah memori yang dialokasikan untuk fungsi tersebut.
+ `AwsRequestId` – Pengidentifikasi permintaan invokasi.
+ `LogGroupName` – Grup log untuk fungsi.
+ `LogStreamName` – Aliran log untuk instans fungsi.
+ `RemainingTime` – Jumlah milidetik yang tersisa sebelum waktu eksekusi habis.
+ `Identity` – (aplikasi seluler) Informasi tentang identitas Amazon Cognito yang mengesahkan permintaan.
+ `ClientContext` – (aplikasi seluler) Konteks klien yang disediakan untuk Lambda oleh aplikasi klien.
+ `Logger` – [Objek logger](powershell-logging.md) untuk fungsi.

Cuplikan PowerShell kode berikut menunjukkan fungsi handler sederhana yang mencetak beberapa informasi konteks. 

```
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
Write-Host 'Function name:' $LambdaContext.FunctionName
Write-Host 'Remaining milliseconds:' $LambdaContext.RemainingTime.TotalMilliseconds
Write-Host 'Log group name:' $LambdaContext.LogGroupName
Write-Host 'Log stream name:' $LambdaContext.LogStreamName
```

# Log dan pantau fungsi Powershell Lambda
<a name="powershell-logging"></a>

AWS Lambda secara otomatis memonitor fungsi Lambda atas nama Anda dan mengirim log ke Amazon. CloudWatch Fungsi Lambda Anda dilengkapi dengan grup CloudWatch log Log dan aliran log untuk setiap instance fungsi Anda. Lingkungan runtime Lambda mengirimkan detail tentang setiap invokasi ke pengaliran log, dan menyampaikan log serta output lain dari kode fungsi Anda. Untuk informasi selengkapnya, lihat [Mengirim log fungsi Lambda ke Log CloudWatch](monitoring-cloudwatchlogs.md).

Halaman ini menjelaskan cara menghasilkan keluaran log dari kode fungsi Lambda Anda, dan mengakses log menggunakan AWS Command Line Interface, konsol Lambda, atau konsol. CloudWatch 

**Topics**
+ [Membuat fungsi yang mengembalikan log](#powershell-logging-output)
+ [Melihat log di konsol Lambda](#powershell-logging-console)
+ [Melihat log di CloudWatch konsol](#powershell-logging-cwconsole)
+ [Melihat log menggunakan AWS Command Line Interface (AWS CLI)](#powershell-logging-cli)
+ [Menghapus log](#powershell-logging-delete)

## Membuat fungsi yang mengembalikan log
<a name="powershell-logging-output"></a>

[Untuk mengeluarkan log dari kode fungsi, Anda dapat menggunakan cmdlet di Microsoft. PowerShell.Utility](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility), atau modul logging apa pun yang menulis ke `stdout` atau`stderr`. Contoh berikut menggunakan `Write-Host`.

**Example [function/Handler.ps1](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-powershell/function/Handler.ps1) – Pencatatan**  

```
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
Write-Host `## Environment variables
Write-Host AWS_LAMBDA_FUNCTION_VERSION=$Env:AWS_LAMBDA_FUNCTION_VERSION
Write-Host AWS_LAMBDA_LOG_GROUP_NAME=$Env:AWS_LAMBDA_LOG_GROUP_NAME
Write-Host AWS_LAMBDA_LOG_STREAM_NAME=$Env:AWS_LAMBDA_LOG_STREAM_NAME
Write-Host AWS_EXECUTION_ENV=$Env:AWS_EXECUTION_ENV
Write-Host AWS_LAMBDA_FUNCTION_NAME=$Env:AWS_LAMBDA_FUNCTION_NAME
Write-Host PATH=$Env:PATH
Write-Host `## Event
Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 3)
```

**Example format log**  

```
START RequestId: 56639408-xmpl-435f-9041-ac47ae25ceed Version: $LATEST
Importing module ./Modules/AWSPowerShell.NetCore/3.3.618.0/AWSPowerShell.NetCore.psd1
[Information] - ## Environment variables
[Information] - AWS_LAMBDA_FUNCTION_VERSION=$LATEST
[Information] - AWS_LAMBDA_LOG_GROUP_NAME=/aws/lambda/blank-powershell-function-18CIXMPLHFAJJ
[Information] - AWS_LAMBDA_LOG_STREAM_NAME=2020/04/01/[$LATEST]53c5xmpl52d64ed3a744724d9c201089
[Information] - AWS_EXECUTION_ENV=AWS_Lambda_dotnet6_powershell_1.0.0
[Information] - AWS_LAMBDA_FUNCTION_NAME=blank-powershell-function-18CIXMPLHFAJJ
[Information] - PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin
[Information] - ## Event
[Information] - 
{
    "Records": [
        {
            "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
            "receiptHandle": "MessageReceiptHandle",
            "body": "Hello from SQS!",
            "attributes": {
                "ApproximateReceiveCount": "1",
                "SentTimestamp": "1523232000000",
                "SenderId": "123456789012",
                "ApproximateFirstReceiveTimestamp": "1523232000001"
            },
            ...
END RequestId: 56639408-xmpl-435f-9041-ac47ae25ceed
REPORT RequestId: 56639408-xmpl-435f-9041-ac47ae25ceed	Duration: 3906.38 ms	Billed Duration: 9867 ms	Memory Size: 512 MB	Max Memory Used: 367 MB	Init Duration: 5960.19 ms	
XRAY TraceId: 1-5e843da6-733cxmple7d0c3c020510040	SegmentId: 3913xmpl20999446	Sampled: true
```

Runtime .NET mencatat baris `START`, `END`, dan `REPORT` untuk setiap invokasi. Baris laporan memberikan perincian berikut.

**Laporkan bidang data baris**
+ **RequestId** – ID permintaan unik untuk invokasi.
+ **Durasi** – Jumlah waktu yang digunakan oleh metode handler fungsi Anda gunakan untuk memproses peristiwa.
+ **Durasi yang Ditagih** – Jumlah waktu yang ditagihkan untuk invokasi.
+ **Ukuran Memori** – Jumlah memori yang dialokasikan untuk fungsi.
+ **Memori Maks yang Digunakan** – Jumlah memori yang digunakan oleh fungsi. Saat pemanggilan berbagi lingkungan eksekusi, Lambda melaporkan memori maksimum yang digunakan di semua pemanggilan. Perilaku ini dapat menghasilkan nilai yang dilaporkan lebih tinggi dari yang diharapkan.
+ **Durasi Init** – Untuk permintaan pertama yang dilayani, lama waktu yang diperlukan runtime untuk memuat fungsi dan menjalankan kode di luar metode handler.
+ **XRAY TraceId** — Untuk permintaan yang dilacak, ID [AWS X-Ray jejak](services-xray.md).
+ **SegmentId** – Untuk permintaan yang dilacak, ID segmen X-Ray.
+ **Diambil Sampel** – Untuk permintaan yang dilacak, hasil pengambilan sampel.

## Melihat log di konsol Lambda
<a name="powershell-logging-console"></a>

Anda dapat menggunakan konsol Lambda untuk melihat output log setelah Anda memanggil fungsi Lambda.

Jika kode Anda dapat diuji dari editor **Kode** tertanam, Anda akan menemukan log dalam **hasil eksekusi**. Saat Anda menggunakan fitur pengujian konsol untuk menjalankan fungsi, Anda akan menemukan **Keluaran Log** di bagian **Detail**.

## Melihat log di CloudWatch konsol
<a name="powershell-logging-cwconsole"></a>

Anda dapat menggunakan CloudWatch konsol Amazon untuk melihat log untuk semua pemanggilan fungsi Lambda.

**Untuk melihat log di CloudWatch konsol**

1. Buka [halaman Grup log](https://console.aws.amazon.com/cloudwatch/home?#logs:) di CloudWatch konsol.

1. Pilih grup log untuk fungsi Anda (**/aws/lambda/ *your-function-name***).

1. Pilih pengaliran log.

Setiap aliran log sesuai dengan [instans fungsi Anda](lambda-runtime-environment.md). Aliran log muncul saat Anda memperbarui fungsi Lambda, dan saat instance tambahan dibuat untuk menangani pemanggilan bersamaan. Untuk menemukan log untuk pemanggilan tertentu, sebaiknya instrumentasi fungsi Anda dengan. AWS X-Ray X-Ray mencatat detail tentang permintaan dan pengaliran log di jejak.

## Melihat log menggunakan AWS Command Line Interface (AWS CLI)
<a name="powershell-logging-cli"></a>

 AWS CLI Ini adalah alat sumber terbuka yang memungkinkan Anda berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Untuk menyelesaikan langkah-langkah di bagian ini, Anda harus memiliki [AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Anda dapat menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) untuk mengambil log untuk invokasi menggunakan opsi perintah `--log-type`. Respons berisi bidang `LogResult` yang memuat hingga 4 KB log berkode base64 dari invokasi.

**Example mengambil ID log**  
Contoh berikut menunjukkan cara mengambil *ID log* dari `LogResult` untuk fungsi bernama `my-function`.  

```
aws lambda invoke --function-name my-function out --log-type Tail
```
Anda akan melihat output berikut:  

```
{
    "StatusCode": 200,
    "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...",
    "ExecutedVersion": "$LATEST"
}
```

**Example mendekode log**  
Pada prompt perintah yang sama, gunakan utilitas `base64` untuk mendekodekan log. Contoh berikut menunjukkan cara mengambil log berkode base64 untuk `my-function`.  

```
aws lambda invoke --function-name my-function out --log-type Tail \
--query 'LogResult' --output text --cli-binary-format raw-in-base64-out | base64 --decode
```
**cli-binary-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat [opsi baris perintah global yang AWS CLI didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di *Panduan AWS Command Line Interface Pengguna untuk Versi 2*.  
Anda akan melihat output berikut:  

```
START RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Version: $LATEST
"AWS_SESSION_TOKEN": "AgoJb3JpZ2luX2VjELj...", "_X_AMZN_TRACE_ID": "Root=1-5d02e5ca-f5792818b6fe8368e5b51d50;Parent=191db58857df8395;Sampled=0"",ask/lib:/opt/lib",
END RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8
REPORT RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8  Duration: 79.67 ms      Billed Duration: 80 ms         Memory Size: 128 MB     Max Memory Used: 73 MB
```
Utilitas `base64` tersedia di Linux, macOS, dan [Ubuntu pada Windows](https://docs.microsoft.com/en-us/windows/wsl/install-win10). Pengguna macOS mungkin harus menggunakan `base64 -D`.

**Example Skrip get-logs.sh**  
Pada prompt perintah yang sama, gunakan script berikut untuk mengunduh lima peristiwa log terakhir. Skrip menggunakan `sed` untuk menghapus kutipan dari file output, dan akan tidur selama 15 detik untuk memberikan waktu agar log tersedia. Output mencakup respons dari Lambda dan output dari perintah `get-log-events`.   
Salin konten dari contoh kode berikut dan simpan dalam direktori proyek Lambda Anda sebagai `get-logs.sh`.  
**cli-binary-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat [opsi baris perintah global yang AWS CLI didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di *Panduan AWS Command Line Interface Pengguna untuk Versi 2*.  

```
#!/bin/bash
aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"key": "value"}' out
sed -i'' -e 's/"//g' out
sleep 15
aws logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name stream1 --limit 5
```

**Example macOS dan Linux (khusus)**  
Pada prompt perintah yang sama, pengguna macOS dan Linux mungkin perlu menjalankan perintah berikut untuk memastikan skrip dapat dijalankan.  

```
chmod -R 755 get-logs.sh
```

**Example mengambil lima log acara terakhir**  
Pada prompt perintah yang sama, gunakan skrip berikut untuk mendapatkan lima log acara terakhir.  

```
./get-logs.sh
```
Anda akan melihat output berikut:  

```
{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}
{
    "events": [
        {
            "timestamp": 1559763003171,
            "message": "START RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf Version: $LATEST\n",
            "ingestionTime": 1559763003309
        },
        {
            "timestamp": 1559763003173,
            "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tENVIRONMENT VARIABLES\r{\r  \"AWS_LAMBDA_FUNCTION_VERSION\": \"$LATEST\",\r ...",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003173,
            "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tEVENT\r{\r  \"key\": \"value\"\r}\n",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003218,
            "message": "END RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\n",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003218,
            "message": "REPORT RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\tDuration: 26.73 ms\tBilled Duration: 27 ms \tMemory Size: 128 MB\tMax Memory Used: 75 MB\t\n",
            "ingestionTime": 1559763018353
        }
    ],
    "nextForwardToken": "f/34783877304859518393868359594929986069206639495374241795",
    "nextBackwardToken": "b/34783877303811383369537420289090800615709599058929582080"
}
```

## Menghapus log
<a name="powershell-logging-delete"></a>

Grup log tidak terhapus secara otomatis ketika Anda menghapus suatu fungsi. Untuk menghindari penyimpanan log secara tidak terbatas, hapus kelompok log, atau [lakukan konfigurasi periode penyimpanan](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention), yang setelahnya log akan dihapus secara otomatis.