Watcherをプロキシで使用する
ウェブプロキシを通じてAxe Developer Hubに結果を送信する方法についての情報
HTTPプロキシは、組織がネットワークを通過するデータを監査することを可能にします。通常、環境変数を使用して設定されます。このドキュメントでは、Watcher(バージョン4.0.0以降)でプロキシサポートを設定する方法を詳しく説明します。
必須条件
プロキシサポートを使用するには、ローカルまたは組織のサーバーでプロキシソフトウェアを実行している必要があります。プロキシを使用するには、HTTPSエンドポイントとその証明書(コンピュータ上で承認するため)が必要です。
Dequeホスティングサーバーを使用する場合、HTTPSは唯一サポートされているプロトコルです。自己ホストの場合、HTTPを使用することができ、プロキシのHTTPエンドポイントも必要です。それはべきです同じドメインとポート(443)であるべきですが、念のため確認してください。
設定
Watcherのプロキシ設定はすべて環境変数を通じて行われます。これは2つのグループに分けられます。
「標準」プロキシ環境変数:
HTTPS_PROXY- HTTPSプロトコルを介して通信するために使用されるエンドポイントHTTP_PROXY- HTTPプロトコルを介して通信するために使用されるエンドポイントNO_PROXY- いかなるプロキシも通さずに通信するホスト名のカンマ区切りリスト
Axe WatcherとNode.jsの環境変数:
AXE_WATCHER_USE_ENV_PROXY- プロキシサポートを変更するためにWatcherのみをターゲットとするAXE_USE_ENV_PROXY- プロキシを利用するために、axeのあらゆるサポートする対象をターゲットとするNODE_USE_ENV_PROXY- プロキシを使用してすべてのネットワークリクエストをオプトインするためのNode.jsのネイティブな方法(バージョン24以降のみ)NODE_EXTRA_CA_CERTS- HTTPS接続に対し信頼されたCA証明書を提供するためのNode.jsのネイティブ変数
いずれかのAXE_*変数が1に設定されると、プロキシ使用が有効になります。NODE_USE_ENV_PROXYはプロセス全体でこれを有効にするためにNode.jsバージョン24で導入され、Watcherにバックポートされて全バージョンでサポートされました。
Node.jsのためにプロキシを有効にし、Watcherのために無効にするには、いずれかのAXE_*変数を0に設定することができます。
1と0のみが認識されます。これら以外の値はデフォルトでプロキシサポートを無効にします。
HTTPSでは、プロキシによって提供される認証局証明書をNODE_EXTRA_CA_CERTSで指定し、不信とされて接続が拒否されないようにしてください。この値は証明書ファイルへのパスです。
使用例
環境変数を設定する主な方法は2つあります:
- 処理を行うマシンまたはCIジョブに対して設定します。これにより、それらの寿命の間にグローバルに利用可能になります。
- 端末でコマンドの前に指定し、そのプロセスの寿命の間にのみ存在するようにします。
GitHub Actionワークフローファイルでプロキシ環境変数を設定する例:
# Setup of the workflow and jobs
- steps:
- name: Run Tests
env:
HTTPS_PROXY: https://localhost:9090
NODE_EXTRA_CA_CERTS: ~/path/to/ca.pem
AXE_WATCHER_USE_ENV_PROXY: 1
run: npm run test単一のコマンドを実行するためにローカルでプロキシ環境変数を使用する例:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testNode.jsバージョン24以降の条件付きプロキシ
Node.jsバージョン24(またはそれ以降)では、NODE_USE_ENV_PROXYがデフォルトで全リクエストに対して有効になっているため、テストシナリオでWatcherのプロキシを条件付きで無効にしたい場合があります。
これはNO_PROXYを使用してシステムに、ドメインがプロキシをバイパスするよう指示することで達成できます。以下の例では、Node.jsが開始するすべてのリクエストにはプロキシを使用し、axe.deque.comやexample.comをターゲットとするものには使用しないようにします。
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testNO_PROXY を使用する理由は、Axe Watcherのプロキシ使用を無効にしようとしても、グローバルリクエストディスパッチャーを継承するため、NODE_USE_ENV_PROXY が有効になっている場合、それが優先されプロキシを使用することになります。
