Runbook の操作
RealmJoins API を使用して Runbook を実行し、その状態を照会する
概要
RealmJoin を使用すると、Azure Automation Runbook を使って、環境内の日常的な運用を自動化できます。参照 Runbooks 詳細については。
RealmJoin の API を使用すると、アプリケーションから runbook を開始し、以前にトリガーされた実行の成功を確認できます。参照 RealmJoin の Swagger の説明 現在サポートされている操作を確認してください。
以下のセクションでは、RealmJoin の API を使用して runbook ジョブを開始し追跡する方法を説明します。すでに次を行っていることを前提としています Azure Automation アカウントを接続済み していること。また、次も必ず 認証する 際には、適切な http Authorization ヘッダーを使って RealmJoin の API への各リクエストを行ってください。
Azure Automation は runbook をどのように扱いますか?
Azure Automation は runbook に対してバッチ処理のアプローチを採用しています。runbook の実行をトリガーすると、その runbook のジョブが作成され、実行待ちキューに入ります。
したがって、一般的に runbook はすぐには開始されません。また、同じ runbook の複数のジョブが、異なる実行状態で同時に存在することがあります。
各ジョブには、runbook スクリプトに渡されるパラメーター(入力)のセットがあります。たとえば、次のような 2 つの変数です $username および $newEmailAddress runbook がユーザーのメールボックスに eMail-Alias を追加する場合。
各ジョブには、現在の実行状態を表すステータスがあります。参照 Microsoft Docs。ここでは次に焦点を当てます Queued, Running, Completed および Failed この文書では。これは理解しやすくするための簡略化であることに注意してください。
Runbook ジョブを開始する
RealmJoin API には、runbook をトリガーするための 2 つのエンドポイントがあります。
run は、runbook を同期的に実行し、runbook が実際に完了または失敗した時点でのみ応答/終了します。このエンドポイントは、関連付けられた runbook ジョブの成功状態と出力を直接返します。
start は、次と同じパラメーターを受け取ります run が、非同期で動作します。runbook ジョブがキューに入るとすぐに返ります。返されるのは jobID で、新しいジョブを簡単に追跡できるようにします。
Runbook の命名
Runbook は Azure Automation では名前で参照されます。要するに、
RealmJoin の GitHub リポジトリから同期されたものですか? 次をプレフィックスとして追加します
rjgit-をプレフィックスとしていずれか
org_,device_,group_,user_をスコープとして(これらのうちちょうど 1 つ)カテゴリ。たとえば
general_またはsecurity_区切りで runbook の名前を
_たとえばadd-xyz-exception
この場合の結果は次のようになります: rjgit-org_security_add-xyz-exception
参照: 命名規則 詳細は
例
次の状況を想定しましょう:
RealmJoin の API 資格情報を用意し、それらを次のようにエンコードしたとします
dC0xMjM0MTIzNDpteVMzY3JldCE=(Base64)開始したい runbook は
rjgit-user_security_revoke-or-restore-access特定のユーザーのサインインをブロックするためのものですrunbook(PowerShell)のパラメーターは次のとおりです:
$UserName = "someone@contoso.com"$Revoke = $true
次を使用します run エンドポイントを使うと、ジョブが成功したかどうかをすぐに確認できます。
次を作成してみましょう 依頼:
ヘッダー:
リクエスト / URI:
本文(JSON 表記):
ジョブの実行を待機するため、このリクエストには時間がかかります。http クライアントのタイムアウトをそれに合わせて調整してください。そうでない場合は、次を使用してみてください start エンドポイントは、すぐに応答を返します。
レスポンスには次が含まれます jobID、 ステータス (Failed または Completed) と runbook のすべての出力ストリームです。
レスポンス:
Http Status: 200 (OK)
本文(JSON 表記):
出力ストリームは、異なるチャネル(streamTypes): 出力, Verbose, Error。これにより、エラーでフィルタリングしたり、 出力.
runbook の完了後に、次を使用してこれらのストリームを取得できます /runbook/jobs/{jobID}/output/streams エンドポイント。(下記参照)
ジョブのステータスと出力を照会する
ジョブがすでに作成されている場合は、RealmJoin API を使用してその状態と出力を照会できます。
ジョブのステータスを照会する
使用してください /runbook/jobs/{jobID}/status で現在のステータスを照会します。
参照: 認証 Authorization ヘッダーの作成方法については、以下はあくまで例です。
次を jobID にするものとします 1234545e-7a24-436a-90c9-6056b512345
要求
ヘッダー:
リクエスト / URI:
このリクエストには本文はありません。
レスポンス
HTTP ステータス 200(OK)
本文(プレーンテキスト)
他に考えられる状態には次が含まれます 新規, Failed, Running。参照 考えられる Runbook の状態.
ジョブ出力の読み取り
使用してください /runbook/jobs/{jobID}/output/text runbook の出力を簡単なプレーンテキスト表現で取得します。これには Verbose および Error ストリームは含まれません。参照 ストリームの読み取り を使用して他のストリームを読み取ります。 例外 は別々に処理されます。
参照: 認証 Authorization ヘッダーの作成方法については、以下はあくまで例です。
次を jobID にするものとします 1234545e-7a24-436a-90c9-6056b512345
要求
ヘッダー:
リクエスト / URI:
このリクエストには本文はありません。
レスポンス
HTTP ステータス 200(OK)
本文(プレーンテキスト)
特定のストリームの読み取り
使用してください /runbook/jobs/{jobID}/output/streams runbook の出力を包括的な JSON 表現で取得します。これにより、 出力, Verbose および Error ストリームにアクセスできます。 例外 は別々に処理されます。
参照: 認証 Authorization ヘッダーの作成方法については、以下はあくまで例です。
次を jobID にするものとします 1234545e-7a24-436a-90c9-6056b512345
リクエスト(すべてのストリーム)
ヘッダー:
リクエスト / URI:
このリクエストには本文はありません。
レスポンス
HTTP ステータス 200(OK)
本文(JSON、メッセージの配列)
中断を伴うエラーメッセージと 例外
たとえば Verbose のように 1 つのストリームだけを受け取りたい場合は、次を追加してリクエストにフィルターを追加できます ?streamTypes=Verbose。さらに、次でもフィルターできます 出力 および Error.
リクエスト(単一ストリームでフィルター)
ヘッダー:
リクエスト / URI:
このリクエストには本文はありません。
レスポンス
HTTP ステータス 200(OK)
本文(JSON、メッセージの配列)
例外の読み取り
使用してください /runbook/jobs/{jobID}/exception/text runbook の例外メッセージ(存在する場合)の簡単なプレーンテキスト表現を取得します。これには 出力, Verbose および Error ストリームは含まれません。参照 ストリームの読み取り を使用して他のストリームを読み取ります。
例外は、runbook に関連付けられた PowerShell スクリプトの実行中に中断を伴うエラーが発生したときに記録されます。このエンドポイントはプレーンテキストのメッセージのみを読み取り、スクリプトがどのコード行で停止したかなどの技術的な詳細は含みません。
この例では、中断を伴うエラーは次によって発生しました throw "Exception".
参照: 認証 Authorization ヘッダーの作成方法については、以下はあくまで例です。
次を jobID にするものとします 1234545e-7a24-436a-90c9-6056b512345
要求
ヘッダー:
リクエスト / URI:
このリクエストには本文はありません。
レスポンス
HTTP ステータス 200(OK)
本文(プレーンテキスト)
最終更新
役に立ちましたか?