Opsi konfigurasi untuk men-debug aplikasi nirserver - AWS Toolkit for VS Code

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

Opsi konfigurasi untuk men-debug aplikasi nirserver

Ketika Anda membukalaunch.jsonfile untuk mengedit konfigurasi debug, Anda dapat menggunakan Kode VSIntelliSensefitur untuk melihat dan secara otomatis menyelesaikan properti yang valid. Untuk memicu IntelliSense di editor, tekanCtrl+Spasi.

Menggunakan VS Code IntelliSense untuk menemukan dan menyelesaikan properti debug yang valid.

IntelliSense memungkinkan Anda menemukan dan menentukan properti untuk menjalankan fungsi Lambda secara langsung atau denganAWS SAMtemplat. Anda juga dapat menentukan properti untuk "lambda" (bagaimana fungsi berjalan), "sam" (bagaimana AWS SAM CLI membangun aplikasi), dan "aws" (bagaimana informasi koneksi AWS disediakan).

AWS SAM: Pemanggilan penangan Lambda langsung/Pemanggilan Lambda berbasis templat
Properti Deskripsi

type

Menentukan ekstensi mana yang mengelola konfigurasi peluncuran. Selalu atur ke aws-sam untuk menggunakan AWS SAM CLI untuk membangun dan men-debug secara lokal.

name

Menentukan nama yang mudah dibaca untuk muncul di daftar Konfigurasi peluncuran debug.

request

Menentukan tipe konfigurasiyang akan dilakukan oleh ekstensi yang ditunjuk (aws-sam). Selalu atur ke direct-invoke untuk memulai fungsi Lambda.

invokeTarget

Menentukan titik masuk untuk memanggil sumber daya.

Untuk memanggil fungsi Lambda secara langsung, tetapkan nilai untuk bidang invokeTarget berikut:

  • target – Atur ke code.

  • lambdaHandler – Nama dari penangan fungsi Lambda untuk dipanggil.

  • projectRoot— Jalur untuk file aplikasi yang berisi penangan fungsi Lambda.

  • architecture- Arsitektur prosesor dari lingkungan yang ditiru tempat aplikasi SAM Lambda lokal Anda berjalan. Untuk runtime tertentu, Anda dapat memiliharm64bukan defaultx86_64arsitektur. Untuk informasi selengkapnya, lihat Membuat aplikasi tanpa server baru (lokal).

Untuk memohon sumber daya Lambda denganAWS SAMtemplate, tetapkan nilai untuk berikutinvokeTargetbidang:

  • target – Atur ke template.

  • templatePath— Jalur keAWS SAMberkas templat.

  • logicalId – Nama sumber daya dari AWS::Lambda::Function atau AWS::Serverless::Function untuk dipanggil. Anda dapat menemukan nama sumber daya di format YAXLAWS SAMtemplat. Perhatikan bahwaAWS Toolkitsecara implisit mengenali fungsi yang didefinisikan denganPackageType: Imagedi dalamAWS SAMtemplat sebagaiBerbasis gambarfungsi Lambda. Untuk informasi lebih lanjut, lihat Paket deployment Lambda di Panduan Developer AWS Lambda.

Properti Lambda ("lambda")
Properti Deskripsi

environmentVariables

Melewati parameter operasional ke fungsi Lambda Anda. Misalnya, jika Anda ingin menulis ke bucket Amazon S3 alih-alih melakukan hard-coding nama bucket yang Anda tulis, konfigurasikan nama bucket sebagai variabel lingkungan.

catatan

Saat menentukan variabel lingkungan untuk aplikasi tanpa server, Anda harus menambahkan konfigurasi ke keduaAWS SAMtemplat (template.yaml) danlaunch.jsonberkas.

Contoh pemformatan untuk variabel lingkungan diAWS SAMtemplat:

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello-world/ Handler: app.lambdaHandlerN10 Runtime: nodejs10.x Environment: Variables: SAMPLE1: Default Sample 1 Value

Contoh pemformatan untuk variabel lingkungan dilaunch.jsonberkas:

"environmentVariables": { "SAMPLE1": "My sample 1 value" }

payload

Menyediakan dua opsi untuk muatan peristiwa yang Anda berikan ke fungsi Lambda Anda sebagai input.

  • "json": Pasangan nilai kunci berformat JSON yang menentukan muatan peristiwa.

  • "path": Jalur ke file yang digunakan sebagai muatan peristiwa.

memoryMB

Menentukan megabyte (MB) memori yang disediakan untuk menjalankan fungsi Lambda yang dipanggil.

runtime

Menentukan runtime yang digunakan fungsi Lambda. Untuk informasi selengkapnya, lihat runtime AWS Lambda.

timeoutSec

Menetapkan waktu yang diizinkan, dalam detik, sebelum waktu sesi debug habis.

pathMappings

Menentukan di mana kode lokal dalam kaitannya dengan di mana ia berjalan dalam wadah.

Secara default, Toolkit for VS Code setlocalRootke root kode fungsi Lambda di ruang kerja lokal, danremoteRootkepada/var/task, yang merupakan direktori kerja default untuk kode yang berjalan di Lambda. Jika direktori kerja diubah di Dockerfile atau denganWorkingDirectoryparameter diAWS CloudFormationfile templat setidaknya satupathMappingentri harus ditentukan agar debugger berhasil memetakan breakpoint yang disetel secara lokal ke kode yang berjalan di wadah Lambda.

Contoh pemformatan untukpathMappingsdi dalamlaunch.jsonberkas:

"pathMappings": [ { "localRoot": "${workspaceFolder}/sam-app/HelloWorldFunction", "remoteRoot": "/var/task" } ]

Peringatan:

  • Untuk fungsi Lambda berbasis gambar .NET,remoteRootentri harus berupa direktori build.

  • Untuk fungsi Lambda berbasis Node.js, Anda hanya dapat menentukan entri pemetaan jalur tunggal.

Toolkit for VS CodeAWS SAMCLI untuk membangun dan men-debug aplikasi nirkabel secara lokal. Anda dapat mengonfigurasi perilaku perintah AWS SAM CLI menggunakan properti dari konfigurasi "sam" di file launch.json.

Properti AWS SAM CLI ("sam")
Properti Deskripsi Nilai default

buildArguments

Mengonfigurasi cara perintah sam build membangun kode sumber Lambda Anda. Untuk melihat opsi pembangunan, lihat membangun sam dalam Panduan Developer AWS Serverless Application Model.

Empty string

containerBuild

Menunjukkan apakah akan membangun fungsi Anda di dalam kontainer Docker seperti Lambda.

false

dockerNetwork

Menentukan nama atau ID dari jaringan Docker yang harus dihubungkan ke kontainer Lambda Docker, bersama dengan jaringan bridge default. Jika tidak ditentukan, kontainer Lambda hanya menghubungkan ke jaringan Docker bridge default.

Empty string

localArguments

Menentukan argumen pemanggilan lokal tambahan.

Empty string

skipNewImageCheck

Menentukan apakah perintah harus melewatkan menarik ke bawah citra Docker terbaru untuk runtime Lambda.

false

template

MenyesuaikanAWS SAMtemplat yang menggunakan parameter untuk masukan nilai pelanggan. Untuk informasi selengkapnya, lihat Parameter dalam Panduan Pengguna AWS CloudFormation.

"parameters":{}

Properti koneksi AWS ("aws")
Properti Deskripsi Nilai default

credentials

Memilih profil tertentu (misalnya, profile:default) dari file kredensial Anda untuk mendapatkan kredensial AWS.

YangAWSkredensi yang sudah adabersamaAWSfile konfigurasi atau dibagikanAWSFile kredensiberikan ke Toolkit for VS Code.

region

Menetapkan Wilayah AWS dari layanan (misalnya, us-east-1).

Wilayah AWS default yang terkait dengan profil kredensial aktif.

Contoh: Konfigurasi peluncuran templat

Berikut ini adalah contoh peluncuran file konfigurasi untukAWS SAMtarget templat:

{ "configurations": [ { "type": "aws-sam", "request": "direct-invoke", "name": "my-example:HelloWorldFunction", "invokeTarget": { "target": "template", "templatePath": "template.yaml", "logicalId": "HelloWorldFunction" }, "lambda": { "payload": {}, "environmentVariables": {} } } ] }

Contoh: Konfigurasi peluncuran kode

Berikut adalah contoh file konfigurasi peluncuran untuk target fungsi Lambda:

{ "configurations": [ { "type": "aws-sam", "request": "direct-invoke", "name": "my-example:app.lambda_handler (python3.7)", "invokeTarget": { "target": "code", "projectRoot": "hello_world", "lambdaHandler": "app.lambda_handler" }, "lambda": { "runtime": "python3.7", "payload": {}, "environmentVariables": {} } } ] }