作業リクエスト

作業リクエストを使用すると、データベース・バックアップやコンピュート・インスタンスのプロビジョニングなど、長時間実行されている操作のモニターに役立ちます。

長時間実行操作を開始すると、サービスによって作業リクエストが作成されます。作業リクエストは、操作の進行状況の各ステップをトラッキングできるアクティビティ・ログです。各作業リクエストには、プログラムで操作して自動化に使用できるOCIDがあります。

作業リクエストは、通常、関連するワークフローのステータス、エラー、ログ・ファイル、およびワークフローの影響を受けるリソースのリストに関する情報を提供します。

ノート

一部のOracle Cloud Infrastructureサービス(コンピュートやデータベースなど)では、GetWorkRequest操作を含む作業リクエストAPIを使用した作業リクエストがサポートされています。

一部のサービスには、このトピックで説明する作業リクエストAPIではなく、サービスAPIでサポートされている作業リクエストが用意されています。これらのサービスのAPIには、作業リクエストAPIで使用されるGetWorkRequest操作と同様に動作する操作が含まれます。

詳細は、各サービスの作業リクエストAPIのリファレンス・ドキュメントを参照してください。それぞれへのリンクは、サポートされているサービスの詳細情報およびAPIの項に記載されています。

作業リクエストの開始

作業リクエストは次のようなシナリオで役立ちます:

  • 操作が失敗した場合、作業リクエストは、プロセスのどのステップにエラーがあったかの判断に役立ちます。作業リクエストでは、非同期検証の失敗が取得されます。
  • 一部の操作は複数のリソースに影響を与えます。たとえば、インスタンス・プールの作成は、インスタンスとインスタンス構成にも影響します。作業リクエストによって、操作が影響するリソースのリストが提供されます。
  • 順次操作を必要とするワークフローの場合は、各操作の作業リクエストをモニターして、次の操作に進む前に操作が完了していることを確認できます。たとえば、自動スケーリングが有効なインスタンス・プールを作成するとします。これを行うには、まずインスタンス・プールを作成し、その後、自動スケーリングを構成する必要があります。インスタンス・プールを作成する作業リクエストをモニターしてワークフローが完了するタイミングを判断し、インスタンス・プール・ワークフローの終了後に自動スケーリングを構成できます。

作業リクエストは12時間保持されます。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限がない、または認可されていないというメッセージが表示された場合は、自分がどのタイプのアクセス権を持っているか、およびどのコンパートメントで作業するかを管理者に確認してください。

管理者の場合: ユーザーが操作の作業リクエスト、ログおよびエラー・メッセージを表示できるようにする権限は、サービスによって異なります。一部のサービスでは、作業リクエストは、作業リクエストを生成する操作の権限を継承します。他のサービスでは、作業リクエストに個別の権限が必要です。詳細は、IAMポリシーの概要を参照してください。

作業リクエストのステータス

作業リクエストにより、長時間実行されている非同期操作の進行状況を確認できるようになります。作業リクエストのステータスは、操作の進行状況を示します。

ステータスには通常、IN_PROGRESSFAILEDSUCCEEDEDなどの値が含まれます。作業リクエストをサポートする各サービスまたは操作では、ステータスを取得するための独自のAPIが用意されているため、作業リクエストで返される特定の値はサービスおよび操作によって異なります。各サービスの作業リクエストでサポートされているステータス属性の詳細は、作業リクエストのステータスを参照してください。

検証エラーのトラブルシューティング

作業リクエストでは、非同期検証の失敗が取得されます。非同期操作が失敗した場合、作業リクエストは、プロセスのどこでエラーが発生したかの特定に役立ちます。

同期エラーは、サービスAPIへの最初のコールで発生し、サービスAPIによって返されます。非同期エラーは、最初のAPIコールの後に行われるワークフロー中に発生し、作業リクエストによって返されます。サービスAPIへのコールが成功してHTTP 200レスポンス(「リクエストに成功しました」)が返された後に、作業リクエストによって取得された非同期エラーが発生する場合があります。

たとえば、コンピュート・インスタンスを作成すると、LaunchInstance操作に対するAPIコールが実行されます。この時点で、同期検証が実行されます。失敗すると、HTTP 4xxレスポンスが返されます。コールが成功すると、HTTP 200レスポンスが返され、インスタンス作成ワークフローが開始されます。

インスタンスの作成ワークフローの続行中に、追加の検証およびエラー・チェックが行われ、ワークフローの進捗をトラッキングするための非同期作業リクエストが作成されます。LaunchInstance操作に対するレスポンスでは、opc-work-request-idヘッダーに作業リクエストのOCIDが含まれます。作業リクエストのステータスは、GetWorkRequest操作をコールして作業リクエストIDを渡すことで、いつでもモニターできます。ワークフロー中にエラーが発生した場合は、ListWorkRequestErrorsをコールして作業リクエストIDを渡すことで、エラーのリストを取得できます。

作業リクエスト自体は、操作が完了するまでキューに残ります。

リクエスト・レスポンス、およびサンプル・リクエストとレスポンスをフィルタする方法など、作業リクエストの詳細は、非同期作業リクエストを参照してください。

作業リクエスト検証ワークフローの例

次の図は、同期検証が成功し、非同期検証が失敗したインスタンスの作成ワークフローの例を示しています。

  1. コンピュートAPIでLaunchInstanceエンドポイントをコールします。
  2. 同期検証が行われ、コンピュートAPIからHTTP 2xxレスポンスを受信します。レスポンスでは、opc-work-request-idヘッダーに作業リクエストのOCIDが含まれます。
  3. インスタンス作成ワークフローが開始され、ワークフロー全体で非同期検証が行われます。エラーが発生すると、検証が失敗します。
  4. コンピュートAPIにより作業リクエスト・エラーが移入され、作業リクエストが失敗とマークされます。
  5. 作業リクエストをモニターするには、作業リクエストAPIでGetWorkRequestをコールし、opc-work-request-idヘッダーにある作業リクエストIDを渡します。
  6. 作業リクエストが失敗したら、作業リクエストAPIでListWorkRequestErrorsをコールし、作業リクエストIDを渡してエラーのリストを取得します。
  7. 作業リクエストAPIは、失敗原因の特定に使用できるエラーのリストを返します。
同期検証と非同期検証を示すインスタンス作成ワークフローの概要図。

コンソールを使用した作業リクエストの表示

コンソールを使用して、特定の作業リクエストに関連付けられているログ・メッセージ、エラー・メッセージおよびリソースを表示できます。作業リクエストを表示するためのステップは、作業リクエストの表示対象のサービスおよびリソースによって異なります。

  1. 作業リクエストの表示対象のリソースに移動します。

    たとえば、コンピュート・インスタンスの作業リクエストを表示するには、ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。

  2. リソースがリスト・ビューに表示される場合は、リソース名をクリックしてリソースの詳細を表示します。
  3. 「リソース」で、「作業リクエスト」をクリックします。すべての作業リクエストのステータスがこのページに表示されます。
  4. 特定の作業リクエストに関連付けられているログ・メッセージ、エラー・メッセージおよびリソースを表示するには、操作名をクリックします。次に、「詳細」セクションでオプションを選択します。

    関連付けられているリソースについて、リソースの横にある「アクション」メニュー(アクション・メニュー)をクリックして、リソースのOCIDをコピーできます。

サポートされているサービスの詳細情報およびAPI

APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。

次のAPI操作を使用して、作業リクエストの状態をモニターします: