汎用ランナー
このセクションでは、汎用ランナーについて紹介します。これは、タスクを実行するための自動化プログラムです。
Apidogの汎用ランナーは、スタンドアロンのサーバーにホストできる自動化プログラムとして理解できます。これにより、「スケジュールされた自動テスト」、「API仕様書のスケジュールインポート」、「モックレスポンスの返却」といったApidog内のタスクを実行できます。
準備
- Linux server
- Docker環境 がインストールされました。最低バージョンは20.10.0である必要があり、推奨バージョンは20.10.13です。
クイックスタート
このセクションでは、サーバー上で汎用ランナーをデプロイする方法を案内します。
1. 汎用ランナーのデプロイ
Apidogの「チームリソース」ページに移動し、「デプロイ一般ランナー」をクリックします。
2. ランナーのデプロイメントコマンドを取得
デプロイ一般ランナー
ボタンをクリックした後、ポップアップウィンドウから一般ランナーのデプロイメントコマンドをコピーします。必要に応じてコマンドをカスタマイズでき、カスタムサーバーOS、公開ポート、データディレクトリのマウントなどをサポートします。以下はこれらの設定の詳細な説明です:
Server OS: Dockerコンテナのオペレーティングシステムを指定します。これにはLinux、macOS、Windowsが含まれます。Dockerコンテナが正常に動作することを保証するためには、正しいオペレーティングシステムを選択することが非常に重要です。
Docker Image: 3つのバージョンが利用可能です:
一般版
、簡易版
、およびカスタムスクリプト
。もし「カスタムスクリプト」が外部プログラムを呼び出す必要がある場合は、必要な環境に基づいて適切なイメージを選択してください:- 一般版: ランナーのすべての機能を含み、Node.js 18、Java 21、Python 3、および PHP 8 の言語環境があらかじめインストールされています。
- 簡易版: ランナーのすべての機能を含むが、Node.js 18 のみがあらかじめインストールされている。
- カスタムスクリプト: ランナーのすべての機能を含み、外部プログラムのためのカスタム言語環境をサポートしています。必要に応じて環境を追加または削除するための独自のDockerfileを作成できます。
公開ポート: デフォルトでは、Dockerコンテナは外部アクセス用に内部ポートを公開しません。
-p
パラメータを使用すると、コンテナの内部ポートをホストマシンのポートにマッピングすることができ、コンテナが提供するサービスに外部アクセスを許可します。例えば、-p 80:4524
はコンテナの内部ポート4524をホストマシンのポート80にマッピングします。データディレクトリのマウント:
-v
パラメータにより、ホストマシンのディレクトリをコンテナにマウントすることができ、コンテナがホストのファイル(例:データベース構成や外部プログラム)にアクセス・操作することができます。例えば、-v "/opt/runner":/opt/runner は、ホストの/opt/runner
ディレクトリをコンテナの/opt/runner
ディレクトリにマウントします。
デプロイメントコマンドにはトークン情報が含まれており、データセキュリティの理由から一度しか表示されません。一般ランナーをデプロイ
をクリックするたびに新しいコマンドが生成されます。
コマンドをローカルに保存してください。将来のランナーのアップグレードに使用することができます。
3. サーバーにランナーをデプロイ
コピーしたデプロイコマンドをサーバーのターミナルに貼り付けると、ランナーのインストールが自動的に開始されます。
環境変数を使用してランナーのデプロイプロパティを変更し、実際の使用シナリオにより適合させることができます。詳細はランナーの実行環境 をご覧ください。
インストールが完了すると、ターミナルに関連情報が表示されます。エラーが発生した場合は、エラーディテールに基づいてトラブルシューティングを行います。解決できない場合は、こちらまでお問い合わせください。
4. サーバーでランナーのステータスを確認
Docker クライアントを使用してコンテナの稼働状況を確認できます。
また、ターミナルで docker ps
コマンドを使用してコンテナの稼働状況を確認することもできます。
5. Apidogでデプロイされた汎用ランナーを確認
サーバー上のランナーコンテナがデプロイされ、有効化されたことを確認したら、Apidogに戻ります。「チームリソース」→「汎用ランナー」でランナーがApidogにデプロイされ、接続されたことが確認できます。
汎用ランナーがサーバーに正常にデプロイされたが、Apidogクライアントに表示されない場合は、「汎用ランナー」の右側にあるリフレッシュボタンをクリックして、ページを更新し、再確認してください。
ランナーに名前を付け直し、説明を追加したり、削除したりして、チームメンバーがこのランナーをより効果的に利用できるようにします。また、ランナーの停止や再起動も可能です。
停止されたランナーは、指定された定期タスクを実行せず、新しい関連タスクを作成してそのランナーを指定して実行することもできません。
ランナーの状態説明については、以下の表を参照してください:
ステータス | 説明 |
---|---|
Started | ランナーはサーバーのコンテナ内で正常に有効化され、Apidogとの通信を維持し、Apidogから発行された関連タスクを処理できます。 |
Stopped | ランナーはApidogで手動停止されていますが、サーバーのコンテナ内では引き続き正常に動作し、通信を維持しています。Apidogから発行されたタスクは処理されず、新しいタスクで停止されたランナーを指定して実行することはできません。Apidogで手動で有効化することで、ランナーを再び開始状態に戻すことができます。 |
Offline | ランナーはApidogと切断され、タスクを処理できません。これは、サーバー上のランナーコンテナが停止したか、サーバーとApidog間の通信に問題があるためかもしれません。ランナーを復元するには、ランナーコンテナが正常に動作していることと、Apidogとの通信に問題がないことを確認し、ランナーを開始状態に戻すことができます。 |
チーム内で複数の汎用ランナーをデプロイすることができます。セルフホスト型ランナーが必要なタスクを作成する際に、チームメンバーは利用可能なランナーから選択できます。
ランナーでファイルを保存する
ランナーを使用してエンドポイントリクエスト、テストシナリオ、スケジュールタスクなどのタスクを実行する際には、タスクの実行をサポートするために、いくつかのローカルファイルが必要になる場合があります。例としては以下があります:
- カスタムスクリプトで他のプログラミング言語を呼び出す
- 前/後処理でデータベース接続を使用する
- リクエストを送信する際に SSL 証明書を使用する
このために、必要なファイルをDockerコンテナ内の指定されたディレクトリに保存してください。ランナーが関連するタスクを実行する際に、タスクの要件に応じて指定されたディレクトリからファイルの内容を読み取って、タスクを正常に完了します。
以下の表を参照して、適切な形式と内容のファイルを指定されたディレクトリに配置してください:
コンテンツの使用 | 指定されたディレクトリパス(またはファイル名) | Dockerコマンドの例 |
---|---|---|
Other Programming Languages | /app/external-programs/ | -v /Users/xxx/runner/packages/api-test/external-programs:/app/externalPrograms |
Database Connection Configuration File | /app/database/database-connections.json | -v /Users/xxx/runner/packages/api-test/database/database-connections.json:/app/database/database-connections.json |
SSL Certificate List File | /app/ssl/ssl-client-cert-list.json | -v /Users/xxx/runner/packages/api-test/ssl/ssl-client-cert-list.json:/app/ssl/ssl-client-cert-list.json |
データベース接続構成ファイルの例を次に示します:
{
"19731": {
"configs": {
"default": {
"username": "accountname",
"password": "123456",
"host": "192.168.0.0"
}
},
"id": 19731,
"name": "Database Name",
"type": "mysql",
"projectId": 1320441,
"description": "Dummy data.",
"createdAt": "2024-08-30T07:51:09.000Z",
"updatedAt": "2024-09-30T11:38:07.000Z",
"deletedAt": null
}
}
こちらを参照して、Apidogクライアントから設定ファイルをエクスポートする方法をご確認ください。
SSL証明書リストファイルの例:
[
{
"name": "domain1",
"matches": ["https://test.domain1.com/*", "https://www.domain1/*"],
"key": {"src": "./client.domain1.key"},
"cert": {"src": "./client.domain1.crt"},
"passphrase": "changeme"
},
{
"name": "domain2",
"matches": ["https://domain2.com/*"],
"key": {"src": "./client.domain2.key"},
"cert": {"src": "./client.domain2.crt"},
"passphrase": "changeme"
}
]