

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

# 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
   ```