Canary スクリプトの作成
次のセクションでは、Canary スクリプトの作成方法と、Canary を他の AWS のサービス、外部依存関係、ライブラリと統合する方法について説明します。
トピック
Synthetics Canary を使用するようにするための既存の Selenium の変更
Canary として使用するために、Python と Selenium の既存のスクリプトをすばやく変更できます。Selenium の詳細については、www.selenium.dev/
この例では、次の Selenium スクリプトから始めます。
from selenium import webdriver def basic_selenium_script(): browser = webdriver.Chrome() browser.get('https://example.com') browser.save_screenshot('loaded.png') basic_selenium_script()
変更の手順は次のとおりです。
Selenium スクリプトを Canary として使用するように変換するには
aws_synthetics
モジュールから Selenium を使用するようにimport
ステートメントを変更します。from aws_synthetics.selenium import synthetics_webdriver as webdriver
aws_synthetics
の Selenium モジュールは、Canary がメトリクスとログを出力し、HAR ファイルを生成し、他の CloudWatch Synthetics 機能で動作することを保証します。ハンドラ関数を作成し、Selenium メソッドを呼び出します。このハンドラーは、スクリプトのエントリポイント関数です。
syn-python-selenium-1.0
を使用している場合、ハンドラー関数にはhandler
という名前を付ける必要があります。syn-python-selenium-1.1
以降を使用している場合、関数には任意の名前を付けることができますが、スクリプトで使用されている名前と同じである必要があります。また、syn-python-selenium-1.1
以降を使用している場合は、スクリプトを任意のフォルダに保存し、そのフォルダをハンドラー名の一部として指定できます。def handler(event, context): basic_selenium_script()
これで、スクリプトが CloudWatch Synthetics Canary に更新されました。更新されたスクリプトは次のとおりです。
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()
既存の Puppeteer Synthetics スクリプトを変更して非標準の証明書を認証する
Synthetics Canaries の重要なユースケースの 1 つは、独自のエンドポイントをモニタリングすることです。外部トラフィックに対応していないエンドポイントをモニタリングする場合、信頼できるサードパーティーの認証局によって署名された適切な証明書が存在しない可能性があります。
このシナリオで考えられる解決策は、次の 2 つです。
クライアント証明書を認証するには、「How to validate authentication using Amazon CloudWatch Synthetics – Part 2
」を参照してください。 自己署名証明書を認証するには、「How to validate authentication with self-signed certificates in Amazon CloudWatch Synthetics
」を参照してください。
CloudWatch Synthetics Canary を使用する場合は、これら 2 つのオプションに限定されません。Canary コードを拡張することで、これらの機能を拡張し、ビジネスロジックを追加できます。
注記
Python ランタイムで実行される Synthetics Canary は、もともと --ignore-certificate-errors
フラグが有効になっているため、これらの Canary が非標準の証明書構成のサイトに到達しても問題ないはずです。