Fungsi pustaka tersedia untuk skrip canary Node.js - Amazon CloudWatch

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

Fungsi pustaka tersedia untuk skrip canary Node.js

Bagian ini mencantumkan fungsi pustaka yang tersedia untuk skrip canary Node.js.

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.

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 ARN dari canary.

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 mengkonfigurasi perilaku fungsi perpustakaan Synthetics. 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 pasangan kunci/nilai konfigurasi.

Anda dapat memberikan opsi di tingkat langkah. Sebagai contoh, silakan lihat async executeStep (StepName,, [StepConfig]); functionToExecute dan executeHttpStep(StepName, requestOptions, [callback], [stepConfig])

Definisi fungsi:

setConfig(options)

options adalah sebuah objek, yang merupakan kumpulan opsi yang dapat dikonfigurasi untuk canary Anda. Bagian berikut menjelaskan bidang-bidang yang memungkinkan dalam options.

setConfig(options) untuk semua canary

Untuk canary yang menggunakan syn-nodejs-puppeteer-3.2 atau yang lebih baru, (opsi) untuk setConfig dapat menyertakan parameter-parameter berikut:

  • includeRequestHeaders (boolean)— Apakah akan menyertakan header permintaan dalam laporan. Nilai default-nya false.

  • includeResponseHeaders (boolean)— Apakah akan menyertakan header respons dalam laporan tersebut. Nilai default-nya false.

  • restrictedHeaders (array)— Sebuah daf.ar nilai header untuk diabaikan, jika header disertakan. Ini berlaku untuk header permintaan dan respons. Misalnya, Anda dapat menyembunyikan kredensialnya dengan meneruskan includeRequestHeadersas true dan RestrictedHeaders as. ['Authorization']

  • includeRequestBody (boolean)— Apakah akan menyertakan bodi permintaan dalam laporan. Nilai default-nya false.

  • includeResponseBody (boolean)— Apakah akan menyertakan bodi respons dalam laporan. Standarnya adalah false.

setConfig (opsi) mengenai metrik CloudWatch

Untuk canary yang menggunakan syn-nodejs-puppeteer-3.1 atau yang lebih baru, (options) untuk setConfig dapat mencakup parameter Boolean berikut yang menentukan metrik mana yang diterbitkan oleh canary. 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 metrik Failed (dengan dimensi CanaryName) untuk canary ini. Nilai default-nya true.

  • failedRequestsMetric (boolean)— Apakah akan memancarkan metrik Failed requests (dengan dimensi CanaryName) untuk canary ini. Nilai default-nya true.

  • _2xxMetric (boolean)— Apakah akan memancarkan metrik 2xx (dengan dimensi CanaryName) untuk canary ini. Nilai default-nya true.

  • _4xxMetric (boolean)— Apakah akan memancarkan metrik 4xx (dengan dimensi CanaryName) untuk canary ini. Nilai default-nya true.

  • _5xxMetric (boolean)— Apakah akan memancarkan metrik 5xx (dengan dimensi CanaryName) untuk canary ini. Nilai default-nya true.

  • stepDurationMetric (boolean)— Apakah akan memancarkan metrik Step duration (dengan dimensi CanaryName StepName) untuk canary ini. Bawaannya adalah true.

  • stepSuccessMetric (boolean)— Apakah akan memancarkan metrik Step success (dengan dimensi CanaryName StepName) untuk canary ini. Bawaannya adalah true.

  • aggregatedFailedCanaryMetric (boolean)— Apakah akan memancarkan metrik Failed (tanpa dimensi CanaryName) untuk canary ini. Bawaannya adalah true.

  • aggregatedFailedRequestsMetric (boolean)— Apakah akan memancarkan metrik Failed Requests (tanpa dimensi CanaryName) untuk canary ini. Bawaannya adalah true.

  • aggregated2xxMetric (boolean)— Apakah akan memancarkan metrik 2xx (tanpa dimensi CanaryName) untuk canary ini. Bawaannya adalah true.

  • aggregated4xxMetric (boolean)— Apakah akan memancarkan metrik 4xx (tanpa dimensi CanaryName) untuk canary ini. Bawaannya adalah true.

  • aggregated5xxMetric (boolean)— Apakah akan memancarkan metrik 5xx (tanpa dimensi CanaryName) untuk canary ini. Bawaannya adalah true.

  • visualMonitoringSuccessPercentMetric (boolean)— Apakah akan memancarkan metrik visualMonitoringSuccessPercent untuk canary ini. Bawaannya adalah true.

  • visualMonitoringTotalComparisonsMetric (boolean)— Apakah akan memancarkan metrik visualMonitoringTotalComparisons untuk canary ini. Bawaannya adalah false.

  • stepsReport (boolean)— Apakah akan melaporkan ringkasan eksekusi langkah. Nilai default-nya true.

  • includeUrlPassword (boolean)— Apakah akan menyertakan kata sandi yang muncul di URL. Secara default, kata sandi yang muncul di URL disunting dari log dan laporan, untuk mencegah pengungkapan data sensitif. Bawaannya adalah false.

  • restrictedUrlParameters (array)— Daftar jalur URL atau parameter kueri untuk disunting. Ini berlaku untuk URL yang muncul di log, laporan, dan kesalahan. Parameter tersebut tidak peka terhadap huruf besar/kecil. Anda dapat meneruskan tanda bintang (*) sebagai nilai untuk menyunting semua jalur URL dan nilai parameter 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. Nilai default-nya true.

  • logResponse (boolean)— Apakah akan mencatat setiap respons di log canary. Untuk canary UI, ini membuat log terhadap setiap respons yang diterima oleh browser. Bawaannya adalah true.

  • logRequestBody (boolean)— Apakah akan mencatat bodi permintaan bersama dengan permintaan di log canary. Konfigurasi ini hanya berlaku jika logRequest merupakan true. Nilai default-nya false.

  • logResponseBody (boolean)— Apakah akan mencatat bodi respons bersama dengan respons di log canary. Konfigurasi ini hanya berlaku jika logResponse merupakan true. Nilai default-nya false.

  • logRequestHeaders (boolean)— Apakah akan mencatat header permintaan bersama dengan permintaan di log canary. Konfigurasi ini hanya berlaku jika logRequest merupakan true. Nilai default-nya false.

    Perhatikan bahwa includeRequestHeaders memungkinkan header dalam artefak.

  • logResponseHeaders (boolean)— Apakah akan mencatat header respons bersama dengan respons di log canary. Konfigurasi ini hanya berlaku jika logResponse merupakan true. Nilai default-nya false.

    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.

get2xxMetric()

Mengembalikan apakah canary memancarkan metrik 2xx dengan dimensi CanaryName.

get4xxMetric()

Mengembalikan apakah canary memancarkan metrik 4xx dengan dimensi CanaryName.

get5xxMetric()

Mengembalikan apakah canary memancarkan metrik 5xx dengan dimensi CanaryName.

getAggregated2xxMetric()

Mengembalikan apakah canary memancarkan metrik 2xx tanpa dimensi.

getAggregated4xxMetric()

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.

getAggregated5xxMetric()

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.

with2xxMetric(_2xxMetric)

Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 2xx dengan dimensi CanaryName untuk canary ini.

with4xxMetric(_4xxMetric)

Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 4xx dengan dimensi CanaryName untuk canary ini.

with5xxMetric(_5xxMetric)

Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 5xx dengan dimensi CanaryName untuk canary ini.

withAggregated2xxMetric(aggregated2xxMetric)

Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 2xx tanpa dimensi untuk canary ini.

withAggregated4xxMetric(aggregated4xxMetric)

Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 4xx tanpa dimensi untuk canary ini.

withAggregated5xxMetric(aggregated5xxMetric)

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 file HAR untuk canary 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 di URL di log dan laporan.

withRestrictedUrlParameter ()

Menerima array jalur URL atau parameter kueri untuk disunting. Ini berlaku untuk URL yang muncul di log, laporan, dan kesalahan. Anda dapat meneruskan tanda bintang (*) sebagai nilai untuk menyunting semua jalur URL dan nilai parameter 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 canary membuat file HAR.

getStepsReport()

Mengembalikan apakah canary melaporkan ringkasan eksekusi langkah.

getIncludeUrlKata Sandi ()

Mengembalikan apakah canary menyertakan kata sandi yang muncul di URL di log dan laporan.

getRestrictedUrlParameter ()

Mengembalikan apakah canary menyunting jalur URL atau parameter kueri.

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(options) untuk canary UI

Untuk canary UI, setConfig dapat mencakup parameter Boolean berikut.

  • continueOnStepFailure (boolean)— Apakah akan melanjutkan menjalankan skrip canary setelah langkah gagal (ini mengacu pada fungsi executeStep). Jika ada langkah yang gagal, proses canary akan tetap ditandai sebagai gagal. Bawaannya adalah false.

  • harFile (boolean)— Apakah akan membuat file HAR. Bawaannya adalah True.

  • 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();

Lalu, atur konfigurasi untuk setiap pilihan dengan memanggil metode setConfig menggunakan salah satu pilihan 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 fungsi disableStepScreenshots () 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(options) untuk canary API

Untuk canary API, setConfig dapat mencakup parameter Boolean berikut:

  • continueOnHttpStepFailure(boolean) - Apakah akan melanjutkan menjalankan skrip kenari setelah langkah HTTP gagal (ini mengacu pada executeHttpStepfungsi). Jika ada langkah yang gagal, proses canary akan tetap ditandai sebagai gagal. Bawaannya adalah true.

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(DiinginkanPersentase)

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 pembuatan log di file log lokal diawali dengan "DEBUG: ", "INFO: ", dan seterusnya untuk mencocokkan tingkat log dari fungsi yang dipanggil tersebut.

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 membersihkan URL, header, dan pesan kesalahan untuk menyunting informasi sensitif.

catatan

Synthetics membersihkan semua URL dan pesan kesalahan yang dicatat sebelum memasukkannya ke dalam log, laporan, file HAR, dan kesalahan canary run berdasarkan pengaturan konfigurasi Synthetics restrictedUrlParameters. Anda harus menggunakan getSanitizedUrl atau getSanitizedErrorMessage hanya jika Anda membuat log URL 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.

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 parameter URL sensitif seperti kata sandi dan access_token dengan menyetel properti restrictedUrlParameters. Secara default, kata sandi di URL disunting. Anda dapat mengaktifkan kata sandi URL jika diperlukan dengan menyetel includeUrlPassword ke true.

Fungsi ini memunculkan kesalahan jika URL yang dilewatkan bukan sebuah URL yang valid.

Parameter

  • url adalah string dan merupakan URL untuk membersihkan.

  • StepConfig (Opsional) mengganti konfigurasi Synthetics global untuk fungsi ini. Jika stepConfig tidak diteruskan, konfigurasi global digunakan untuk membersihkan URL.

Contoh

Contoh ini menggunakan URL sampel berikut: 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']; });

Berikutnya, bersihkan dan log 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 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. Ini mengembalikan string kesalahan yang dibersihkan dengan membersihkan URL apa pun yang ada berdasarkan konfigurasi Synthetics. Anda dapat memilih untuk mengganti konfigurasi Synthetics global ketika Anda memanggil fungsi ini dengan meneruskan parameter stepConfig opsional.

Parameter

  • kesalahan adalah kesalahan untuk membersihkan. Ini bisa berupa objek Kesalahan atau string.

  • StepConfig (Opsional) mengganti konfigurasi Synthetics global untuk fungsi ini. Jika stepConfig 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 = null)

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, file HAR, dan laporan.

Parameter

  • header adalah objek yang berisi header untuk membersihkan.

  • StepConfig (Opsional) mengganti konfigurasi Synthetics global untuk fungsi ini. Jika stepConfig 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.

async addUserAgent (halaman, userAgentString);

Fungsi ini ditambahkan userAgentStringke header user-agent halaman yang ditentukan.

Contoh:

await synthetics.addUserAgent(page, "MyApp-1.0");

Hasil di header pengguna-agen halaman yang diatur untuk browsers-user-agent-header-valueMyApp-1.0

async executeStep (StepName,, [StepConfig]); functionToExecute

Mengeksekusi langkah yang disediakan, membungkusnya dengan pembuatan log mulai/lulus/gagal, tangkapan layar mulai/lulus/gagal, dan metrik lulus/gagal dan 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 oleh functionToExecute.

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 (LULUS/GAGAL), alasan kegagalan (jika gagal), dan tangkapan layar yang diambil selama pelaksanaan 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();

getPage();

Mengembalikan halaman terbuka saat ini sebagai objek Puppeteer. Untuk informasi selengkapnya, silakan lihat API Puppeteer v1.14.0.

Contoh:

let page = synthetics.getPage();

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);

Respons:

{RequestResponseLogHelper}

async takeScreenshot(name, suffix);

Mengambil tangkapan layar (.PNG) 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 (executeStepfungsi) 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)

syntheticsLink adalah objek SyntheticsLink yang mewakili suatu 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 objek SyntheticsLink 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.

  1. Impor SyntheticsLink, BrokenLinkCheckerReport, dan Synthetics.

    const BrokenLinkCheckerReport = require('BrokenLinkCheckerReport'); const SyntheticsLink = require('SyntheticsLink'); // Synthetics dependency const synthetics = require('Synthetics');
  2. Untuk menambahkan tautan ke laporan, buat instans BrokenLinkCheckerReport.

    let brokenLinkCheckerReport = new BrokenLinkCheckerReport();
  3. Navigasi ke URL dan tambahkan ke laporan pemeriksa tautan yang rusak.

    let url = "https://amazon.com"; let syntheticsLink = new SyntheticsLink(url); // Navigate to the url. let page = await synthetics.getPage(); // 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);
  4. Tambahkan laporan ke Synthetics. Hal ini membuat file JSON yang diberi nama BrokenLinkCheckerReport.json dalam bucket S3 Anda untuk setiap operasi canary. Anda dapat melihat laporan tautan di konsol untuk setiap operasi canary berikut tangkapan layar, log, dan file HAR.

    await synthetics.addReport(brokenLinkCheckerReport);

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 syntheticsLinkObject

Definisi fungsi yang berguna:

withUrl(url)

url adalah sebuah string URL. Fungsi ini mengembalikan syntheticsLinkObject

withText(text)

text adalah sebuah string yang mewakili teks jangkar. Fungsi ini mengembalikan syntheticsLinkObject. Ini menambahkan teks jangkar yang sesuai dengan tautan.

withParentUrl(ParenTurl)

parentUrl adalah sebuah string yang mewakili URL induk (halaman sumber). Fungsi ini mengembalikan syntheticsLinkObject

withStatusCode(StatusCode)

statusCode adalah sebuah string yang mewakili kode status. Fungsi ini mengembalikan syntheticsLinkObject

withFailureReason(FailureReason)

failureReason adalah sebuah string yang mewakili alasan kegagalan. Fungsi ini mengembalikan syntheticsLinkObject

addScreenshotResult(ScreenshotResult)

screenshotResult adalah sebuah objek. Ini adalah instans ScreenshotResult yang dikembalikan oleh fungsi Synthetics takeScreenshot. Objek tersebut meliputi hal berikut:

  • fileName— Sebuah string yang mewakili screenshotFileName

  • pageUrl (opsional)

  • error (opsional)

Kelas dan fungsi pustaka Node.js yang hanya berlaku untuk canary API

Fungsi pustaka CloudWatch Synthetics berikut untuk Node.js hanya berguna untuk kenari API.

executeHttpStep(StepName, requestOptions, [callback], [stepConfig])

Mengeksekusi permintaan HTTP yang disediakan sebagai langkah, dan menerbitkan SuccessPercent (lulus/gagal) dan metrik Duration.

executeHttpStepmenggunakan fungsi asli HTTP atau HTTPS 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 permintaan HTTP, seperti berikut ini:

  • Waktu mulai

  • Waktu akhir

  • Status (LULUS/GAGAL)

  • Alasan kegagalan, jika gagal

  • Detail panggilan HTTP seperti header permintaan/respons, bodi, kode status, pesan status, dan pengaturan waktu performa.

Parameter

stepName(String)

Menentukan nama dari langkah tersebut. Nama ini juga digunakan untuk menerbitkan CloudWatch metrik untuk langkah ini.

requestOptions(Objek or String)

Nilai parameter ini dapat berupa URL, string URL, atau sebuah objek. Jika itu adalah objek, maka itu harus berupa serangkaian opsi yang dapat dikonfigurasi untuk membuat permintaan HTTP. Ini mendukung semua opsi di http.request(options[, callback]) dalam dokumentasi Node.js.

Selain opsi Node.js ini, requestOptions mendukung parameter tambahan body. Anda dapat menggunakan parameter body untuk meneruskan data sebagai bodi permintaan.

callback(respons)

(Opsional) Ini adalah fungsi pengguna yang diinvokasi dengan respons HTTP. Responsnya adalah dari tipe Class: http. IncomingMessage.

stepConfig(objek)

(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 meneruskan 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 ke 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 menggunakan StepName.

Anda akan melihat metrik successPercent dan duration untuk langkah Verify GET products API. Anda dapat memantau performa API Anda dengan memantau metrik untuk langkah panggilan API Anda.

Untuk sampel skrip lengkap yang menggunakan fungsi-fungsi ini, silakan lihat Canary API multi-langkah.