ジョブ

ジョブおよびジョブ実行をトラブルシューティングします。

ジョブ実行作成中のユーザー・エラーのかわりにログ・オブジェクトを作成できません

ジョブ実行の作成に失敗し、次のライフサイクル詳細が表示される場合:

The specified log group is not found or not authorized. Cannot create log object on behalf of the user.
Ensure the log group is valid and the user has appropriate permissions configured
不正なログ・グループOCID

ジョブ実行作成構成で指定されたログ・グループOCIDが正しいことを確認してください。

不正な権限

権限がありません。ジョブ実行を作成するユーザーには、ログ・グループおよびロギング・コンテンツに対する権限が必要です。これは、ユーザーが指定したログ・グループおよびログ・オブジェクトにアクセスできることを保証するためです。また、enableAutoLogCreationが有効な場合に、ユーザーのかわりに新しいログ・オブジェクトを作成する際にも役立ちます。

allow group <group-name> to manage log-groups in compartment <log-compartment-name>
allow group <group-name> to use log-content in compartment <log-compartment-name>

一般的な間違いは次のとおりです。

  • ログ・グループに対するユーザーuse権限のみを付与します。enableAutoLogCreationが有効な場合は、manage権限が必要です。
  • 間違ったグループを許可する。グループは、ジョブ実行の作成者が存在するグループを参照します。インスタンス・プリンシパルを使用してジョブ実行を作成する場合、必要なポリシーは次のとおりです:
    dynamic group <instance-principal-dynamic-group-name>

イメージのダウンロード時の独自のコンテナ・ジョブ実行の失敗

独自のコンテナ・ジョブを作成しようとすると、イメージのダウンロード時にエラーで失敗し、次のことを確認してください:

  • イメージへのパスにホストが欠落している可能性があります。イメージ・パスの正しい形式は<region-key>.ocir.io/<tenancy-namespace>/<repository-name>:<tag>です。よくある間違いは、パスの最初の部分(ホストURL)を見逃すことです。
  • コンテナ・イメージはジョブ実行とは異なるリージョンにあります。データ・サイエンス・ジョブでは、OCIRクロスリージョンからのイメージのプルはサポートされていません。コンテナ・イメージがジョブ実行と同じリージョンにあることを確認します。

ジョブの作成時にコンソールでオプションを高速起動しない理由

高速起動オプションは、サポートされているリージョンでのみ使用できます。すべてのリージョンおよびレルムがこの機能をサポートしているわけではありません。たとえば、Dedicated Region Cloud@Customer (DRCC)レルムでは、通常はサポートされていません。

ListFastLaunchJobConfigs APIエンドポイントについても同様です。APIは、高速起動のオプションのリストで応答するため、高速起動がサポートされていないリージョンの場合、レスポンスはエラーまたは空のリストです。

現在、指定されたシェイプの容量がありません エラー

ジョブ実行の作成時にこのエラーが発生した場合(ライフサイクル詳細の説明どおり)、実行を作成する機能はありません。後で再試行するか、他のリージョンで試すか、別のシェイプ・ファミリを使用する必要があります。

401 NotAuthenticatedデータ・サイエンスAPIへのリクエスト作成時のエラー

このタイプのエラーは、データ・サイエンス・サービスとはまったく関係ありません。むしろ、リクエストを作成および署名する際のユーザー側の問題です。

ユーザー・プリンシパルを使用してリクエストを行う場合、次のような一般的なミスがあります。

  • 無効なAPIキーがある場合は、キーの割当てを参照してください。
  • 公開キーのアップロード直後にリクエストを行います。アイデンティティ情報は、レルム内のリージョン間で伝播する時間が必要です。通常、5分以内に発生しますが、場合によってはさらに時間がかかることがあります。

ログが生成されていないにもかかわらず、ジョブ実行ロギング統合が有効

正常に作成されたジョブ実行で、IN_PROGRESS状態に達しましたが、ログ・オブジェクトにはログは表示されません。通常、これはポリシーがないか正しくない場合に発生します。ジョブ実行には、ジョブ実行ログへの書込み権限が必要です。

まず、ジョブ実行リソースの動的グループを定義します。

all { resource.type='datasciencejobrun', resource.compartment.id='<job-run-compartment-ocid>' }

次に、この動的グループ・アクセスを設定します。

allow dynamic-group <job-runs-dynamic-group> to use log-content in compartment <log-compartment-name>

一般的な間違いは次のとおりです。

  • 間違ったコンパートメントが指定されています。前述のポリシーで説明されているコンパートメントが異なることに注意してください。
    • 動的グループ定義の場合、これはジョブ実行のコンパートメントです。
    • ログ・コンテンツにアクセスするためのポリシー・ステートメントは、ログのコンパートメントです。
  • resource.compartment.idのかわりにcompartment.idを使用して動的グループを定義します。
  • 動的グループ定義に不正なリソース・タイプが含まれていました。定義されている動的グループがノートブック・セッション・リソース用であり、ジョブ実行リソースが含まれていない可能性があります。datasciencejobrunリソース・プリンシパルは、ジョブ実行ロギング統合のログへの書込みに使用されるため、動的グループ定義に含める必要があります。

ジョブ実行ロギング統合は有効ですが、ログは切り捨てられています

データ・サイエンス・ジョブでは、自動ロギングのOCIロギング・サービスとの統合がサポートされています。ログが切り捨てられたか不完全であるように見える場合は、次のロギング・サービス制限が原因である可能性があります。

  • 各エントリは1MB未満である必要があります。
  • ログ・データ・フィールドは10,000文字を超えることはできません。

データがこれらの制限を超えると、ログ・エントリは取込み中に切り捨てられます。

ジョブ実行メトリックにデータがありません

ジョブ処理中またはジョブ処理後にジョブ実行メトリックが表示されない場合は、正しいポリシーが構成されていない可能性があります。次のポリシーがあることを確認します。

allow group <user-group-name> to read metrics in compartment <compartment-name>

コンパートメントは、ジョブ実行のコンパートメントです。

ジョブ実行アーティファクトの実行は終了コード___で失敗しましたエラー

これは、コードに関連する指定された終了コードでコードの実行が失敗することを意味します。ロギング統合の有効化。問題をデバッグするためにコードに十分なログ文があることを確認します。

ジョブ実行終了コードが指定されていません

ジョブは、ジョブ実行失敗の終了コードを示します。この情報は、ジョブ実行のライフサイクル詳細フィールドで使用できます。これは、独自のコンテナ・ジョブ実行を含むすべてのジョブ実行でサポートされます。

ジョブ実行が失敗したことがわかっている終了コードが正しく示されていない場合、終了コードが正しく伝播されていない可能性があります。

一般的な間違いは次のとおりです。

  • エントリ・ポイントとしてシェル・スクリプトを使用している場合、実行する他のファイル(他のpythonファイル)を開始するには、シェル・スクリプトで内部ファイル実行の終了コードを取得してから、取得した終了コードでシェル・スクリプトを終了する必要があります。
  • 例外を投げるだけでは不十分かもしれません。ファイル実行(または独自のコンテナを持ち込むためのコンテナ)は、終了コードで明示的に終了する必要があります。Pythonでは、これはsys.exit(ERROR_CODE)を使用して行われます。
  • 終了コード値に不正なタイプを使用しています。通常、正しくない型は文字列です。Job with Exit Codesに記載されているとおり、終了コードは数値または整数で、1から255の間である必要があります。

ジョブ実行の無効なエントリ・ポイント

存在しないファイル、またはファイルが指定された場所にないファイルにJOB_RUN_ENTRYPOINTを指定すると、次のエラーが発生します。

Job run bootstrap failure: invalid job run entry point (JOB_RUN_ENTRYPOINT).