Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi perpustakaan tersedia untuk skrip kenari Node.js menggunakan Puppeteer
Bagian ini menjelaskan fungsi perpustakaan yang tersedia untuk skrip canary Node.js.
Topik
Kelas dan fungsi pustaka Node.js yang berlaku untuk semua canary
Fungsi pustaka CloudWatch Synthetics berikut untuk Node.js berguna untuk semua kenari.
Kelas Synthetics
Fungsi berikut untuk semua canary berada di kelas Synthetics.
Topik
addExecutionError(errorMessage, ex);
errorMessage
menjelaskan kesalahan dan ex
adalah pengecualian yang ditemui
Anda dapat menggunakan addExecutionError
untuk mengatur kesalahan eksekusi bagi canary Anda. Itu menggagalkan canary tanpa mengganggu eksekusi skrip. Itu juga tidak memengaruhi metrik successPercent
Anda.
Anda harus melacak kesalahan sebagai kesalahan eksekusi hanya jika kesalahan itu tidak penting untuk menunjukkan keberhasilan atau kegagalan skrip canary Anda.
Contoh penggunaan addExecutionError
adalah sebagai berikut. Anda memantau ketersediaan titik akhir Anda dan mengambil tangkapan layar setelah halaman dimuat. Karena kegagalan mengambil tangkapan layar tidak menentukan ketersediaan titik akhir, Anda dapat menangkap kesalahan apa pun yang dihadapi saat mengambil tangkapan layar dan menambahkannya sebagai kesalahan eksekusi. Metrik ketersediaan Anda masih akan menunjukkan bahwa titik akhir telah aktif dan berjalan, namun status canary Anda akan ditandai sebagai gagal. Blok kode sampel berikut menangkap kesalahan tersebut dan menambahkannya sebagai kesalahan eksekusi.
try { await synthetics.takeScreenshot(stepName, "loaded"); } catch(ex) { synthetics.addExecutionError('Unable to take screenshot ', ex); }
getCanaryName();
Mengembalikan nama dari canary.
getCanaryArn();
Mengembalikan kenari. ARN
getCanaryUserAgentString();
Mengembalikan agen pengguna kustom dari canary.
getRuntimeVersion();
Fungsi ini tersedia dalam versi runtime syn-nodejs-puppeteer-3.0
dan yang lebih baru. Fungsi ini mengembalikan versi runtime Synthetics dari canary. Misalnya,nilai yang dikembalikan bisa menjadi syn-nodejs-puppeteer-3.0
.
getLogLevel();
Mengambil level log saat ini untuk pustaka Synthetics. Nilai yang mungkin adalah sebagai berikut:
-
0
– Debug -
1
– Info -
2
– Peringatan -
3
– Kesalahan
Contoh:
let logLevel = synthetics.getLogLevel();
setLogLevel();
Mengatur tingkat log untuk pustaka Sintetis. Nilai yang mungkin adalah sebagai berikut:
-
0
– Debug -
1
– Info -
2
– Peringatan -
3
– Kesalahan
Contoh:
synthetics.setLogLevel(0);
SyntheticsConfiguration kelas
Kelas ini hanya tersedia di versi runtime syn-nodejs-2.1
atau lebih baru.
Anda dapat menggunakan SyntheticsConfiguration
kelas untuk mengonfigurasi perilaku fungsi pustaka Sintetis. Misalnya, Anda dapat menggunakan kelas ini untuk mengonfigurasi fungsi executeStep()
untuk tidak menangkap tangkapan layar.
Anda dapat mengatur konfigurasi CloudWatch Synthetics di tingkat global, yang diterapkan ke semua langkah kenari. Anda juga dapat mengganti konfigurasi ini pada tingkat langkah dengan meneruskan kunci konfigurasi dan pasangan nilai.
Anda dapat memberikan opsi di tingkat langkah. Sebagai contoh, silakan lihat asinkron executeStep (stepName, functionToExecute, [stepConfig]); dan executeHttpStep(stepName,requestOptions, [panggilan balik], [stepConfig])
setConfig(pilihan)
adalah sebuah objek, yang merupakan kumpulan opsi yang dapat dikonfigurasi untuk canary Anda. Bagian berikut menjelaskan bidang-bidang yang memungkinkan dalam options
.options
setConfig(opsi) untuk semua burung kenari
Untuk kenari yang menggunakan syn-nodejs-puppeteer-3.2
atau yang lebih baru, (opsi) untuk setConfigdapat mencakup parameter berikut:
includeRequestHeaders
(boolean)— Apakah akan menyertakan header permintaan dalam laporan. Default-nya adalahfalse
.includeResponseHeaders
(boolean)— Apakah akan menyertakan header respons dalam laporan tersebut. Default-nya adalahfalse
.restrictedHeaders
(array)— Sebuah daf.ar nilai header untuk diabaikan, jika header disertakan. Ini berlaku untuk header permintaan dan respons. Misalnya, Anda dapat menyembunyikan kredensil Anda dengan meneruskan includeRequestHeadersastrue
dan restrictedHeadersas.['Authorization']
includeRequestBody
(boolean)— Apakah akan menyertakan bodi permintaan dalam laporan. Default-nya adalahfalse
.includeResponseBody
(boolean)— Apakah akan menyertakan bodi respons dalam laporan. Default-nya adalahfalse
.Jika Anda mengaktifkan salah satu
includeResponseBody
ataulogResponseBody
, objek data tidak dikembalikan dalam respons dari beberapaAPIs, seperti klien aws-sdk v3. Ini karena keterbatasan Node.js dan jenis objek respons yang digunakan.
setConfig(opsi) mengenai CloudWatch metrik
Untuk kenari yang menggunakan syn-nodejs-puppeteer-3.1
atau yang lebih baru, (opsi) untuk setConfigdapat menyertakan parameter Boolean berikut yang menentukan metrik mana yang diterbitkan oleh kenari. Bawaan untuk masing-masing opsi ini adalah true
. Pilihan yang dimulai dengan aggregated
menentukan apakah metrik dipancarkan tanpa dimensi CanaryName
. Anda dapat menggunakan metrik ini untuk melihat hasil gabungan untuk semua canary Anda. Pilihan lain menentukan apakah metrik dipancarkan dengan dimensi CanaryName
. Anda dapat menggunakan metrik ini untuk melihat hasil untuk setiap canary individu.
Untuk daftar CloudWatch metrik yang dipancarkan oleh burung kenari, lihat. CloudWatch metrik yang diterbitkan oleh kenari
failedCanaryMetric
(boolean)— Apakah akan memancarkan metrikFailed
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.failedRequestsMetric
(boolean)— Apakah akan memancarkan metrikFailed requests
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
._2xxMetric
(boolean)— Apakah akan memancarkan metrik2xx
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
._4xxMetric
(boolean)— Apakah akan memancarkan metrik4xx
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
._5xxMetric
(boolean)— Apakah akan memancarkan metrik5xx
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.stepDurationMetric
(boolean)— Apakah akan memancarkan metrikStep duration
(dengan dimensiCanaryName
StepName
) untuk canary ini. Default-nya adalahtrue
.stepSuccessMetric
(boolean)— Apakah akan memancarkan metrikStep success
(dengan dimensiCanaryName
StepName
) untuk canary ini. Default-nya adalahtrue
.aggregatedFailedCanaryMetric
(boolean)— Apakah akan memancarkan metrikFailed
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregatedFailedRequestsMetric
(boolean)— Apakah akan memancarkan metrikFailed Requests
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated2xxMetric
(boolean)— Apakah akan memancarkan metrik2xx
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated4xxMetric
(boolean)— Apakah akan memancarkan metrik4xx
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated5xxMetric
(boolean)— Apakah akan memancarkan metrik5xx
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.visualMonitoringSuccessPercentMetric
(boolean)— Apakah akan memancarkan metrikvisualMonitoringSuccessPercent
untuk canary ini. Default-nya adalahtrue
.visualMonitoringTotalComparisonsMetric
(boolean)— Apakah akan memancarkan metrikvisualMonitoringTotalComparisons
untuk canary ini. Default-nya adalahfalse
.includeUrlPassword
(boolean) — Apakah akan menyertakan kata sandi yang muncul di. URL Secara default, kata sandi yang muncul URLs disunting dari log dan laporan, untuk mencegah pengungkapan data sensitif. Default-nya adalahfalse
.restrictedUrlParameters
(array) — Daftar parameter URL jalur atau kueri untuk disunting. Ini berlaku untuk URLs muncul di log, laporan, dan kesalahan. Parameter tersebut tidak peka terhadap huruf besar/kecil. Anda dapat meneruskan tanda bintang (*) sebagai nilai untuk menyunting semua nilai parameter URL jalur dan kueri. Default-nya adalah array kosong.logRequest
(boolean)— Apakah akan mencatat setiap permintaan di log canary. Untuk canary UI, ini mencatat setiap permintaan yang dikirim oleh browser. Default-nya adalahtrue
.logResponse
(boolean)— Apakah akan mencatat setiap respons di log canary. Untuk canary UI, ini membuat log terhadap setiap respons yang diterima oleh browser. Default-nya adalahtrue
.logRequestBody
(boolean)— Apakah akan mencatat bodi permintaan bersama dengan permintaan di log canary. Konfigurasi ini hanya berlaku jikalogRequest
merupakantrue
. Default-nya adalahfalse
.logResponseBody
(boolean)— Apakah akan mencatat bodi respons bersama dengan respons di log canary. Konfigurasi ini hanya berlaku jikalogResponse
merupakantrue
. Default-nya adalahfalse
.Jika Anda mengaktifkan salah satu
includeResponseBody
ataulogResponseBody
, objek data tidak dikembalikan dalam respons dari beberapaAPIs, seperti klien aws-sdk v3. Ini karena keterbatasan Node.js dan jenis objek respons yang digunakan.logRequestHeaders
(boolean)— Apakah akan mencatat header permintaan bersama dengan permintaan di log canary. Konfigurasi ini hanya berlaku jikalogRequest
merupakantrue
. Default-nya adalahfalse
.Perhatikan bahwa
includeRequestHeaders
memungkinkan header dalam artefak.logResponseHeaders
(boolean)— Apakah akan mencatat header respons bersama dengan respons di log canary. Konfigurasi ini hanya berlaku jikalogResponse
merupakantrue
. Default-nya adalahfalse
.Perhatikan bahwa
includeResponseHeaders
memungkinkan header dalam artefak.
catatan
Metrik Duration
dan SuccessPercent
selalu dipancarkan untuk setiap canary, baik dengan dan tanpa metrik CanaryName
.
Metode untuk mengaktifkan atau menonaktifkan metrik
disableAggregatedRequestMetrik ()
Menonaktifkan canary dari memancarkan semua metrik permintaan yang dipancarkan tanpa dimensi CanaryName
.
disableRequestMetrics()
Menonaktifkan semua metrik permintaan, termasuk metrik per canary dan metrik yang dikumpulkan di semua canary.
disableStepMetrics()
Menonaktifkan semua metrik langkah, termasuk metrik langkah sukses dan metrik durasi langkah.
enableAggregatedRequestMetrik ()
Mengaktifkan canary untuk memancarkan semua metrik permintaan yang dipancarkan tanpa dimensi CanaryName
.
enableRequestMetrics()
Mengaktifkan semua metrik permintaan, termasuk metrik per canary dan metrik yang dikumpulkan di semua canary.
enableStepMetrics()
Mengaktifkan semua metrik langkah, termasuk metrik keberhasilan langkah dan metrik durasi langkah.
dapatkan2 xxMetric ()
Mengembalikan apakah canary memancarkan metrik 2xx
dengan dimensi CanaryName
.
dapatkan4 xxMetric ()
Mengembalikan apakah canary memancarkan metrik 4xx
dengan dimensi CanaryName
.
dapatkan5 xxMetric ()
Mengembalikan apakah canary memancarkan metrik 5xx
dengan dimensi CanaryName
.
getAggregated2 xxMetric ()
Mengembalikan apakah canary memancarkan metrik 2xx
tanpa dimensi.
getAggregated4 xxMetric ()
Mengembalikan apakah canary memancarkan metrik 4xx
tanpa dimensi.
getAggregatedFailedCanaryMetric()
Mengembalikan apakah canary memancarkan metrik Failed
tanpa dimensi.
getAggregatedFailedRequestsMetric()
Mengembalikan apakah canary memancarkan metrik Failed requests
tanpa dimensi.
getAggregated5 xxMetric ()
Mengembalikan apakah canary memancarkan metrik 5xx
tanpa dimensi.
getFailedCanaryMetrik ()
Mengembalikan apakah canary memancarkan metrik Failed
dengan dimensi CanaryName
.
getFailedRequestsMetrik ()
Mengembalikan apakah canary memancarkan metrik Failed requests
dengan dimensi CanaryName
.
getStepDurationMetrik ()
Mengembalikan apakah canary memancarkan metrik Duration
dengan dimensi CanaryName
untuk canary ini.
getStepSuccessMetrik ()
Mengembalikan apakah canary memancarkan metrik StepSuccess
dengan dimensi CanaryName
untuk canary ini.
dengan2 xxMetric (xxMetric_2)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 2xx
dengan dimensi CanaryName
untuk canary ini.
dengan4 xxMetric (xxMetric_4)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 4xx
dengan dimensi CanaryName
untuk canary ini.
dengan5 xxMetric (xxMetric_5)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 5xx
dengan dimensi CanaryName
untuk canary ini.
withAggregated2 xxMetric (xxMetricagregat2)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 2xx
tanpa dimensi untuk canary ini.
withAggregated4 xxMetric (xxMetricagregat4)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 4xx
tanpa dimensi untuk canary ini.
withAggregated5 xxMetric (xxMetricagregat5)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 5xx
tanpa dimensi untuk canary ini.
withAggregatedFailedCanaryMetric(aggregatedFailedCanaryMetrik)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
tanpa dimensi untuk canary ini.
withAggregatedFailedRequestsMetric(aggregatedFailedRequestsMetrik)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
requests
tanpa dimensi untuk canary ini.
withFailedCanaryMetrik (failedCanaryMetric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
dengan dimensi CanaryName
untuk canary ini.
withFailedRequestsMetrik (failedRequestsMetric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
requests
dengan dimensi CanaryName
untuk canary ini.
withStepDurationMetrik (stepDurationMetric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Duration
dengan dimensi CanaryName
untuk canary ini.
withStepSuccessMetrik (stepSuccessMetric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik StepSuccess
dengan dimensi CanaryName
untuk canary ini.
Metode untuk mengaktifkan atau menonaktifkan fitur lainnya
withHarFile()
Menerima argumen Boolean, yang menentukan apakah akan membuat HAR file untuk kenari ini.
withStepsReport()
Menerima argumen Boolean, yang menentukan apakah akan melaporkan ringkasan eksekusi langkah untuk canary ini.
withIncludeUrlKata Sandi ()
Menerima argumen Boolean, yang menentukan apakah akan menyertakan kata sandi yang muncul URLs di log dan laporan.
withRestrictedUrlParameter ()
Menerima array parameter URL jalur atau kueri untuk disunting. Ini berlaku untuk URLs muncul di log, laporan, dan kesalahan. Anda dapat meneruskan tanda bintang (*) sebagai nilai untuk menyunting semua nilai parameter URL jalur dan kueri
withLogRequest()
Menerima argumen Boolean, yang menentukan apakah akan membuat log setiap permintaan di log canary.
withLogResponse()
Menerima argumen Boolean, yang menentukan apakah akan membuat log setiap respons di log canary.
withLogRequestTubuh ()
Menerima argumen Boolean, yang menentukan apakah akan membuat log setiap bodi permintaan di log canary.
withLogResponseTubuh ()
Menerima argumen Boolean, yang menentukan apakah akan mencatat setiap bodi respons di log canary.
withLogRequestHeader ()
Menerima argumen Boolean, yang menentukan apakah akan mencatat setiap header permintaan di log canary.
withLogResponseHeader ()
Menerima argumen Boolean, yang menentukan apakah akan mencatat setiap header respons di log canary.
getHarFile()
Mengembalikan apakah kenari membuat HAR file.
getStepsReport()
Mengembalikan apakah canary melaporkan ringkasan eksekusi langkah.
getIncludeUrlKata Sandi ()
Mengembalikan apakah kenari menyertakan kata sandi yang muncul URLs di log dan laporan.
getRestrictedUrlParameter ()
Mengembalikan apakah kenari menyunting parameter URL path atau query.
getLogRequest()
Mengembalikan apakah canary mencatat setiap permintaan di log canary.
getLogResponse()
Mengembalikan apakah canary mencatat setiap respons di log canary.
getLogRequestTubuh ()
Mengembalikan apakah canary mencatat setiap badan permintaan di log canary.
getLogResponseTubuh ()
Mengembalikan apakah canary mencatat setiap bodi respons di log canary.
getLogRequestHeader ()
Mengembalikan apakah canary mencatat setiap header permintaan di log canary.
getLogResponseHeader ()
Mengembalikan apakah canary mencatat setiap header respons di log canary.
Fungsi untuk semua canary
withIncludeRequestHeaders
(includeRequestHeaders)withIncludeResponseHeaders
(includeResponseHeaders)withRestrictedHeaders
(restrictedHeaders)withIncludeRequestBody
(includeRequestBody)withIncludeResponseBody
(includeResponseBody)enableReportingOptions
() - Mengaktifkan semua opsi pelaporan-- includeRequestHeadersincludeResponseHeaders,, includeRequestBody, dan includeResponseBody,.disableReportingOptions
() — Menonaktifkan semua opsi pelaporan-- includeRequestHeaders, includeResponseHeaders, includeRequestBody, dan includeResponseBody,.
setConfig(opsi) untuk kenari UI
Untuk kenari UI, setConfigdapat menyertakan parameter Boolean berikut:
continueOnStepFailure
(boolean) - Apakah akan melanjutkan menjalankan skrip kenari setelah langkah gagal (ini mengacu pada executeStepfungsi). Jika ada langkah yang gagal, proses canary akan tetap ditandai sebagai gagal. Bawaannya adalahfalse
.harFile
(boolean) - Apakah akan membuat HAR file. Default-nya adalahTrue
.screenshotOnStepStart
(boolean)— Apakah mengambil tangkapan layar sebelum memulai langkah.screenshotOnStepSuccess
(boolean)— Apakah mengambil tangkapan layar setelah menyelesaikan langkah yang berhasil.screenshotOnStepFailure
(boolean)— Apakah mengambil tangkapan layar setelah langkah gagal.
Metode untuk mengaktifkan atau menonaktifkan tangkapan layar
disableStepScreenshots()
Menonaktifkan semua opsi tangkapan layar (screenshotOnStepMulai, screenshotOnStep Sukses, dan screenshotOnStep Kegagalan).
enableStepScreenshots()
Mengaktifkan semua opsi tangkapan layar (screenshotOnStepMulai, screenshotOnStep Sukses, dan screenshotOnStep Kegagalan). Secara bawaan, semua metode ini diaktifkan.
getScreenshotOnStepFailure()
Mengembalikan apakah canary mengambil tangkapan layar setelah langkah gagal.
getScreenshotOnStepStart()
Mengembalikan apakah canary mengambil tangkapan layar sebelum memulai langkah.
getScreenshotOnStepSuccess()
Mengembalikan apakah canary mengambil tangkapan layar setelah menyelesaikan satu langkah dengan sukses.
withScreenshotOnStepStart(screenshotOnStepMulai)
Menerima argumen Boolean, yang menunjukkan apakah akan mengambil tangkapan layar sebelum memulai sebuah langkah.
withScreenshotOnStepSuccess(screenshotOnStepSukses)
Menerima argumen Boolean, yang menunjukkan apakah akan mengambil tangkapan layar setelah menyelesaikan langkah dengan sukses.
withScreenshotOnStepFailure(screenshotOnStepKegagalan)
Menerima argumen Boolean, yang menunjukkan apakah akan mengambil tangkapan layar setelah langkah gagal.
Penggunaan di canary UI
Pertama, impor dependensi synthetics dan ambil konfigurasinya.
// Import Synthetics dependency const synthetics = require('Synthetics'); // Get Synthetics configuration const synConfig = synthetics.getConfiguration();
Kemudian, atur konfigurasi untuk setiap opsi dengan memanggil setConfig metode menggunakan salah satu opsi berikut.
// Set configuration values synConfig.setConfig({ screenshotOnStepStart: true, screenshotOnStepSuccess: false, screenshotOnStepFailure: false });
Atau
synConfig.withScreenshotOnStepStart(false).withScreenshotOnStepSuccess(true).withScreenshotOnStepFailure(true)
Untuk menonaktifkan semua tangkapan layar, gunakan disableStepScreenshots()
fungsi seperti pada contoh ini.
synConfig.disableStepScreenshots();
Anda dapat mengaktifkan dan menonaktifkan tangkapan layar kapan saja di kode tersebut. Misalnya, untuk menonaktifkan tangkapan layar hanya untuk satu langkah, nonaktifkan sebelum menjalankan langkah tersebut dan kemudian aktifkan setelah langkah.
setConfig(opsi) untuk API burung kenari
Untuk API kenari, setConfigdapat mencakup parameter Boolean berikut:
continueOnHttpStepFailure
(boolean) - Apakah akan melanjutkan menjalankan skrip kenari setelah HTTP langkah gagal (ini mengacu pada executeHttpStepfungsi). Jika ada langkah yang gagal, proses canary akan tetap ditandai sebagai gagal. Bawaannya adalahtrue
.
Pemantauan visual
Pemantauan visual membandingkan tangkapan layar yang diambil selama berjalannya canary dengan tangkapan layar yang diambil selama berjalannya canary dasar. Jika perbedaan antara kedua tangkapan layar berada di luar persentase ambang batas, canary gagal dan Anda dapat melihat area dengan perbedaan warna yang disorot dalam laporan lari canary. Pemantauan visual didukung di kenari yang menjalankan syn-puppeteer-node-3.2 dan yang lebih baru. Saat ini tidak didukung di canary yang menjalankan Python dan Selenium.
Untuk mengaktifkan pemantauan visual, tambahkan baris kode berikut ke skrip canary. Untuk detail selengkapnya, silakan lihat SyntheticsConfiguration kelas.
syntheticsConfiguration.withVisualCompareWithBaseRun(true);
Pertama kali canary berjalan dengan sukses setelah baris ini ditambahkan ke skrip, ia menggunakan tangkapan layar yang diambil selama proses itu sebagai dasar untuk perbandingan. Setelah kenari pertama dijalankan, Anda dapat menggunakan CloudWatch konsol untuk mengedit kenari untuk melakukan salah satu hal berikut:
Tetapkan putaran canary berikutnya sebagai dasar baru.
Gambar batas pada tangkapan layar dasar saat ini untuk menunjuk area tangkapan layar untuk diabaikan selama perbandingan visual.
Hapus tangkapan layar agar tidak digunakan untuk pemantauan visual.
Untuk informasi selengkapnya tentang menggunakan CloudWatch konsol untuk mengedit kenari, lihatMengedit atau menghapus canary.
Opsi lain untuk pemantauan visual
syntheticsConfiguration.withVisualVarianceThresholdPercentage(desiredPercentage)
Tetapkan persentase yang dapat diterima untuk varians tangkapan layar dalam perbandingan visual.
syntheticsConfiguration. withVisualVarianceHighlightHexColor(” #fafa00 “)
Atur warna sorotan yang menunjuk area varians saat Anda melihat laporan canary run yang menggunakan pemantauan visual.
syntheticsConfiguration.withFailCanaryRunOnVisualVariance(failCanary)
Atur apakah canary gagal atau tidak ketika ada perbedaan visual yang lebih dari ambang batas. Default-nya adalah menggagalkan canary.
Logger Synthetic
SyntheticsLogger menulis log keluar ke konsol dan ke file log lokal pada tingkat log yang sama. File log ini ditulis ke kedua lokasi hanya jika tingkat log berada pada atau di bawah tingkat log yang diinginkan dari fungsi log yang dipanggil tersebut.
Pernyataan logging dalam file log lokal ditambahkan dengan "DEBUG: “,"INFO: “, dan seterusnya untuk mencocokkan tingkat log dari fungsi yang dipanggil.
Anda dapat menggunakan SyntheticsLogger, dengan asumsi Anda ingin menjalankan Synthetics Library pada tingkat log yang sama dengan logging canary Synthetics Anda.
Menggunakan tidak SyntheticsLogger diperlukan untuk membuat file log yang diunggah ke lokasi hasil S3 Anda. Sebagai penggantinya, Anda dapat membuat file log lain di /tmp
folder. File apa pun yang dibuat di bawah /tmp
folder diunggah ke lokasi hasil dalam S3 sebagai artefak.
Untuk menggunakan pencatat Pustaka Synthetics:
const log = require('SyntheticsLogger');
Definisi fungsi yang berguna:
log.debug (message
,); ex
Parameter: message
adalah pesan untuk log. ex
adalah pengecualian, jika ada, untuk log.
Contoh:
log.debug("Starting step - login.");
log.error (message
,ex
);
Parameter: message
adalah pesan untuk log. ex
adalah pengecualian, jika ada, untuk log.
Contoh:
try { await login(); catch (ex) { log.error("Error encountered in step - login.", ex); }
log.info (message
,ex
);
Parameter: message
adalah pesan untuk log. ex
adalah pengecualian, jika ada, untuk log.
Contoh:
log.info("Successfully completed step - login.");
log.log (message
,ex
);
Ini adalah nama lain untuk log.info
.
Parameter: message
adalah pesan untuk log. ex
adalah pengecualian, jika ada, untuk log.
Contoh:
log.log("Successfully completed step - login.");
log.warn (message
,ex
);
Parameter: message
adalah pesan untuk log. ex
adalah pengecualian, jika ada, untuk log.
Contoh:
log.warn("Exception encountered trying to publish CloudWatch Metric.", ex);
SyntheticsLogHelper kelas
Kelas SyntheticsLogHelper
tersedia di runtime syn-nodejs-puppeteer-3.2
dan runtime yang lebih baru. Ini sudah diinisialisasi di perpustakaan CloudWatch Synthetics dan dikonfigurasi dengan konfigurasi Synthetics. Anda dapat menambahkan ini sebagai Dependensi dalam skrip Anda. Kelas ini memungkinkan Anda untuk membersihkanURLs, header, dan pesan kesalahan untuk menyunting informasi sensitif.
catatan
Synthetics membersihkan semua URLs pesan kesalahan yang dicatat sebelum memasukkannya ke dalam log, laporan, HAR file, dan kesalahan canary run berdasarkan pengaturan konfigurasi Synthetics. restrictedUrlParameters
Anda harus menggunakan getSanitizedUrl
atau getSanitizedErrorMessage
hanya jika Anda login URLs atau kesalahan dalam skrip Anda. Synthetics tidak menyimpan artefak canary kecuali kesalahan canary yang dilemparkan oleh skrip tersebut. Artefak Canary run disimpan di akun pelanggan Anda. Untuk informasi selengkapnya, lihat Pertimbangan keamanan untuk canary Synthetics.
Topik
getSanitizedUrl(url, stepConfig = nol)
Fungsi ini tersedia di syn-nodejs-puppeteer-3.2
dan nanti. Ia mengembalikan string url sanitasi berdasarkan konfigurasi. Anda dapat memilih untuk menyunting URL parameter sensitif seperti kata sandi dan access_token dengan menyetel properti. restrictedUrlParameters
Secara default, kata sandi di URLs disunting. Anda dapat mengaktifkan URL kata sandi jika diperlukan dengan menyetel includeUrlPassword
ke true.
Fungsi ini memunculkan kesalahan jika yang URL diteruskan tidak validURL.
Parameter
url
adalah string dan adalah URL untuk membersihkan.stepConfig
(Opsional) mengganti konfigurasi Synthetics global untuk fungsi ini. JikastepConfig
tidak diteruskan, konfigurasi global digunakan untuk membersihkan. URL
Contoh
Contoh ini menggunakan contoh berikutURL:https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200
. Dalam contoh ini, access_token
berisi informasi sensitif Anda yang tidak boleh dibuat log. Perhatikan bahwa layanan Synthetics tidak menyimpan artefak canary run. Artefak seperti log, tangkapan layar, dan laporan semuanya disimpan dalam bucket Amazon S3 di akun pelanggan Anda.
Langkah pertama adalah mengatur konfigurasi Synthetics.
// Import Synthetics dependency const synthetics = require('Synthetics'); // Import Synthetics logger for logging url const log = require('SyntheticsLogger'); // Get Synthetics configuration const synConfig = synthetics.getConfiguration(); // Set restricted parameters synConfig.setConfig({ restrictedUrlParameters: ['access_token']; });
Selanjutnya, bersihkan dan catat URL
// Import SyntheticsLogHelper dependency const syntheticsLogHelper = require('SyntheticsLogHelper'); const sanitizedUrl = synthetics.getSanitizedUrl('https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200');
Ini mencatat yang berikut ini di log canary Anda.
My example url is: https://example.com/learn/home?access_token=REDACTED&token_type=Bearer&expires_in=1200
Anda dapat mengganti konfigurasi Synthetics untuk URL a dengan meneruskan parameter opsional yang berisi opsi konfigurasi Synthetics, seperti pada contoh berikut.
const urlConfig = { restrictedUrlParameters = ['*'] }; const sanitizedUrl = synthetics.getSanitizedUrl('https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200', urlConfig); logger.info('My example url is: ' + sanitizedUrl);
Contoh sebelumnya menyunting semua parameter kueri, dan dibuat log sebagai berikut:
My example url is: https://example.com/learn/home?access_token=REDACTED&token_type=REDACTED&expires_in=REDACTED
getSanitizedErrorPesan
Fungsi ini tersedia di syn-nodejs-puppeteer-3.2
dan nanti. Ia mengembalikan string kesalahan yang disanitasi dengan membersihkan setiap hadiah URLs berdasarkan konfigurasi Synthetics. Anda dapat memilih untuk mengganti konfigurasi Synthetics global ketika Anda memanggil fungsi ini dengan meneruskan parameter stepConfig
opsional.
Parameter
error
adalah kesalahan untuk membersihkan. Ini bisa berupa objek Kesalahan atau string.stepConfig
(Opsional) mengganti konfigurasi Synthetics global untuk fungsi ini. JikastepConfig
tidak diteruskan, konfigurasi global digunakan untuk membersihkan. URL
Contoh
Contoh ini menggunakan kesalahan berikut: Failed to load url: https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200
Langkah pertama adalah mengatur konfigurasi Synthetics.
// Import Synthetics dependency const synthetics = require('Synthetics'); // Import Synthetics logger for logging url const log = require('SyntheticsLogger'); // Get Synthetics configuration const synConfig = synthetics.getConfiguration(); // Set restricted parameters synConfig.setConfig({ restrictedUrlParameters: ['access_token']; });
Berikutnya, bersihkan dan buat log pesan kesalahan
// Import SyntheticsLogHelper dependency const syntheticsLogHelper = require('SyntheticsLogHelper'); try { // Your code which can throw an error containing url which your script logs } catch (error) { const sanitizedErrorMessage = synthetics.getSanitizedErrorMessage(errorMessage); logger.info(sanitizedErrorMessage); }
Ini mencatat yang berikut ini di log canary Anda.
Failed to load url: https://example.com/learn/home?access_token=REDACTED&token_type=Bearer&expires_in=1200
getSanitizedHeaders(header, stepConfig = nol)
Fungsi ini tersedia di syn-nodejs-puppeteer-3.2
dan nanti. Ini mengembalikan header yang dibersihkan berdasarkan properti restrictedHeaders
dari syntheticsConfiguration
. Header yang ditentukan dalam restrictedHeaders
properti disunting dari log, HAR file, dan laporan.
Parameter
headers
adalah objek yang berisi header untuk membersihkan.stepConfig
(Opsional) mengganti konfigurasi Synthetics global untuk fungsi ini. JikastepConfig
tidak diteruskan, konfigurasi global digunakan untuk membersihkan header.
Kelas dan fungsi pustaka Node.js yang hanya berlaku untuk canary UI
Fungsi pustaka CloudWatch Synthetics berikut untuk Node.js hanya berguna untuk kenari UI.
Kelas Synthetics
Fungsi-fungsi berikut berada dalam kelas Synthetics.
Topik
async addUserAgent (halaman, userAgentString);
Fungsi ini ditambahkan userAgentString
ke header user-agent halaman tertentu.
Contoh:
await synthetics.addUserAgent(page, "MyApp-1.0");
Hasil di header pengguna-agen halaman yang diatur untuk browsers-user-agent-header-value
MyApp-1.0
asinkron executeStep (stepName, functionToExecute, [stepConfig]);
Menjalankan langkah yang disediakan, membungkusnya dengan start/pass/fail logging, start/pass/fail screenshots, and pass/fail dan metrik durasi.
catatan
Jika Anda menggunakan runtime syn-nodejs-2.1
atau runtime yang lebih baru, Anda dapat mengonfigurasi apakah dan kapan tangkapan layar diambil. Untuk informasi selengkapnya, lihat SyntheticsConfiguration kelas.
Fungsi executeStep
juga melakukan hal berikut:
Membuat log bahwa langkah tersebut dimulai.
Mengambil tangkapan layar yang bernama
<stepName>-starting
.Memulai pengatur waktu.
Menjalankan fungsi yang disediakan.
Jika fungsi kembali secara normal, ini dihitung sebagai lulus. Jika fungsi tersebut throw, maka ini dihitung sebagai gagal.
Mengakhiri pengatur waktu.
Mencatat log jika langkah berhasil atau gagal
Mengambil tangkapan layar yang bernama
<stepName>-succeeded
atau<stepName>-failed
.Memancarkan metrik
stepName
SuccessPercent
, 100 untuk lulus atau 0 untuk gagal.Memancarkan metrik
stepName
Duration
, dengan nilai didasarkan pada mulai melangkah dan waktu selesai.Akhirnya, mengembalikan apa yang dikembalikan oleh
functionToExecute
atau melempar kembali apa yang dilempar olehfunctionToExecute
.
Jika canary menggunakan runtime syn-nodejs-2.0
atau lebih baru, fungsi ini juga menambahkan ringkasan pelaksanaan langkah ke laporan canary. Ringkasan mencakup detail tentang setiap langkah, seperti waktu mulai, waktu akhir, status (PASSED/FAILED), alasan kegagalan (jika gagal), dan tangkapan layar yang diambil selama eksekusi setiap langkah.
Contoh:
await synthetics.executeStep('navigateToUrl', async function (timeoutInMillis = 30000) { await page.goto(url, {waitUntil: ['load', 'networkidle0'], timeout: timeoutInMillis});});
Respons:
Mengembalikan apa yang functionToExecute
kembalikan.
Pembaruan dengan syn-nodejs-2.2
Dimulai dengansyn-nodejs-2.2
, Anda dapat secara opsional meneruskan konfigurasi langkah untuk mengganti konfigurasi CloudWatch Synthetics pada level langkah. Untuk daftar opsi yang dapat Anda teruskan ke executeStep
, silakan lihat SyntheticsConfiguration kelas.
Contoh berikut menimpa konfigurasi false
default untuk continueOnStepFailure
hingga true
dan menentukan kapan harus mengambil tangkapan layar.
var stepConfig = { 'continueOnStepFailure': true, 'screenshotOnStepStart': false, 'screenshotOnStepSuccess': true, 'screenshotOnStepFailure': false } await executeStep('Navigate to amazon', async function (timeoutInMillis = 30000) { await page.goto(url, {waitUntil: ['load', 'networkidle0'], timeout: timeoutInMillis}); }, stepConfig);
getDefaultLaunchPilihan ();
getDefaultLaunchOptions()
Fungsi mengembalikan opsi peluncuran browser yang digunakan oleh CloudWatch Synthetics. Untuk informasi selengkapnya, silakan lihat Jenis opsi peluncuran
// This function returns default launch options used by Synthetics. const defaultOptions = await synthetics.getDefaultLaunchOptions();
newPage();
Mengembalikan halaman terbuka saat ini sebagai objek Puppeteer. Untuk informasi lebih lanjut, lihat Puppeteer API
Contoh:
let page = synthetics.newPage();
Respons:
Halaman (objek Puppeteer) yang saat ini terbuka di sesi browser saat ini.
getRequestResponseLogHelper();
penting
Pada canary yang menggunakan syn-nodejs-puppeteer-3.2
runtime atau yang lebih baru, fungsi ini tidak digunakan lagi bersama dengan kelas RequestResponseLogHelper
. Setiap penggunaan fungsi ini menyebabkan peringatan muncul di log canary Anda. Fungsi ini akan dihapus di versi runtime yang akan datang. Jika Anda menggunakan fungsi ini, gunakan RequestResponseLogHelper kelas sebagai gantinya.
Gunakan fungsi ini sebagai pola pembangun untuk mengubah bendera pembuatan log permintaan dan respons.
Contoh:
synthetics.setRequestResponseLogHelper(getRequestResponseLogHelper().withLogRequestHeaders(false));;
Respons:
{RequestResponseLogHelper}
launch(options)
Opsi untuk fungsi ini hanya tersedia di versi runtime syn-nodejs-2.1
atau lebih baru.
Fungsi ini hanya digunakan untuk canary UI. Hal ini menutup browser yang sudah ada dan meluncurkan browser baru.
catatan
CloudWatch Synthetics selalu meluncurkan browser sebelum mulai menjalankan skrip Anda. Anda tidak perlu memanggil launch() kecuali ingin meluncurkan browser baru dengan pilihan-pilihan kustom.
(options) adalah serangkaian pilihan yang dapat dikonfigurasi untuk diatur di browser. Untuk informasi selengkapnya, silakan lihat Jenis opsi peluncuran
Jika Anda memanggil fungsi ini tanpa opsi, Synthetics meluncurkan browser dengan argumen default, executablePath
, dan defaultViewport
. Tampilan default di CloudWatch Synthetics adalah 1920 x 1080.
Anda dapat mengganti parameter peluncuran yang digunakan oleh CloudWatch Synthetics dan meneruskan parameter tambahan saat meluncurkan browser. Misalnya, snippet kode berikut meluncurkan browser dengan argumen default dan jalur yang dapat dieksekusi secara default, tetapi dengan viewport berukuran 800 x 600.
await synthetics.launch({ defaultViewport: { "deviceScaleFactor": 1, "width": 800, "height": 600 }});
Kode contoh berikut menambahkan ignoreHTTPSErrors
parameter baru ke parameter peluncuran CloudWatch Synthetics:
await synthetics.launch({ ignoreHTTPSErrors: true });
Anda dapat menonaktifkan keamanan web dengan menambahkan --disable-web-security
flag ke args dalam parameter peluncuran CloudWatch Synthetics:
// This function adds the --disable-web-security flag to the launch parameters const defaultOptions = await synthetics.getDefaultLaunchOptions(); const launchArgs = [...defaultOptions.args, '--disable-web-security']; await synthetics.launch({ args: launchArgs });
RequestResponseLogHelper kelas
penting
Pada canary yang menggunakan runtime syn-nodejs-puppeteer-3.2
atau yang lebih baru, kelas ini tidak digunakan lagi. Setiap penggunaan kelas ini menyebabkan peringatan muncul di log canary Anda. Fungsi ini akan dihapus di versi runtime yang akan datang. Jika Anda menggunakan fungsi ini, gunakan RequestResponseLogHelper kelas sebagai gantinya.
Menangani konfigurasi halus dan pembuatan representasi string atas muatan permintaan dan respons.
class RequestResponseLogHelper { constructor () { this.request = {url: true, resourceType: false, method: false, headers: false, postData: false}; this.response = {status: true, statusText: true, url: true, remoteAddress: false, headers: false}; } withLogRequestUrl(logRequestUrl); withLogRequestResourceType(logRequestResourceType); withLogRequestMethod(logRequestMethod); withLogRequestHeaders(logRequestHeaders); withLogRequestPostData(logRequestPostData); withLogResponseStatus(logResponseStatus); withLogResponseStatusText(logResponseStatusText); withLogResponseUrl(logResponseUrl); withLogResponseRemoteAddress(logResponseRemoteAddress); withLogResponseHeaders(logResponseHeaders);
Contoh:
synthetics.setRequestResponseLogHelper(getRequestResponseLogHelper() .withLogRequestPostData(true) .withLogRequestHeaders(true) .withLogResponseHeaders(true));
Jawaban:
{RequestResponseLogHelper}
setRequestResponseLogHelper();
penting
Pada canary yang menggunakan syn-nodejs-puppeteer-3.2
runtime atau yang lebih baru, fungsi ini tidak digunakan lagi bersama dengan kelas RequestResponseLogHelper
. Setiap penggunaan fungsi ini menyebabkan peringatan muncul di log canary Anda. Fungsi ini akan dihapus di versi runtime yang akan datang. Jika Anda menggunakan fungsi ini, gunakan RequestResponseLogHelper kelas sebagai gantinya.
Gunakan fungsi ini sebagai pola pembangun untuk mengatur bendera pembuatan log permintaan dan respons.
Contoh:
synthetics.setRequestResponseLogHelper().withLogRequestHeaders(true).withLogResponseHeaders(true);
Jawaban:
{RequestResponseLogHelper}
async takeScreenshot (nama, akhiran);
Mengambil tangkapan layar (. PNG) dari halaman saat ini dengan nama dan akhiran (opsional).
Contoh:
await synthetics.takeScreenshot("navigateToUrl", "loaded")
Contoh ini menangkap dan mengunggah tangkapan layar yang dinamai 01-navigateToUrl-loaded.png
ke bucket S3 canary.
Anda dapat mengambil tangkapan layar untuk langkah canary tertentu dengan meneruskan stepName
sebagai parameter pertama. Tangkapan layar ditautkan ke langkah canary dalam laporan Anda, untuk membantu Anda melacak setiap langkah saat melakukan debug.
CloudWatch Synthetics canaries secara otomatis mengambil tangkapan layar sebelum memulai langkah (executeStep
fungsi) dan setelah langkah selesai (kecuali jika Anda mengonfigurasi kenari untuk menonaktifkan tangkapan layar). Anda dapat mengambil lebih banyak tangkapan layar dengan meneruskan nama langkah di fungsi takeScreenshot
.
Contoh berikut mengambil tangkapan layar dengan signupForm
sebagai nilai dari stepName
. Tangkapan layar akan dinamai 02-signupForm-address
dan akan ditautkan dengan langkah yang dinamai signupForm
dalam laporan canary.
await synthetics.takeScreenshot('signupForm', 'address')
BrokenLinkCheckerReport kelas
Kelas ini menyediakan metode untuk menambahkan tautan synthetics. Dukungannya hanya pada canary yang menggunakan versi syn-nodejs-2.0-beta
runtime atau lebih baru.
Untuk menggunakan BrokenLinkCheckerReport
, sertakan baris berikut dalam skrip:
const BrokenLinkCheckerReport = require('BrokenLinkCheckerReport'); const brokenLinkCheckerReport = new BrokenLinkCheckerReport();
Definisi fungsi yang berguna:
addLink(syntheticsLink
, isBroken)
adalah syntheticsLink
SyntheticsLink
objek yang mewakili tautan. Fungsi ini menambahkan tautan sesuai dengan kode status. Secara bawaan, ini menganggap tautan rusak jika kode status tidak tersedia atau kode status 400 atau lebih tinggi. Anda dapat mengganti perilaku bawaan ini dengan memasukkan parameter isBrokenLink
opsional dengan nilai true
atau false
.
Fungsi ini tidak memiliki nilai balik.
getLinks()
Fungsi ini mengembalikan susunan SyntheticsLink
objek yang disertakan dalam laporan pemeriksa tautan yang rusak.
getTotalBrokenTautan ()
Fungsi ini mengembalikan angka yang mewakili total tautan yang rusak.
getTotalLinksDiperiksa ()
Fungsi ini mengembalikan angka yang mewakili total tautan yang disertakan dalam laporan.
Cara menggunakan BrokenLinkCheckerReport
Snippet kode skrip canary berikut menunjukkan contoh navigasi ke tautan dan menambahkannya ke laporan pemeriksa tautan yang rusak.
Impor
SyntheticsLink
,BrokenLinkCheckerReport
, danSynthetics
.const BrokenLinkCheckerReport = require('BrokenLinkCheckerReport'); const SyntheticsLink = require('SyntheticsLink'); // Synthetics dependency const synthetics = require('Synthetics');
Untuk menambahkan tautan ke laporan, buat instans
BrokenLinkCheckerReport
.let brokenLinkCheckerReport = new BrokenLinkCheckerReport();
Arahkan ke URL dan tambahkan ke laporan pemeriksa tautan rusak.
let url = "https://amazon.com"; let syntheticsLink = new SyntheticsLink(url); // Navigate to the url. let page = await synthetics.newPage(); // Create a new instance of Synthetics Link let link = new SyntheticsLink(url) try { const response = await page.goto(url, {waitUntil: 'domcontentloaded', timeout: 30000}); } catch (ex) { // Add failure reason if navigation fails. link.withFailureReason(ex); } if (response) { // Capture screenshot of destination page let screenshotResult = await synthetics.takeScreenshot('amazon-home', 'loaded'); // Add screenshot result to synthetics link link.addScreenshotResult(screenshotResult); // Add status code and status description to the link link.withStatusCode(response.status()).withStatusText(response.statusText()) } // Add link to broken link checker report. brokenLinkCheckerReport.addLink(link);
Tambahkan laporan ke Synthetics. Ini membuat JSON file bernama
BrokenLinkCheckerReport.json
di bucket S3 Anda untuk setiap proses kenari. Anda dapat melihat laporan tautan di konsol untuk setiap kenari yang dijalankan bersama dengan tangkapan layar, log, dan HAR file.await synthetics.addReport(brokenLinkCheckerReport);
SyntheticsLink kelas
Kelas ini menyediakan metode untuk merangkum informasi. Dukungannya hanya pada canary yang menggunakan versi syn-nodejs-2.0-beta
runtime atau lebih baru.
Untuk menggunakan SyntheticsLink
, sertakan baris berikut dalam skrip:
const SyntheticsLink = require('SyntheticsLink'); const syntheticsLink = new SyntheticsLink("https://www.amazon.com");
Fungsi ini mengembalikan syntheticsLink
Object
Definisi fungsi yang berguna:
withUrl(url
)
adalah URL string. Fungsi ini mengembalikan url
syntheticsLink
Object
withText(text
)
adalah sebuah string yang mewakili teks jangkar. Fungsi ini mengembalikan text
syntheticsLink
. Ini menambahkan teks jangkar yang sesuai dengan tautan.Object
withParentUrl(parentUrl
)
adalah string yang mewakili induk (halaman sumber)URL. Fungsi ini mengembalikan parentUrl
syntheticsLink
Object
withStatusCode(statusCode
)
adalah sebuah string yang mewakili kode status. Fungsi ini mengembalikan statusCode
syntheticsLink
Object
withFailureReason(failureReason
)
adalah sebuah string yang mewakili alasan kegagalan. Fungsi ini mengembalikan failureReason
syntheticsLink
Object
addScreenshotResult(screenshotResult
)
adalah sebuah objek. Ini adalah instans screenshotResult
ScreenshotResult
yang dikembalikan oleh fungsi Synthetics takeScreenshot
. Objek tersebut meliputi hal berikut:
fileName
— Sebuah string yang mewakiliscreenshotFileName
pageUrl
(opsional)error
(opsional)
Kelas dan fungsi perpustakaan Node.js yang hanya berlaku untuk API kenari
Fungsi pustaka CloudWatch Synthetics berikut untuk Node.js hanya berguna untuk API burung kenari.
executeHttpStep(stepName,requestOptions, [panggilan balik], [stepConfig])
Mengeksekusi HTTP permintaan yang disediakan sebagai langkah, dan menerbitkan SuccessPercent
(lulus/gagal) dan metrik. Duration
executeHttpStepmenggunakan salah satu HTTP atau fungsi HTTPS asli di bawah tenda, tergantung pada protokol yang ditentukan dalam permintaan.
Fungsi ini juga menambahkan ringkasan pelaksanaan langkah ke laporan canary. Ringkasan mencakup detail tentang setiap HTTP permintaan, seperti berikut ini:
Waktu mulai
Waktu akhir
Status (PASSED/FAILED)
-
Alasan kegagalan, jika gagal
-
HTTPdetail panggilan seperti header permintaan/respons, badan, kode status, pesan status, dan pengaturan waktu kinerja.
Parameter
stepName(String
)
Menentukan nama dari langkah tersebut. Nama ini juga digunakan untuk menerbitkan CloudWatch metrik untuk langkah ini.
requestOptions(Object or String
)
Nilai parameter ini bisa berupaURL, URL string, atau objek. Jika itu adalah objek, maka itu harus menjadi satu set opsi yang dapat dikonfigurasi untuk membuat HTTP permintaan. Ini mendukung semua opsi di http.request(options[, callback])
Selain opsi Node.js ini, requestOptionsmendukung parameter tambahanbody
. Anda dapat menggunakan parameter body
untuk meneruskan data sebagai bodi permintaan.
panggilan balik () response
(Opsional) Ini adalah fungsi pengguna yang dipanggil dengan HTTP respons. Responsnya adalah dari tipe Class: http. IncomingMessage
stepConfig(object
)
(Opsional) Gunakan parameter ini untuk mengganti konfigurasi synthetics global dengan konfigurasi yang berbeda untuk langkah ini.
Contoh penggunaan executeHttpStep
Rangkaian contoh berikut membangun satu sama lain untuk menggambarkan berbagai penggunaan opsi ini.
Contoh pertama ini mengonfigurasi parameter permintaan. Anda dapat lulus URL sebagai requestOptions:
let requestOptions = 'https://www.amazon.com';
Atau Anda dapat meneruskan satu set opsi:
let requestOptions = { 'hostname': 'myproductsEndpoint.com', 'method': 'GET', 'path': '/test/product/validProductName', 'port': 443, 'protocol': 'https:' };
Contoh berikutnya menciptakan fungsi callback yang menerima respons. Secara default, jika Anda tidak menentukan callback, CloudWatch Synthetics memvalidasi bahwa statusnya antara 200 dan 299 inklusif.
// Handle validation for positive scenario const callback = async function(res) { return new Promise((resolve, reject) => { if (res.statusCode < 200 || res.statusCode > 299) { throw res.statusCode + ' ' + res.statusMessage; } let responseBody = ''; res.on('data', (d) => { responseBody += d; }); res.on('end', () => { // Add validation on 'responseBody' here if required. For ex, your status code is 200 but data might be empty resolve(); }); }); };
Contoh berikutnya membuat konfigurasi untuk langkah ini yang mengesampingkan konfigurasi Synthetics global CloudWatch . Konfigurasi langkah dalam contoh ini memungkinkan header permintaan, header respons, bodi permintaan (data posting), dan bodi respons dalam laporan Anda dan membatasi nilai header 'X-Amz-Security-Token' dan 'Authorization'. Secara bawaan, nilai-nilai ini tidak termasuk dalam laporan untuk alasan keamanan. Jika Anda memilih untuk memasukkannya, data hanya disimpan dalam bucket S3 Anda.
// By default headers, post data, and response body are not included in the report for security reasons. // Change the configuration at global level or add as step configuration for individual steps let stepConfig = { includeRequestHeaders: true, includeResponseHeaders: true, restrictedHeaders: ['X-Amz-Security-Token', 'Authorization'], // Restricted header values do not appear in report generated. includeRequestBody: true, includeResponseBody: true };
Contoh terakhir ini meneruskan permintaan Anda executeHttpStepdan memberi nama langkahnya.
await synthetics.executeHttpStep('Verify GET products API', requestOptions, callback, stepConfig);
Dengan kumpulan contoh ini, CloudWatch Synthetics menambahkan detail dari setiap langkah dalam laporan Anda dan menghasilkan metrik untuk setiap langkah yang digunakan. stepName
Anda akan melihat metrik successPercent
dan duration
untuk langkah Verify GET products API
. Anda dapat memantau API kinerja Anda dengan memantau metrik untuk langkah API panggilan Anda.
Untuk sampel skrip lengkap yang menggunakan fungsi-fungsi ini, silakan lihat Kenari multi-langkah API.