Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menulis skrip canary Python
Skrip ini berhasil dijalani, dan mengembalikan rangkaian. Untuk melihat bentuk canary yang gagal, ubah fail = False ke fail = True
def basic_custom_script(): # Insert your code here # Perform multi-step pass/fail check # Log decisions made and results to /tmp # Be sure to wait for all your code paths to complete # before returning control back to Synthetics. # In that way, your canary will not finish and report success # before your code has finished executing fail = False if fail: raise Exception("Failed basicCanary check.") return "Successfully completed basicCanary checks." def handler(event, context): return basic_custom_script()
Mengemas file kenari Python Anda
Jika Anda memiliki lebih dari satu file .py atau skrip Anda memiliki dependensi, Anda dapat menggabungkan file itu semua ke dalam sebuah paket file ZIP tunggal. Jika Anda menggunakan runtime syn-python-selenium-1.1
, file ZIP harus berisi file .py canary utama Anda di dalam folder python
, seperti python/my_canary_filename.py
. Jika Anda menggunakan syn-python-selenium-1.1
atau yang lebih baru, Anda dapat menggunakan folder yang berbeda secara opsional, seperti python/myFolder/my_canary_filename.py
.
File ZIP ini harus memuat semua folder dan file yang diperlukan, tetapi file lain tidak perlu berada dalam folder python
.
Pastikan untuk mengatur titik masuk skrip canary Anda agar my_canary_filename.functionName
cocok dengan nama file dan nama fungsi dari titik masuk skrip Anda. Jika Anda menggunakan runtime syn-python-selenium-1.0
, functionName
harus handler
. Jika Anda menggunakan syn-python-selenium-1.1
atau yang lebih baru, pembatasan nama handler ini tidak berlaku, dan Anda juga dapat secara opsional menyimpan canary di folder terpisah seperti python/myFolder/my_canary_filename.py
. Jika Anda menyimpannya di folder terpisah, tentukan jalur itu di titik entri skrip Anda, seperti myFolder/my_canary_filename.functionName
.
Mengubah skrip Selenium yang sudah ada untuk menggunakan canary Synthetics
Anda dapat dengan cepat memodifikasi skrip yang ada untuk Python dan Selenium untuk digunakan sebagai canary. Untuk informasi selengkapnya tentang Selenium, silakan lihat www.selenium.dev/
Untuk contoh ini, kita akan mulai dengan skrip Selenium berikut:
from selenium import webdriver def basic_selenium_script(): browser = webdriver.Chrome() browser.get('https://example.com') browser.save_screenshot('loaded.png') basic_selenium_script()
Langkah konversinya adalah sebagai berikut.
Untuk mengkonversi skrip Selenium yang akan digunakan sebagai canary
Ubah pernyataan
import
untuk menggunakan Selenium dari modulaws_synthetics
:from aws_synthetics.selenium import synthetics_webdriver as webdriver
Modul Selenium dari
aws_synthetics
memastikan bahwa kenari dapat memancarkan metrik dan log, menghasilkan file HAR, dan bekerja dengan fitur Synthetics lainnya. CloudWatchBuat fungsi handler dan panggil metode Selenium Anda. Penanggung jawab adalah fungsi titik masuk untuk skrip.
Jika Anda menggunakan
syn-python-selenium-1.0
, fungsi handler harus diberi namahandler
. Jika Anda menggunakansyn-python-selenium-1.1
atau lebih baru, fungsi tersebut dapat memiliki nama apa pun, tetapi harus nama yang sama yang digunakan dalam skrip. Juga, jika Anda menggunakansyn-python-selenium-1.1
atau yang lebih baru, Anda akan dapat menyimpan skrip Anda di bawah folder apa pun dan menentukan folder itu sebagai bagian dari nama handler.def handler(event, context): basic_selenium_script()
Skrip sekarang diperbarui menjadi kenari CloudWatch Synthetics. Berikut adalah skrip yang diperbarui:
webdriver
Ini adalah contoh dari kelas SyntheticsWebDriverdan browser yang dikembalikan oleh webdriver.Chrome()
adalah instance dari SyntheticsBrowser.
from aws_synthetics.selenium import synthetics_webdriver as webdriver def basic_selenium_script(): browser = webdriver.Chrome() browser.get('https://example.com') browser.save_screenshot('loaded.png') def handler(event, context): basic_selenium_script()
Mengubah skrip Puppeteer Synthetics yang ada untuk mengautentikasi sertifikat non-standar
Salah satu kasus penggunaan penting untuk kenari Synthetics adalah bagi Anda untuk memantau titik akhir Anda sendiri. Jika Anda ingin memantau titik akhir yang tidak siap untuk lalu lintas eksternal, pemantauan ini terkadang dapat berarti bahwa Anda tidak memiliki sertifikat yang tepat yang ditandatangani oleh otoritas sertifikat pihak ketiga tepercaya.
Dua solusi yang mungkin untuk skenario ini adalah sebagai berikut:
Untuk mengautentikasi sertifikat klien, lihat Cara memvalidasi autentikasi menggunakan Amazon CloudWatch Synthetics
— Bagian 2. Untuk mengautentikasi sertifikat yang ditandatangani sendiri, lihat Cara memvalidasi autentikasi dengan sertifikat yang ditandatangani
sendiri di Amazon Synthetics CloudWatch
Anda tidak terbatas pada dua opsi ini ketika Anda menggunakan kenari CloudWatch Synthetics. Anda dapat memperluas fitur-fitur ini dan menambahkan logika bisnis Anda dengan memperluas kode canary.
catatan
Synthetics canary yang berjalan pada runtime Python secara bawaan mengaktifkan --ignore-certificate-errors
flag, jadi kenari tersebut seharusnya tidak memiliki masalah dalam menjangkau situs dengan konfigurasi sertifikat non-standar.