Canary スクリプトの作成 - Amazon CloudWatch

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 として使用するように変換するには
  1. aws_synthetics モジュールから Selenium を使用するように import ステートメントを変更します。

    from aws_synthetics.selenium import synthetics_webdriver as webdriver

    aws_synthetics の Selenium モジュールは、Canary がメトリクスとログを出力し、HAR ファイルを生成し、他の CloudWatch Synthetics 機能で動作することを保証します。

  2. ハンドラ関数を作成し、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 つです。

CloudWatch Synthetics Canary を使用する場合は、これら 2 つのオプションに限定されません。Canary コードを拡張することで、これらの機能を拡張し、ビジネスロジックを追加できます。

注記

Python ランタイムで実行される Synthetics Canary は、もともと --ignore-certificate-errors フラグが有効になっているため、これらの Canary が非標準の証明書構成のサイトに到達しても問題ないはずです。