Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Uji kenari secara lokal
Bagian ini menjelaskan cara memodifikasi, menguji, dan men-debug burung kenari CloudWatch Synthetics langsung di dalam Microsoft Visual Studio editor kode atau JetBrains IDE editor kode. Lingkungan debugging lokal menggunakan wadah Serverless Application Model (SAM) untuk mensimulasikan fungsi Lambda untuk meniru perilaku kenari Synthetics.
catatan
Tidak praktis untuk melakukan debug kenari lokal yang mengandalkan pemantauan visual. Pemantauan visual mengandalkan pengambilan tangkapan layar dasar selama proses awal, dan kemudian membandingkan tangkapan layar ini dengan tangkapan layar dari proses berikutnya. Dalam lingkungan pengembangan lokal, run tidak disimpan atau dilacak, dan setiap iterasi adalah run mandiri yang independen. Tidak adanya riwayat kenari membuatnya tidak praktis untuk men-debug kenari yang mengandalkan pemantauan visual.
Prasyarat
Pilih atau buat bucket Amazon S3 yang akan digunakan untuk menyimpan artefak dari uji kenari lokal, seperti HAR file dan tangkapan layar. Ini mengharuskan Anda untuk disediakan. IAM Jika Anda melewatkan pengaturan bucket Amazon S3, Anda masih dapat menguji kenari Anda secara lokal, tetapi Anda akan melihat pesan kesalahan tentang ember yang hilang dan Anda tidak akan memiliki akses ke artefak kenari.
Jika Anda menggunakan bucket Amazon S3, sebaiknya atur siklus hidup bucket untuk menghapus objek setelah beberapa hari, untuk menghemat biaya. Untuk informasi selengkapnya, lihat Mengelola siklus hidup penyimpanan Anda.
Siapkan AWS profil default untuk AWS akun Anda. Untuk informasi selengkapnya, lihat Pengaturan konfigurasi dan file kredensi.
Setel AWS Region default lingkungan debug ke Wilayah pilihan Anda, seperti
us-west-2
.Instal AWS SAM CLI. Untuk informasi selengkapnya, silakan lihat Menginstal AWS SAM CLI.
Menginstal Visual Studio Code Editor atau JetBrains IDE. Untuk informasi lebih lanjut, lihat Visual Studio Code
atau JetBrains IDE Menginstal Docker untuk bekerja dengan AWS SAM CLI. Pastikan untuk memulai daemon docker. Untuk informasi selengkapnya, lihat Menginstal Docker untuk digunakan dengan AWS SAM CLI.
Atau, Anda dapat menginstal perangkat lunak manajemen kontainer lainnya seperti Rancher, selama ia menggunakan Docker runtime.
Instal ekstensi AWS toolkit untuk editor pilihan Anda. Untuk informasi selengkapnya, lihat Menginstal AWS Toolkit for Visual Studio Code atau Menginstal AWS Toolkit for JetBrains.
Topik
Siapkan lingkungan pengujian dan debugging
Pertama, kloning repositori Github yang AWS menyediakan dengan memasukkan perintah berikut. Repositori berisi contoh kode untuk kenari Node.js dan kenari Python.
git clone https://github.com/aws-samples/synthetics-canary-local-debugging-sample.git
Kemudian lakukan salah satu hal berikut, tergantung pada bahasa burung kenari Anda.
Untuk burung kenari Node.js
Buka direktori sumber kenari Node.js dengan memasukkan perintah berikut.
cd synthetics-canary-local-debugging-sample/nodejs-canary/src
Masukkan perintah berikut untuk menginstal dependensi kenari.
npm install
Untuk kenari Python
Pergi ke direktori sumber kenari Python dengan memasukkan perintah berikut.
cd synthetics-canary-local-debugging-sample/python-canary/src
Masukkan perintah berikut untuk menginstal dependensi kenari.
pip3 install -r requirements.txt -t .
Gunakan Visual Studio Code IDE
Bagian Visual Studio peluncuran file konfigurasi terletak di.vscode/launch.json
. Ini berisi konfigurasi untuk memungkinkan file template ditemukan oleh Visual
Studio kode. Ini mendefinisikan muatan Lambda dengan parameter yang diperlukan untuk memanggil kenari dengan sukses. Berikut konfigurasi peluncuran untuk kenari Node.js:
{ ... ... "lambda": { "payload": { "json": { // Canary name. Provide any name you like. "canaryName": "LocalSyntheticsCanary", // Canary artifact location "artifactS3Location": { "s3Bucket": "cw-syn-results-123456789012-us-west-2", "s3Key": "local-run-artifacts", }, // Your canary handler name "customerCanaryHandlerName": "heartbeat-canary.handler" } }, // Environment variables to pass to the canary code "environmentVariables": {} } } ] }
Anda juga dapat secara opsional memberikan bidang-bidang berikut di JSON payload:
s3EncryptionMode
Nilai yang valid:SSE_S3
|SSE_KMS
s3KmsKeyArn
Nilai yang valid:KMS Key ARN
activeTracing
Nilai yang valid:true
|false
canaryRunId
Nilai yang valid:UUID
Parameter ini diperlukan jika penelusuran aktif diaktifkan.
Untuk men-debug kenari di Visual Studio, tambahkan breakpoint dalam kode canary tempat Anda ingin menjeda eksekusi. Untuk menambahkan breakpoint, pilih margin editor dan pergi ke mode Run dan Debug di editor. Jalankan kenari dengan mengklik tombol putar. Saat kenari berjalan, log akan dibuntuti di konsol debug, memberi Anda wawasan waktu nyata tentang perilaku kenari. Jika Anda menambahkan breakpoint, eksekusi canary akan berhenti di setiap breakpoint, memungkinkan Anda untuk melangkah melalui kode dan memeriksa nilai variabel, metode instance, atribut objek, dan tumpukan panggilan fungsi.
Tidak ada biaya yang dikeluarkan untuk menjalankan dan men-debug kenari secara lokal, kecuali untuk artefak yang disimpan di bucket Amazon S3 dan metrik yang dihasilkan oleh setiap proses lokal. CloudWatch
Gunakan JetBrains IDE
Setelah Anda menginstal AWS Toolkit for JetBrains ekstensi, pastikan plugin dan JavaScript debugger Node.js diaktifkan untuk dijalankan, jika Anda men-debug kenari Node.js. Kemudian ikuti langkah-langkah ini.
Debug kenari menggunakan JetBrains IDE
Di panel navigasi kiri JetBrains IDE, pilih Lambda, lalu pilih templat konfigurasi lokal.
Masukkan nama untuk konfigurasi run, seperti
LocalSyntheticsCanary
Pilih Dari template, pilih browser file di bidang template, lalu pilih file template.ymldari proyek, baik dari direktori nodejs atau direktori python.
Di bagian Input, masukkan payload untuk kenari seperti yang ditunjukkan pada layar berikut.
{ "canaryName": "LocalSyntheticsCanary", "artifactS3Location": { "s3Bucket": "cw-syn-results-123456789012-us-west-2", "s3Key": "local-run-artifacts" }, "customerCanaryHandlerName": "heartbeat-canary.handler" }
Anda juga dapat mengatur variabel lingkungan lain di payloadJSON, seperti yang tercantum dalamGunakan Visual Studio Code IDE.
Jalankan kenari secara lokal dengan SAM CLI
Gunakan salah satu prosedur berikut untuk menjalankan kenari Anda secara lokal menggunakan Model Aplikasi Tanpa Server (). SAM CLI Pastikan untuk menentukan nama bucket Amazon S3 Anda sendiri untuk in s3Bucket
event.json
Untuk menggunakan SAM CLI untuk menjalankan kenari Node.js
Buka direktori sumber dengan memasukkan perintah berikut.
cd synthetics-canary-local-debugging-sample/nodejs-canary
Masukkan perintah berikut.
sam build sam local invoke -e ../event.json
Untuk menggunakan SAM CLI untuk menjalankan kenari Python
Buka direktori sumber dengan memasukkan perintah berikut.
cd synthetics-canary-local-debugging-sample/python-canary
Masukkan perintah berikut.
sam build sam local invoke -e ../event.json
Integrasikan lingkungan pengujian lokal Anda ke dalam paket kenari yang ada
Anda dapat mengintegrasikan debugging kenari lokal ke dalam paket kenari yang ada dengan menyalin tiga file:
Salin
template.yml
file ke root paket kenari Anda. Pastikan untuk memodifikasi jalurCodeUri
untuk menunjuk ke direktori tempat kode kenari Anda ada.Jika Anda bekerja dengan canary Node.js, salin
cw-synthetics.js
file ke direktori sumber kenari Anda. Jika Anda bekerja dengan kenari Python, salincw-synthetics.py
ke direktori sumber kenari Anda.Salin file konfigurasi peluncuran.
vscode/launch.json
ke root paket. Pastikan untuk memasukkannya ke dalam.vscode
direktori; buat jika belum ada.
Mengubah runtime CloudWatch Synthetics
Sebagai bagian dari debugging Anda, Anda mungkin ingin mencoba menjalankan kenari dengan runtime CloudWatch Synthetics yang berbeda, bukan runtime terbaru. Untuk melakukannya, temukan runtime yang ingin Anda gunakan dari salah satu tabel berikut. Pastikan untuk memilih runtime untuk Wilayah yang benar. Kemudian rekatkan ARN untuk runtime itu ke tempat yang sesuai di template.yml
file Anda, lalu jalankan kenari.
Runtime Node.js
ARNsuntuk syn-nodejs-puppeteer -7.0
Tabel berikut mencantumkan yang ARNs akan digunakan untuk syn-nodejs-puppeteer-7.0
versi runtime CloudWatch Synthetics di setiap AWS Wilayah yang tersedia.
Wilayah | ARN |
---|---|
AS Timur (N. Virginia) |
|
AS Timur (Ohio) |
|
AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Afrika (Cape Town) |
|
Asia Pasifik (Hong Kong) |
|
Asia Pasifik (Hyderabad) |
|
Asia Pasifik (Jakarta) |
|
Asia Pasifik (Melbourne) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
(Canada (Central) |
|
Kanada Barat (Calgary) |
|
Tiongkok (Beijing) |
|
Tiongkok (Ningxia); |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Eropa (Milan) |
|
Eropa (Paris) |
|
Eropa (Spanyol) |
|
Eropa (Stockholm) |
|
Eropa (Zürich) |
|
Israel (Tel Aviv) |
|
Timur Tengah (Bahrain) |
|
Timur Tengah (UAE) |
|
Amerika Selatan (Sao Paulo) |
|
AWS GovCloud (AS-Timur) |
|
AWS GovCloud (AS-Barat) |
|
ARNsuntuk syn-nodejs-puppeteer -6.2
Tabel berikut mencantumkan yang ARNs akan digunakan untuk syn-nodejs-puppeteer-6.2
versi runtime CloudWatch Synthetics di setiap AWS Wilayah yang tersedia.
Wilayah | ARN |
---|---|
AS Timur (N. Virginia) |
|
AS Timur (Ohio) |
|
AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Afrika (Cape Town) |
|
Asia Pasifik (Hong Kong) |
|
Asia Pasifik (Hyderabad) |
|
Asia Pasifik (Jakarta) |
|
Asia Pasifik (Melbourne) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
(Canada (Central) |
|
Kanada Barat (Calgary) |
|
Tiongkok (Beijing) |
|
Tiongkok (Ningxia); |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Eropa (Milan) |
|
Eropa (Paris) |
|
Eropa (Spanyol) |
|
Eropa (Stockholm) |
|
Eropa (Zürich) |
|
Israel (Tel Aviv) |
|
Timur Tengah (Bahrain) |
|
Timur Tengah (UAE) |
|
Amerika Selatan (Sao Paulo) |
|
AWS GovCloud (AS-Timur) |
|
AWS GovCloud (AS-Barat) |
|
ARNsuntuk syn-nodejs-puppeteer -5.2
Tabel berikut mencantumkan yang ARNs akan digunakan untuk syn-nodejs-puppeteer-5.2
versi runtime CloudWatch Synthetics di setiap AWS Wilayah yang tersedia.
Wilayah | ARN |
---|---|
AS Timur (N. Virginia) |
|
AS Timur (Ohio) |
|
AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Afrika (Cape Town) |
|
Asia Pasifik (Hong Kong) |
|
Asia Pasifik (Hyderabad) |
|
Asia Pasifik (Jakarta) |
|
Asia Pasifik (Melbourne) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
(Canada (Central) |
|
Kanada Barat (Calgary) |
|
Tiongkok (Beijing) |
|
Tiongkok (Ningxia); |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Eropa (Milan) |
|
Eropa (Paris) |
|
Eropa (Spanyol) |
|
Eropa (Stockholm) |
|
Eropa (Zürich) |
|
Israel (Tel Aviv) |
|
Timur Tengah (Bahrain) |
|
Timur Tengah (UAE) |
|
Amerika Selatan (Sao Paulo) |
|
AWS GovCloud (AS-Timur) |
|
AWS GovCloud (AS-Barat) |
|
Runtime Python
ARNsuntuk syn-python-selenium -3.0
Tabel berikut mencantumkan yang ARNs akan digunakan untuk syn-python-selenium-3.0
versi runtime CloudWatch Synthetics di setiap AWS Wilayah yang tersedia.
Wilayah | ARN |
---|---|
AS Timur (N. Virginia) |
|
AS Timur (Ohio) |
|
AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Afrika (Cape Town) |
|
Asia Pasifik (Hong Kong) |
|
Asia Pasifik (Hyderabad) |
|
Asia Pasifik (Jakarta) |
|
Asia Pasifik (Melbourne) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
(Canada (Central) |
|
Kanada Barat (Calgary) |
|
Tiongkok (Beijing) |
|
Tiongkok (Ningxia); |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Eropa (Milan) |
|
Eropa (Paris) |
|
Eropa (Spanyol) |
|
Eropa (Stockholm) |
|
Eropa (Zürich) |
|
Israel (Tel Aviv) |
|
Timur Tengah (Bahrain) |
|
Timur Tengah (UAE) |
|
Amerika Selatan (Sao Paulo) |
|
AWS GovCloud (AS-Timur) |
|
AWS GovCloud (AS-Barat) |
|
ARNsuntuk syn-python-selenium -2.1
Tabel berikut mencantumkan yang ARNs akan digunakan untuk syn-python-selenium-2.1
versi runtime CloudWatch Synthetics di setiap AWS Wilayah yang tersedia.
Wilayah | ARN |
---|---|
AS Timur (N. Virginia) |
|
AS Timur (Ohio) |
|
AS Barat (California Utara) |
|
AS Barat (Oregon) |
|
Afrika (Cape Town) |
|
Asia Pasifik (Hong Kong) |
|
Asia Pasifik (Hyderabad) |
|
Asia Pasifik (Jakarta) |
|
Asia Pasifik (Melbourne) |
|
Asia Pasifik (Mumbai) |
|
Asia Pasifik (Osaka) |
|
Asia Pasifik (Seoul) |
|
Asia Pasifik (Singapura) |
|
Asia Pasifik (Sydney) |
|
Asia Pasifik (Tokyo) |
|
(Canada (Central) |
|
Kanada Barat (Calgary) |
|
Tiongkok (Beijing) |
|
Tiongkok (Ningxia); |
|
Eropa (Frankfurt) |
|
Eropa (Irlandia) |
|
Eropa (London) |
|
Eropa (Milan) |
|
Eropa (Paris) |
|
Eropa (Spanyol) |
|
Eropa (Stockholm) |
|
Eropa (Zürich) |
|
Israel (Tel Aviv) |
|
Timur Tengah (Bahrain) |
|
Timur Tengah (UAE) |
|
Amerika Selatan (Sao Paulo) |
|
AWS GovCloud (AS-Timur) |
|
AWS GovCloud (AS-Barat) |
|
Kesalahan umum
Kesalahan: Menjalankan AWS SAM proyek secara lokal membutuhkan Docker. Sudahkah Anda menginstalnya dan menjalankannya?
Pastikan untuk memulai Docker di komputer Anda.
SAMpemanggilan lokal gagal: Terjadi kesalahan (ExpiredTokenException) saat memanggil GetLayerVersion operasi: Token keamanan yang disertakan dalam permintaan kedaluwarsa
Pastikan profil AWS default sudah diatur.
Kesalahan yang lebih umum
Untuk informasi selengkapnya tentang kesalahan umum denganSAM, lihat AWS SAMCLIpemecahan masalah.