

# AWS Glue のトラブルシューティング
<a name="troubleshooting-glue"></a>

 AWS Glue の操作中に問題が発生した場合は、このセクションのトピックを参照してください。


|  | 
| --- |
|  AWS Glue での Apache Spark のトラブルシューティングについては、「[AWS Glue での Apache Spark の生成 AI トラブルシューティング](https://docs.aws.amazon.com/glue/latest/dg/troubleshoot-spark.html)」を参照してください。こちらでは、Spark ジョブの問題の診断と解決に AI を活用したサポートを提供しています。 AI を活用したトラブルシューティングエージェントを使用して Apache Spark のトラブルシューティングを変革できます。AWS Glue、Amazon EMR on EC2、Amazon EMR Serverless、Amazon SageMaker AI のノートブックを始めとするすべての主要なデプロイモードがサポートされるようになりました。この強力なエージェントは、自然言語インタラクション、リアルタイムのワークロード分析、スマートコードの推奨事項を組み合わせてシームレスなエクスペリエンスを実現するため、複雑なデバッグプロセスが排除されます。実装の詳細については、「[What is Apache Spark Troubleshooting Agent for Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/spark-troubleshoot.html)」を参照してください。  | 

**Topics**
+ [AWS Glue トラブルシューティング情報の収集](troubleshooting-contact-support.md)
+ [Glue の一般的なセットアップエラーのトラブルシューティング](glue-troubleshooting-errors.md)
+ [クローラーが Lake Formation アクセス許可を使用している場合のクローラーエラー](error-crawler-config-lf.md)
+ [ログから AWS Glue for Ray エラーをトラブルシューティングする](troubleshooting-ray.md)
+ [AWS Glue 機械学習の例外](exceptions-machine-learning.md)
+ [AWS Glue のクォータ](troubleshooting-service-limits.md)

# AWS Glue トラブルシューティング情報の収集
<a name="troubleshooting-contact-support"></a>

AWS Glue でエラーまたは予期しない動作が発生して AWS サポート に問い合わせる必要がある場合、名前、ID、および失敗したアクションに関連したログに関する情報をまず収集する必要があります。この情報が用意してあると、サポート は発生している問題を解決しやすくなります。

*アカウント ID* に加えて、次の失敗のタイプそれぞれについて以下の情報を収集します。

**クローラが失敗した場合、以下の情報を収集します。**  
+ クローラの名前

  クローラ実行からのログは `/aws-glue/crawlers` の下の CloudWatch Logs にあります。

**テスト接続が失敗した場合、以下の情報を収集します。**  
+ 接続名
+ 接続 ID
+ `jdbc:protocol://host:port/database-name` フォームの JDBC 接続文字列。

  テスト接続からのログは ` /aws-glue/testconnection` の下の CloudWatch Logs にあります。

**ジョブが失敗した場合、以下の情報を収集します。**  
+ ジョブ名 
+ `jr_xxxxx` フォームのジョブ実行 ID。

  ジョブ実行からのログは ` /aws-glue/jobs` の下の CloudWatch Logs にあります。

# Glue の一般的なセットアップエラーのトラブルシューティング
<a name="glue-troubleshooting-errors"></a>

AWS Glue でエラーが発生した場合は、次の情報を使用して問題の原因を突き止めて修正してください。

**注記**  
 AWS Glue GitHub リポジトリには「[AWS Glue に関するよくある質問](https://github.com/aws-samples/aws-glue-samples/blob/master/FAQ_and_How_to.md)」のトラブルシューティングガイダンスの詳細が含まれています。

**Topics**
+ [エラー: リソースを利用できません。](#error-resource-unavailable)
+ [エラー: VPC の subnetId に S3 エンドポイントまたは NAT ゲートウェイが見つかりませんでした](#error-s3-subnet-vpc-NAT-configuration)
+ [エラー: 必要なセキュリティグループのインバウンドルール](#error-inbound-self-reference-rule)
+ [エラー: 必要なセキュリティグループのアウトバウンドルール](#error-outbound-self-reference-rule)
+ [エラー: ジョブの実行に失敗しました、渡されたロールには AWS Glue サービスでロールを引き受けるためのアクセス許可が必要です](#error-assume-role-user-policy)
+ [エラー: DescribeVpcEndpoints アクションは許可されていません。VPC ID vpc-id を検証できません](#error-DescribeVpcEndpoints-permission)
+ [エラー: DescribeRouteTables アクションは許可されていません。VPC id: vpc-id の subnet Id: Subnet-id を検証できません](#error-DescribeRouteTables-permission)
+ [エラー: ec2:DescribeSubnets の呼び出しに失敗しました](#error-DescribeSubnets-permission)
+ [エラー: ec2:DescribeSecurityGroups の呼び出しに失敗しました](#error-DescribeSecurityGroups-permission)
+ [エラー: AZ のサブネットが見つかりませんでした](#error-az-not-available)
+ [エラー: JDBC ターゲットへの書き込み時のジョブ実行の例外](#error-job-run-jdbc-target)
+ [エラー: Amazon S3: このオペレーションはオブジェクトのストレージクラスにおいて有効ではありません](#error-s3-operation-not-valid)
+ [エラー:Amazon S3 タイムアウト](#error-s3-timeout)
+ [エラー: Amazon S3 へのアクセスが拒否されました](#error-s3-access-denied)
+ [エラー: Amazon S3 のアクセスキー ID が存在しません](#error-s3-accesskeyid-not-found)
+ [エラー: URI に `s3a://` を使用しながら Amazon S3 にアクセスするとジョブ実行が失敗します](#error-s3a-uri-directory-listing)
+ [エラー: Amazon S3 のサービストークンが有効期限切れです](#error-s3-service-token-expired)
+ [エラー: ネットワークインターフェイスのプライベート DNS が見つかりません](#error-no-private-DNS)
+ [エラー: 開発エンドポイントのプロビジョニングに失敗しました](#error-development-endpoint-failed)
+ [エラー: ノートブックサーバー CREATE\$1FAILED](#error-notebook-server-ec2-instance-profile)
+ [エラー: ローカルノートブックの起動に失敗する](#error-local-notebook-fails-to-start)
+ [エラー: クローラーの実行に失敗しました](#error-running-crawler-failed)
+ [エラー: パーティションが更新されませんでした](#error-update-from-job-partitions)
+ [エラー: バージョンの不一致のため、ジョブのブックマークの更新に失敗しました)](#error-job-bookmarks-limitation)
+ [エラー: ジョブのブックマークが有効なときにジョブがデータを再処理しています](#error-job-bookmarks-reprocess-data)
+ [エラー: AWS Glue 内の VPC 間のフェイルオーバー動作](#vpc-failover-behavior-error-10)

## エラー: リソースを利用できません。
<a name="error-resource-unavailable"></a>

AWS Glue がリソース使用不可メッセージを返す場合は、エラーメッセージやログを表示して、問題の詳細を確認することができます。ここでは、トラブルシューティングするための一般的な方法について説明します。
+ 使用する接続および開発エンドポイントについては、クラスターに Elastic Network Interface が不足していないかどうかを確認してください。

## エラー: VPC の subnetId に S3 エンドポイントまたは NAT ゲートウェイが見つかりませんでした
<a name="error-s3-subnet-vpc-NAT-configuration"></a>

問題の診断に役立つメッセージのサブネット ID と VPC ID を確認します。
+ AWS Glue に必要な Amazon S3 VPC エンドポイントがセットアップ済みであることを確認してください。さらに、設定の一部である場合には、NAT ゲートウェイを確認します。詳細については、[Amazon S3 用の VPC エンドポイント](vpc-endpoints-s3.md) を参照してください。

## エラー: 必要なセキュリティグループのインバウンドルール
<a name="error-inbound-self-reference-rule"></a>

少なくとも 1 つのセキュリティグループのすべての受信ポートを開く必要があります。トラフィックを制限するために、インバウンドルールのソースセキュリティグループを同じセキュリティグループに制限できます。
+ 使用するすべての接続について、セキュリティグループで自己参照のインバウンドルールを確認します。詳細については、[データストアへのネットワークアクセスを設定する](start-connecting.md) を参照してください。
+ 開発エンドポイントを使用している場合は、自己参照のインバウンドルールのセキュリティグループを確認します。詳細については、[データストアへのネットワークアクセスを設定する](start-connecting.md) を参照してください。

## エラー: 必要なセキュリティグループのアウトバウンドルール
<a name="error-outbound-self-reference-rule"></a>

少なくとも 1 つのセキュリティグループのすべての発信ポートを開く必要があります。トラフィックを制限するために、アウトバウンドルールのソースセキュリティグループを同じセキュリティグループに制限できます。
+ 使用するすべての接続について、セキュリティグループで自己参照のアウトバウンドルールを確認します。詳細については、[データストアへのネットワークアクセスを設定する](start-connecting.md) を参照してください。
+ 開発エンドポイントを使用している場合は、自己参照のアウトバウンドルールのセキュリティグループを確認します。詳細については、[データストアへのネットワークアクセスを設定する](start-connecting.md) を参照してください。

## エラー: ジョブの実行に失敗しました、渡されたロールには AWS Glue サービスでロールを引き受けるためのアクセス許可が必要です
<a name="error-assume-role-user-policy"></a>

ジョブを定義するユーザーは AWS Glue の `iam:PassRole` のアクセス許可を持っている必要があります。
+ ユーザーが AWS Glue ジョブを作成するとき、そのユーザーのロールに AWS Glue の `iam:PassRole` を含むポリシーが含まれていることを確認します。詳細については、[ステップ 3: AWS Glue にアクセスするユーザーまたはグループにポリシーをアタッチする](attach-policy-iam-user.md) を参照してください。

## エラー: DescribeVpcEndpoints アクションは許可されていません。VPC ID vpc-id を検証できません
<a name="error-DescribeVpcEndpoints-permission"></a>
+ `ec2:DescribeVpcEndpoints` アクセス許可用に、AWS Glue に渡されたポリシーを確認してください。

## エラー: DescribeRouteTables アクションは許可されていません。VPC id: vpc-id の subnet Id: Subnet-id を検証できません
<a name="error-DescribeRouteTables-permission"></a>
+ `ec2:DescribeRouteTables` アクセス許可用に、AWS Glue に渡されたポリシーを確認してください。

## エラー: ec2:DescribeSubnets の呼び出しに失敗しました
<a name="error-DescribeSubnets-permission"></a>
+ `ec2:DescribeSubnets` アクセス許可用に、AWS Glue に渡されたポリシーを確認してください。

## エラー: ec2:DescribeSecurityGroups の呼び出しに失敗しました
<a name="error-DescribeSecurityGroups-permission"></a>
+ ` ec2:DescribeSecurityGroups` アクセス許可用に、AWS Glue に渡されたポリシーを確認してください。

## エラー: AZ のサブネットが見つかりませんでした
<a name="error-az-not-available"></a>
+ アベイラビリティーゾーンは、AWS Glue では使用できない場合があります。メッセージで指定されているものとは異なるアベイラビリティーゾーンに新しいサブネットを作成して使用します。

## エラー: JDBC ターゲットへの書き込み時のジョブ実行の例外
<a name="error-job-run-jdbc-target"></a>

JDBC ターゲットに書き込むジョブを実行すると、以下のシナリオのようにジョブでエラーが発生する可能性があります。
+ ジョブが Microsoft SQL Server テーブルに書き込む場合、テーブルに `Boolean` 型として定義された列がある場合には、SQL Server データベースでテーブルを事前に定義する必要があります。SQL Server ターゲットを使用して AWS Glue コンソールでジョブを定義し、**[Create tables in your data target (データターゲットでテーブルを作成する)]** オプションを使用する場合は、データ型が `Boolean` であるターゲット列にソース列をマッピングしないでください。ジョブの実行時にエラーが発生する可能性があります。

  次のようにして、エラーを回避できます。
  + **[Boolean (ブール)]** 列を使用して既存のテーブルを選択します。
  + `ApplyMapping` 変換を編集し、ソース内の **[Boolean (ブール)]** 列をターゲット内の数値または文字列にマップします。
  + `ApplyMapping` 変換を編集して、**[Boolean (ブール)]** 列をソースから削除します。
+ ジョブが Oracle テーブルに書き込む場合は、Oracle オブジェクトの名前の長さを調整する必要があります。Oracle の一部のバージョンでは、識別子の最大長は 128 バイトまたは 30 バイトに制限されています。この制限は、Oracle ターゲットデータストアのテーブル名および列名に影響を与えます。

  次のようにして、エラーを回避できます。
  + ご使用のバージョンの制限内で Oracle ターゲットテーブルに名前を付けます。
  + デフォルトの列名は、データのフィールド名から生成されます。列名が制限よりも長い場合は処理のために、`ApplyMapping` または `RenameField` 変換を使用して列の名前を制限内に変更します。

## エラー: Amazon S3: このオペレーションはオブジェクトのストレージクラスにおいて有効ではありません
<a name="error-s3-operation-not-valid"></a>

AWS Glue がこのエラーを返した場合、AWS Glue ジョブは Amazon S3 ストレージクラス層にまたがるパーティションを持つテーブルからデータを読み取っていた可能性があります。
+ ストレージクラスの除外を使用することで、これらのストレージクラス層にまたがるパーティションを持つテーブルで AWS Glue ジョブを確実に動作させることができます。除外しないと、これらの階層からデータを読み取るジョブは `AmazonS3Exception: The operation is not valid for the object's storage class` のエラーで失敗します。

  詳細については、「[Amazon S3 ストレージクラスの除外](aws-glue-programming-etl-storage-classes.md)」を参照してください。

## エラー:Amazon S3 タイムアウト
<a name="error-s3-timeout"></a>

AWS Glue が接続タイムアウトエラーを返す場合は、別の AWS リージョンの Amazon S3 バケットにアクセスしようとしている可能性があります。
+ Amazon S3 の VPC エンドポイントは、AWS リージョン内のバケットにのみトラフィックをルーティングできます。他のリージョンのバケットに接続する必要がある場合、考えられる回避策は NAT ゲートウェイを使用することです。詳細については、「[NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)」を参照してください。

## エラー: Amazon S3 へのアクセスが拒否されました
<a name="error-s3-access-denied"></a>

AWS Glue が Amazon S3 バケットまたはオブジェクトへのアクセス拒否エラーを返す場合は、提供された IAM ロールにデータストアへのアクセス許可を持つポリシーがない可能性があります。
+ ETL ジョブは、ソースまたはターゲットとして使用される Amazon S3 データストアにアクセスできる必要があります。クローラーは、クロールする Amazon S3 データストアにアクセスできる必要があります。詳細については、[ステップ 2: AWS Glue 用の IAM ロールを作成する](create-an-iam-role.md) を参照してください。

## エラー: Amazon S3 のアクセスキー ID が存在しません
<a name="error-s3-accesskeyid-not-found"></a>

ジョブの実行中に AWS Glue がアクセスキー ID が存在しないというエラーを返す場合は、次のいずれかの理由が考えられます。
+ ETL ジョブは IAM ロールを使用してデータストアにアクセスし、IAM ロールがそのジョブの開始前に削除されていないことを確認します。
+ IAM ロールには、データストアにアクセスするためのアクセス許可が含まれており、アタッチ済みの `s3:ListBucket` を含む Amazon S3 ポリシーが正しいことを確認します。

## エラー: URI に `s3a://` を使用しながら Amazon S3 にアクセスするとジョブ実行が失敗します
<a name="error-s3a-uri-directory-listing"></a>

ジョブ実行から「*XML ドキュメントをハンドラクラスで解析できませんでした*」などのエラーが返された場合は、` s3a://` URI を使用して数百のファイルをリストアップしようとして失敗した可能があります。代わりに `s3://` URI を使用してデータストアにアクセスしてください。次の例外トレースを調べてエラーを確認できます。

```
1.	com.amazonaws.SdkClientException: Failed to parse XML document with handler class com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser$ListBucketHandler
2.	at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseXmlInputStream(XmlResponsesSaxParser.java:161)
3.	at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.parseListBucketObjectsResponse(XmlResponsesSaxParser.java:317)
4.	at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:70)
5.	at com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:59)
6.	at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62)
7.	at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31)
8.	at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70)
9.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1554)
10.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1272)
11.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)
12.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
13.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
14.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
15.	at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
16.	at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
17.	at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
18.	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4325)
19.	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4272)
20.	at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4266)
21.	at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:834)
22.	at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:971)
23.	at org.apache.hadoop.fs.s3a.S3AFileSystem.deleteUnnecessaryFakeDirectories(S3AFileSystem.java:1155)
24.	at org.apache.hadoop.fs.s3a.S3AFileSystem.finishedWrite(S3AFileSystem.java:1144)
25.	at org.apache.hadoop.fs.s3a.S3AOutputStream.close(S3AOutputStream.java:142)
26.	at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:74)
27.	at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:108)
28.	at org.apache.parquet.hadoop.ParquetFileWriter.end(ParquetFileWriter.java:467)
29.	at org.apache.parquet.hadoop.InternalParquetRecordWriter.close(InternalParquetRecordWriter.java:117)
30.	at org.apache.parquet.hadoop.ParquetRecordWriter.close(ParquetRecordWriter.java:112)
31.	at org.apache.spark.sql.execution.datasources.parquet.ParquetOutputWriter.close(ParquetOutputWriter.scala:44)
32.	at org.apache.spark.sql.execution.datasources.FileFormatWriter$SingleDirectoryWriteTask.releaseResources(FileFormatWriter.scala:252)
33.	at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:191)
34.	at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask$3.apply(FileFormatWriter.scala:188)
35.	at org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1341)
36.	at org.apache.spark.sql.execution.datasources.FileFormatWriter$.org$apache$spark$sql$execution$datasources$FileFormatWriter$$executeTask(FileFormatWriter.scala:193)
37.	at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:129)
38.	at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1$$anonfun$3.apply(FileFormatWriter.scala:128)
39.	at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
40.	at org.apache.spark.scheduler.Task.run(Task.scala:99)
41.	at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)
42.	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
43.	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
44.	at java.lang.Thread.run(Thread.java:748)
```

## エラー: Amazon S3 のサービストークンが有効期限切れです
<a name="error-s3-service-token-expired"></a>

Amazon Redshift との間でデータを移行する際には、1 時間で有効期限が切れる、Amazon S3 の一時的な認証情報が使用されます。長時間実行するジョブがある場合は、失敗する可能性があります。長時間実行するジョブを設定して Amazon Redshift との間でデータを移動する方法については、「[aws-glue-programming-etl-connect-redshift-home](aws-glue-programming-etl-connect-redshift-home)」を参照してください。

## エラー: ネットワークインターフェイスのプライベート DNS が見つかりません
<a name="error-no-private-DNS"></a>

ジョブが失敗したり、開発エンドポイントがプロビジョニングに失敗した場合は、ネットワーク設定が問題の原因である可能性があります。
+ Amazon が提供する DNS を使用している場合は、`enableDnsHostnames` の値を true に設定する必要があります。詳細については、「[DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」を参照してください。

## エラー: 開発エンドポイントのプロビジョニングに失敗しました
<a name="error-development-endpoint-failed"></a>

AWS Glue が開発エンドポイントのプロビジョニングに失敗した場合は、ネットワーク設定が問題の原因である可能性があります。
+ 開発エンドポイントを定義すると、VPC、サブネット、セキュリティグループが検証され、特定の要件を満たしていることが確認されます。
+ オプションの SSH パブリックキーを指定した場合、有効な SSH パブリックキーになっていることを確認します。
+ VPC コンソールで、VPC が有効な **[DHCP option set (DHCP オプションセット)]** を使用していることを確認します。詳細については、「[DHCP オプションセット](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)」を参照してください。
+ クラスターが PROVISIONING 状態のままになっている場合は、AWS サポート にお問い合わせください。

## エラー: ノートブックサーバー CREATE\$1FAILED
<a name="error-notebook-server-ec2-instance-profile"></a>

AWS Glue が開発エンドポイント用のノートブックサーバーの作成に失敗した場合は、次のいずれかの問題が原因である可能性があります。
+ AWS Glue は、ノートブックサーバーのセットアップ時に、Amazon EC2 に対し IAM ロールを渡します。IAM ロールでは、Amazon EC2 との信頼関係が必要です。
+ IAM ロールには、同じ名前のインスタンスプロファイルが必要です。IAM コンソールで Amazon EC2 のロールを作成すると、同じ名前のインスタンスプロファイルが自動的に作成されます。無効なインスタンスプロファイル名 ` iamInstanceProfile.name` に関するログのエラーをチェックします。詳細については、「[インスタンスプロファイルの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)」を参照してください。
+ ノートブックサーバーを作成するために渡したポリシーの `aws-glue*` バケットにアクセスする許可がロールにあることを確認します。

## エラー: ローカルノートブックの起動に失敗する
<a name="error-local-notebook-fails-to-start"></a>

ローカルノートブックの起動に失敗し、ディレクトリまたはフォルダが見つからないというエラーが報告された場合は、次のいずれかの問題が原因である可能性があります。
+ Microsoft Windows で実行している場合は、`JAVA_HOME` 環境変数が適切な Java ディレクトリを指していることを確認します。この変数を更新せずに Java が更新される可能性があります。存在しなくなったフォルダを変数が指していると、Jupyter Notebook は起動に失敗します。

## エラー: クローラーの実行に失敗しました
<a name="error-running-crawler-failed"></a>

AWS Glue がデータをカタログ化するためにクローラーを正常に実行できなかった場合は、次のいずれかの理由が考えられます。まず、AWS Glue コンソールのクローラーリストにエラーがあるかどうかを確認します。クローラー名の横に感嘆符アイコンがあるかどうかを確認し、アイコンの上にカーソルを置いて関連するメッセージを確認します。
+ `/aws-glue/crawlers` にある CloudWatch Logs で実行されるクローラーのログを確認します。

## エラー: パーティションが更新されませんでした
<a name="error-update-from-job-partitions"></a>

ETL ジョブの実行時に Data Catalog でパーティションが更新されなかった場合、CloudWatch のログにある `DataSink` クラスの次のログステートメントが役に立ちます。
+ 「`Attempting to fast-forward updates to the Catalog - nameSpace:`」 — このジョブによって変更しようとしているデータベース、テーブル、および catalogId を示します。このステートメントがここにない場合は、`enableUpdateCatalog` が true に設定され、`getSink()` パラメータとして、または ` additional_options` で正しく渡されるかどうかを確認します。
+ 「`Schema change policy behavior:`」 — 渡したスキーマ ` updateBehavior` 値を示します。
+ 「`Schemas qualify (schema compare):`」 — true または false になります。
+ 「`Schemas qualify (case-insensitive compare):`」 — true または false になります。
+ 両方が false であり、`updateBehavior` に ` UPDATE_IN_DATABASE` が設定されていない場合は、DynamicFrame スキーマが同一であるか、このスキーマには、Data Catalog テーブルスキーマに表示される列のサブセットが含まれている必要があります。

パーティションの更新の詳細については、「[AWS Glue ETL ジョブを使用してデータカタログのスキーマを更新し、新規パーティションを追加する](update-from-job.md)」を参照してください。

## エラー: バージョンの不一致のため、ジョブのブックマークの更新に失敗しました)
<a name="error-job-bookmarks-limitation"></a>

AWS Glue ジョブをパラメータ化して、Amazon S3 の異なるデータセットに同じ変換/ロジックを適用しようとしている可能性があります。ユーザーは指定の場所で処理されたファイルを追跡したいと考えています。同じソースバケットで同じジョブを実行し、同じ/異なる送信先に同時に書き込んだ場合 (同時実行数 >1)、次のエラーによりジョブは失敗します。

```
py4j.protocol.Py4JJavaError: An error occurred while callingz:com.amazonaws.services.glue.util.Job.commit.:com.amazonaws.services.gluejobexecutor.model.VersionMismatchException: Continuation update failed due to version mismatch. Expected version 2 but found version 3
```

解決策として、同時実行数を 1 に設定するか、ジョブを同時に実行しないようにします。

現在、AWS Glue のブックマークは同時ジョブ実行をサポートしておらず、コミットは失敗します。

## エラー: ジョブのブックマークが有効なときにジョブがデータを再処理しています
<a name="error-job-bookmarks-reprocess-data"></a>

AWS Glue ジョブのブックマークを有効にしてあっても、以前の実行で処理したデータを ETL ジョブで再処理する場合があります。このエラーの一般的な原因を確認します。

**最大同時実行数**  
ジョブの同時実行の最大数をデフォルト値の 1 より大きく設定すると、ジョブのブックマークを妨げる可能性があります。ジョブのブックマークがオブジェクトの最終更新日時を確認し、どのオブジェクトを再処理する必要があるか確認するときに発生します。詳細については、「[AWS Glue で Spark ジョブに関するジョブプロパティの構成](add-job.md)」の最大同時実行数に関する説明を参照してください。

**Job オブジェクトが見つからない**  
ジョブの実行スクリプトが次のコメントで終わることを確認します。

```
job.commit()
```

このオブジェクトを含めると、AWS Glue はジョブ実行のタイムスタンプとパスを記録します。同じパスでジョブを再度実行すると、AWS Glue は新しいファイルのみを処理します。このオブジェクトを含まず、ジョブのブックマークが有効になっている場合、ジョブはすでに処理されたファイルと共に新しいファイルを再処理して、ジョブのターゲットデータストアで冗長化されます。

**変換コンテキストパラメータが見つからない**  
変換コンテキストは、`GlueContext` クラスのオプションのパラメータですが、ジョブのブックマークは含めなければ機能しません。このエラーを解決するには、以下に示すように [DynamicFrame を作成する](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-extensions-glue-context.html#aws-glue-api-crawler-pyspark-extensions-glue-context-create_dynamic_frame_from_catalog)ときに変換コンテキストパラメータを追加します。

```
sample_dynF=create_dynamic_frame_from_catalog(database, table_name,transformation_ctx="sample_dynF") 
```

**入力ソース**  
入力ソースのリレーショナルデータベース (JDBC 接続) を使用している場合は、テーブルのプライマリキーが順番になっている場合のみジョブのブックマークが機能します。ジョブのブックマークは新しい行に対して機能しますが、更新された行に対しては機能しません。これは、ジョブのブックマークで探すプライマリキーがすでに存在しているからです。これは、入力ソースが Amazon Simple Storage Service (Amazon S3) である場合には適用されません。

**最終更新日時**  
Amazon S3 入力ソースの場合、ジョブのブックマークは、ファイル名ではなくオブジェクトの最終更新日時を確認して、どのオブジェクトを再処理する必要があるのかを確認します。入力ソースデータが最後のジョブ実行以降に変更されている場合、ジョブを再度実行すると、ファイルが再度処理されます。

## エラー: AWS Glue 内の VPC 間のフェイルオーバー動作
<a name="vpc-failover-behavior-error-10"></a>

次のプロセスは、AWS Glue 5.1 以前のバージョンにおけるジョブのフェイルオーバーに使用されます。

概要: AWS Glue 接続は、ジョブ実行の送信時に選択されます。ジョブ実行で何らかの問題 (IP アドレスの不足、ソースへの接続、ルーティングの問題) が発生した場合、ジョブ実行は失敗します。再試行が設定されている場合、AWS Glue は同じ接続で再度実行を試みます。

1. 実行の試行ごとに、AWS Glue は、使用できる接続が見つかるまで、ジョブ設定に記載されている順序で接続の状態をチェックします。アベイラビリティーゾーン (AZ) に障害が発生した場合、その AZ からの接続はチェックに失敗し、スキップされます。

1. AWS Glue は次のことを実行して接続を検証します。
   + 有効な Amazon VPC ID とサブネットを確認する。
   + NAT ゲートウェイまたは Amazon VPC エンドポイントが存在することを確認する。
   + サブネットに 0 個を超える IP アドレスが割り当てられていることを確認する。
   + AZ が正常であることを確認する。

   AWS Glue は、ジョブ実行の送信時に接続を確認できません。

1. Amazon VPC を使用するジョブの場合、すべてのドライバーとエグゼキューターは、ジョブ実行の送信時に選択された接続を使用して同じ AZ に作成されます。

1. 再試行が設定されている場合、AWS Glue は同じ接続で再度実行を試みます。これは、この接続に関する問題が長時間継続することを保証できないためです。AZ に障害が発生すると、その AZ 内の既存のジョブ実行 (ジョブ実行の段階によって異なる) が失敗する可能性があります。再試行すると AZ の障害が検出され、新しい実行で別の AZ が選択されるはずです。

# クローラーが Lake Formation アクセス許可を使用している場合のクローラーエラー
<a name="error-crawler-config-lf"></a>

以下の情報を使用して、Lake Formation の認証情報を使用してクローラーを設定する際のさまざまな問題を診断し、修正します。

## エラー: 「The S3 location: s3://examplepath is not registered」(S3 ロケーション: s3://examplepath は登録されていません)
<a name="error-s3-location"></a>

Lake Formation の認証情報を使用してクローラーを実行する場合は、最初に Lake Formation のアクセス許可を設定する必要があります。このエラーを解決するには、ターゲットの Amazon S3 ロケーションを Lake Formation で登録してください。詳細については、「[Registering an Amazon S3 location](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html)」を参照してください。

## エラー: 「User/Role is not authorized to perform: lakeformation:GetDataAccess on resource」(ユーザー/ロールは、リソースに対する lakeformation:GetDataAccess の実行が許可されていません)
<a name="error-role-authorization"></a>

IAM コンソールまたは AWS CLI を使用して、クローラーロールに `lakeformation:GetDataAccess` へのアクセス許可を追加してください。この許可があると、Lake Formation がデータにアクセスするための一時的な認証情報のリクエストを承諾します。以下のポリシーを参照してください。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "lakeformation:GetDataAccess"
    ],
    "Resource": "*"
  }
}
```

------

## エラー: 「Insufficient Lake Formation permission(s) on (Database name: exampleDatabase, Table Name: exampleTable)」(データベース名: exampleDatabase、テーブル名: exampleTable に対する Lake Formation へのアクセス許可が不十分です)
<a name="error-permissions"></a>

Lake Formation コンソール ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) で、出力データベースとして指定されたデータベースに対するクローラーロールへのアクセス許可 (` Create`、`Describe`、`Alter`) を付与します。テーブルに対するアクセス許可を付与することもできます。詳細については、「[名前付きリソース方式を使用した Data Catalog 許可の付与](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-cat-perms-named-resource.html)」を参照してください。

## エラー: 「Insufficient Lake Formation permission(s) on s3://examplepaths」(s3://examplepath に対する Lake Formation へのアクセス許可が不十分です)
<a name="error-location-permissions"></a>

1.  **クロスアカウントでのクローリング** 

   1. Amazon S3 バケットが登録されているアカウント (アカウント B) を使用して、Lake Formation コンソール ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) にログインします。クローラーを実行するアカウント (アカウント A) に、データロケーションへのアクセス許可を付与します。これにより、クローラーはターゲットの Amazon S3 ロケーションからデータを読み取ることができます。

   1.  クローラーが作成されたアカウント (アカウント A) で、クローラーの実行に使用される IAM ロールに、ターゲットの Amazon S3 ロケーションのデータロケーションへのアクセス許可を付与し、クローラーが Lake Formation の送信先からデータを読み取れるようにします。詳細については、「[データロケーション許可の付与 (外部アカウント)](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-external.html)」を参照してください。

1. **アカウント内 (クローラーと登録されている Amazon S3 ロケーションが同じアカウントにある) クローリング** - Amazon S3 ロケーションで実行されるクローラーに使用される IAM ロールにデータロケーションへのアクセス許可を付与し、クローラーが Lake Formation のターゲットからデータを読み取れるようにします。詳細については、「[データロケーション許可の付与 (同じアカウント)](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html)」を参照してください。

## Lake Formation の認証情報を使用したクローラーの設定に関するよくある質問
<a name="faq-crawler-config-lf"></a>

1.  **AWS コンソールを使用して、Lake Formation の認証情報を使用して実行できるようにクローラーを設定するにはどうすればよいですか。**

   AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) で、クローラーを設定する際に、オプション **[Use Lake Formation credentials for crawling Amazon S3 data source]** (Amazon S3 データソースのクローリングに Lake Formation の認証情報を使用する) を選択してください。クロスアカウントクローリングの場合は、ターゲットの Amazon S3 ロケーションが Lake Formation で登録されている AWS アカウント ID を指定します。アカウント内クローリングでは、**accountId** フィールドはオプションです。

1.  **AWS CLI を使用して、Lake Formation の認証情報を使用できるようにクローラーを設定するにはどうすればよいですか。**

   `CreateCrawler` API コール中に `LakeFormationConfiguration` を追加します。

   ```
   "LakeFormationConfiguration": {
       "UseLakeFormationCredentials": true,
       "AccountId": "111111111111" (AWS account ID where the target Amazon S3 location is registered with Lake Formation)
     }
   ```

1.  **Lake Formation の認証情報を使用するクローラーでサポートされているターゲットは何ですか。**

   Lake Formation の認証情報を使用するクローラーは、Amazon S3 (アカウント内およびクロスアカウントのクローリング) と、アカウント内のデータカタログターゲット (基盤となるロケーションが Amazon S3 である)、および Apache Iceberg ターゲットでのみサポートされています。

1.  **Lake Formation の認証情報を使用して、複数の Amazon S3 バケットを単一のクローラーの一部としてクローリングできますか。**

   いいえ。Lake Formation の認証情報供給を使用するターゲットをクローリングするには、基盤となる Amazon S3 ロケーションが同じバケットに属している必要があります。例えば、複数のお客様が同じバケット (bucket1) に属している場合は、複数のターゲットロケーション `(s3://bucket1/folder1, s3://bucket1/folder2)` を使用できます。別のバケット (s3://bucket1/folder1、s3://bucket2/folder2) の指定はサポートされていません。

# ログから AWS Glue for Ray エラーをトラブルシューティングする
<a name="troubleshooting-ray"></a>

**重要**  
AWS Glue for Ray は、2026 年 4 月 30 日以降、新規のお客様の受付を終了します。AWS Glue for Ray を使用する場合は、上記日付よりも前にサインアップしてください。既存のお客様は、通常どおりサービスを引き続き使用できます。AWS Glue for Ray と同様の機能については、Amazon EKS をご覧ください。詳細については、「[AWS Glue for Ray のサポート終了](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)」を参照してください。

AWS Glue では、ジョブの実行中に Ray プロセスが生成するログにアクセス可能です。Ray ジョブでエラーや予期しない動作が発生した場合は、まずログから情報を収集して失敗の原因を特定します。また、インタラクティブセッションについても同様のログが提供されています。セッションのログは、先頭に `/aws-glue/ray/sessions` が付きます。

ジョブの実行時、ログの行はリアルタイムで CloudWatch に送信されます。実行が完了すると、Print ステートメントが CloudWatch ログに追加されます。ログはジョブの実行後 2 週間保持されます。

## Ray ジョブのログを検査する
<a name="troubleshooting-ray-log-locations"></a>

ジョブが失敗した場合は、ジョブ名とジョブ実行 ID を収集します。これらは AWS Glue コンソールで確認できます。ジョブページに移動し、**[Runs]** (実行) タブに移動します。Ray ジョブのログは、次の専用の CloudWatch ロググループに保存されます。
+ `/aws-glue/ray/jobs/script-log/` — メインの Ray スクリプトが生成するログを保存します。
+ `/aws-glue/ray/jobs/ray-monitor-log/` — Ray のオートスケーラープロセスが生成するログを保存します。これらのログはヘッドノードについて生成され、他のワーカーノードでは生成されません。
+ `/aws-glue/ray/jobs/ray-gcs-logs/` – GCS (グローバルコントロールストア) プロセスから出力されたログを保存します。これらのログはヘッドノードについて生成され、他のワーカーノードでは生成されません。
+ `/aws-glue/ray/jobs/ray-process-logs/` – ヘッドノードで実行されている他の Ray プロセス (主にダッシュボードエージェント) から出力されたログを保存します。これらのログはヘッドノードについて生成され、他のワーカーノードでは生成されません。
+ ` /aws-glue/ray/jobs/ray-raylet-logs/` – 各 raylet プロセスから出力されたログを保存します。これらのログは、ワーカーノード (ヘッドノードを含む) ごとに 1 つのストリームにまとめられます。
+ `/aws-glue/ray/jobs/ray-worker-out-logs/` – クラスター内の各ワーカーの `stdout` ログを保存します。これらのログは、ワーカーノード (ヘッドノードを含む) ごとに生成されます。
+ `/aws-glue/ray/jobs/ray-worker-err-logs/` – クラスター内の各ワーカーの `stderr` ログを保存します。これらのログは、ワーカーノード (ヘッドノードを含む) ごとに生成されます。
+ `/aws-glue/ray/jobs/ray-runtime-env-log/` – Ray のセットアッププロセスに関するログを保存します。これらのログは、ワーカーノード (ヘッドノードを含む) ごとに生成されます。

## Ray ジョブのエラーをトラブルシューティングする
<a name="troubleshooting-ray-errors"></a>

Ray のロググループの構成を理解し、エラーのトラブルシューティングの助けになるロググループを見つけるには、Ray のアーキテクチャに関する背景情報があると役立ちます。

AWS Glue ETL では、ワーカーはインスタンスに対応します。AWS Glue ジョブのワーカーを設定する際は、そのジョブ専用のインスタンスタイプおよびインスタンス数を設定します。Ray では、ワーカーという単語がさまざまな形で使われています。

Ray は、ヘッドノードとワーカーノードを使用して、Ray クラスター内のインスタンスの役割を区別します。Ray のワーカーノードは、分散計算の結果を得るため計算を実行する、複数のアクタープロセスをホストできます。関数のレプリカを実行するアクターはレプリカと呼ばれます。レプリカのアクターはワーカープロセスとも呼ばれます。レプリカはヘッドノードでも実行できます。ヘッドノードは、追加のプロセスを実行してクラスターを調整することから、ヘッドと呼ばれます。

計算に関与する各アクターは、独自のログストリームを生成します。これにより、いくつかのインサイトが得られます。
+ ログを生成するプロセスの数は、ジョブに割り当てられるワーカーの数よりも多い場合があります。多くの場合、各インスタンスのコアには 1 つのアクターがあります。
+  Ray のヘッドノードは、クラスターの管理および起動ログを生成します。それに対して Ray のワーカーノードは、そのノードで実行される処理のログのみを生成します。

Ray のアーキテクチャの詳細については、Ray のドキュメントの「[Architecture Whitepapers]( https://docs.ray.io/en/latest/ray-contribute/whitepaper.html)」(アーキテクチャホワイトペーパー) を参照してください。

### 問題の領域: Amazon S3 へのアクセス
<a name="troubleshooting-ray-errors-s3"></a>

ジョブ実行のエラーメッセージを確認します。それでも十分な情報が得られない場合は、`/aws-glue/ray/jobs/script-log/` を確認します。

### 問題領域: PIP の依存性の管理
<a name="troubleshooting-ray-errors-dependencies"></a>

`/aws-glue/ray/jobs/ray-runtime-env-log/` をチェックします。

### 問題の領域: メインプロセスにおける中間値の検査
<a name="troubleshooting-ray-errors-main-process"></a>

メインスクリプトから `stderr` または `stdout` に書き込みを行います。また、`/aws-glue/ray/jobs/script-log/` からログを取得します。

### 問題の領域: 子プロセスにおける中間値の検査
<a name="troubleshooting-ray-errors-worker-process"></a>

`remote` 関数から `stderr` または `stdout` に書き込みを行います。その後、`/aws-glue/ray/jobs/ray-worker-out-logs/` または `/aws-glue/ray/jobs/ray-worker-err-logs/` からログを取得します。関数はどのレプリカでも実行されている可能性があるため、目的の出力を見つけるには複数のログを調べなければならない場合があります。

### 問題の領域: エラーメッセージ内の IP アドレスの解釈
<a name="troubleshooting-ray-errors-ips"></a>

特定のエラー状況では、ジョブは IP アドレスを含むエラーメッセージを出力することがあります。これらの IP アドレスは一時的なもので、クラスターがノードを識別し、ノード間で通信するために使用されます。ノードのログは、IP アドレスに基づく一意のサフィックスが付いたログストリームに発行されます。

CloudWatch では、このサフィックスを識別することでログを絞り込み、この IP アドレス固有のログを検査できます。例えば、*FAILED\$1IP* と *JOB\$1RUN\$1ID* が指定されている場合、サフィックスを以下のように識別できます。

```
filter @logStream like /JOB_RUN_ID/
| filter @message like /IP-/
| parse @message "IP-[*]" as ip
| filter ip like /FAILED_IP/
| fields replace(ip, ":", "_") as uIP
| stats count_distinct by uIP as logStreamSuffix
| display logStreamSuffix
```

# AWS Glue 機械学習の例外
<a name="exceptions-machine-learning"></a>

このトピックでは、機械学習に関連する AWS Glue 例外の HTTP エラーコードとエラー文字列について説明します。機械学習アクティビティごとに、オペレーションの実行時に発生する可能性があるエラーコードとエラー文字列が表示されます。また、エラーが発生したオペレーションを再試行できるかどうかも確認できます。

## CancelMLTaskRunActivity
<a name="exceptions-machine-learning-CancelMLTaskRunActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「[taskRunId] の ML タスク実行が見つかりません: 変換 [transformName] のアカウント [accountId] 内。」

  再試行してもいいですか: いいえ。

## CreateMLTaskRunActivity
<a name="exceptions-machine-learning-CreateMLTransformActivity"></a>

このアクティビティには、次の例外があります。
+ InvalidInputException (400)
  + 「予期しない入力による内部サービスエラー。」
  + 「AWS Glue テーブルの入力ソースを変換に指定する必要があります｡」
  + 「入力ソース列 [columnName] で、カタログに無効なデータ型が定義されています。」
  + 「入力レコードテーブルは 1 つだけ指定する必要があります。」
  + 「データベース名を指定する必要があります。」
  + 「テーブル名を指定する必要があります。」
  + 「スキーマが変換に定義されていません｡」
  + 「スキーマには、特定の主キー [PrimaryKey] を含める必要があります。」
  + 「データカタログスキーマの取得中に問題が発生しました: [message]。」
  + 「最大容量とワーカー番号/タイプを同時に設定することはできません。」
  + 「WorkerType と NumberOfWorkers の両方を設定する必要があります。」
  + 「MaxCapacity は >= [maxCapacity] にする必要があります。」
  + 「NumberOfWorkers は >= [maxCapacity] にする必要があります。」
  + 「最大再試行数は負以外にする必要があります。」
  +  「一致検索パラメータが設定されていません。」
  + 「一致検索パラメータに主キーを指定する必要があります。」

  再試行してもいいですか: いいえ。
+ AlreadyExistsException (400)
  + 「[transformName] という名前の変換はすでに存在します｡」

  再試行してもいいですか: いいえ。
+ IdempotentParameterMismatchException (400)
  + 「変換 [transformName] のべき等作成リクエストにパラメータの不一致がありました。」

  再試行してもいいですか: いいえ。
+ InternalServiceException (500)
  + 「依存関係エラー。」

  再試行してもいいですか: はい。
+ ResourceNumberLimitExceededException (400)
  + 「ML 変換数 ([count]) が [limit] 変換数の制限を超えています。」

  再試行してもいいですか: はい。変換を削除して、この新しい変換用のスペースを作成してから再試行できます。

## DeleteMLTransformActivity
<a name="exceptions-machine-learning-DeleteMLTransformActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません」

  再試行してもいいですか: いいえ。

## GetMLTaskRunActivity
<a name="exceptions-machine-learning-GetMLTaskRunActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「[taskRunId] の ML タスク実行が見つかりません: 変換 [transformName] のアカウント [accountId] 内。」

  再試行してもいいですか: いいえ。

## GetMLTaskRunsActivity
<a name="exceptions-machine-learning-GetMLTaskRunsActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「[taskRunId] の ML タスク実行が見つかりません: 変換 [transformName] のアカウント [accountId] 内。」

  再試行してもいいですか: いいえ。

## GetMLTransformActivity
<a name="exceptions-machine-learning-GetMLTransformActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。

## GetMLTransformsActivity
<a name="exceptions-machine-learning-GetMLTransformsActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「アカウント ID を空白にすることはできません。」
  + 「列 [column] での並べ替えはサポートされていません。」
  + 「[column] を空白にすることはできません。」
  + 「予期しない入力による内部サービスエラー。」

  再試行してもいいですか: いいえ。

## GetSaveLocationForTransformArtifactActivity
<a name="exceptions-machine-learning-GetSaveLocationForTransformArtifactActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「サポートされていないアーティファクトタイプ [artifactType]。」
  + 「予期しない入力による内部サービスエラー。」

  再試行してもいいですか: いいえ。

## GetTaskRunArtifactActivity
<a name="exceptions-machine-learning-GetTaskRunArtifactActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「[taskRunId] の ML タスク実行が見つかりません: 変換 [transformName] のアカウント [accountId] 内。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「ファイル名 '[fileName]' は発行に対して無効です。」
  + 「[taskType] タスクタイプのアーティファクトを取得できません。」
  + 「[artifactType] のアーティファクトを取得できません。」
  + 「予期しない入力による内部サービスエラー。」

  再試行してもいいですか: いいえ。

## PublishMLTransformModelActivity
<a name="exceptions-machine-learning-PublishMLTransformModelActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「アカウント ID - [accountId] - および変換 ID - [transformId] で、バージョン - [version] を持つ既存のモデルが見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「ファイル名 '[fileName]' は発行に対して無効です。」
  + 「符号なし文字列 [string] の先頭のマイナス記号が不正です。」
  + 「[string] の末尾に不正な数字があります。」
  +  「文字列値 [string] が符号なし長整数の範囲を超えています。」
  + 「予期しない入力による内部サービスエラー。」

  再試行してもいいですか: いいえ。

## PullLatestMLTransformModelActivity
<a name="exceptions-machine-learning-PullLatestMLTransformModelActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「予期しない入力による内部サービスエラー。」

  再試行してもいいですか: いいえ。
+ ConcurrentModificationException (400)
  + 「競合する挿入のパラメータが一致しないため､トレーニング対象のモデルバージョンを作成できません｡」
  + 「変換 ID [transformId] の ML 変換モデルが古いか、別のプロセスによって更新中です。再試行してください。」

  再試行してもいいですか: はい。

## PutJobMetadataForMLTransformActivity
<a name="exceptions-machine-learning-PutJobMetadataForMLTransformActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「[taskRunId] の ML タスク実行が見つかりません: 変換 [transformName] のアカウント [accountId] 内。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「予期しない入力による内部サービスエラー。」
  + 「不明なジョブメタデータタイプ [jobType]。」
  +  「更新するタスク実行 ID を指定する必要があります。」

  再試行してもいいですか: いいえ。

## StartExportLabelsTaskRunActivity
<a name="exceptions-machine-learning-StartExportLabelsTaskRunActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」
  + 「アカウント ID [accountId] に変換 ID [transformId] のラベルセットがありません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「[message]。」
  + 「指定した S3 パスは、変換と同じリージョン内にありません。」 リージョン - [region] が必要ですが、- [region] が提供されました。」

  再試行してもいいですか: いいえ。

## StartImportLabelsTaskRunActivity
<a name="exceptions-machine-learning-StartExportLabelsTaskRunActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「[message]。」
  + 「無効なラベルファイルパスです。」
  + 「[labelPath] のラベルファイルにアクセスできません。[message]。」
  + 「変換で提供された IAM ロールを使用できません。ロール: [role]。」
  + 「サイズ 0 の無効なラベルファイル｡」
  + 「指定した S3 パスは、変換と同じリージョン内にありません。」 リージョン - [region] が必要ですが、- [region] が提供されました。」

  再試行してもいいですか: いいえ。
+ ResourceNumberLimitExceededException (400)
  + 「ラベルファイルが [limit] MB の制限を超えています。」

  再試行してもいいですか: いいえ。ラベルファイルをいくつかの小さなファイルに分割することを検討してください。

## StartMLEvaluationTaskRunActivity
<a name="exceptions-machine-learning-StartMLEvaluationTaskRunActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「入力レコードテーブルは 1 つだけ指定する必要があります。」
  + 「データベース名を指定する必要があります。」
  + 「テーブル名を指定する必要があります。」
  + 「一致検索パラメータが設定されていません。」
  + 「一致検索パラメータに主キーを指定する必要があります。」

  再試行してもいいですか: いいえ。
+ MLTransformNotReadyException (400)
  + 「このオペレーションは READY 状態の変換にのみ適用できます。」

  再試行してもいいですか: いいえ。
+ InternalServiceException (500)
  + 「依存関係エラー。」

  再試行してもいいですか: はい。
+ ConcurrentRunsExceededException (400)
  + 「ML タスク実行数 [count] が [limit] タスク実行の変換制限を超えています。」
  + 「ML タスク実行数 [count] が [limit] タスク実行数の制限を超えています。」

  再試行してもいいですか: はい。タスク実行が完了するまで待ってから再試行できます。

## StartMLLabelingSetGenerationTaskRunActivity
<a name="exceptions-machine-learning-StartMLLabelingSetGenerationTaskRunActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「入力レコードテーブルは 1 つだけ指定する必要があります。」
  + 「データベース名を指定する必要があります。」
  + 「テーブル名を指定する必要があります。」
  + 「一致検索パラメータが設定されていません。」
  + 「一致検索パラメータに主キーを指定する必要があります。」

  再試行してもいいですか: いいえ。
+ InternalServiceException (500)
  + 「依存関係エラー。」

  再試行してもいいですか: はい。
+ ConcurrentRunsExceededException (400)
  + 「ML タスク実行数 [count] が [limit] タスク実行の変換制限を超えています。」

  再試行してもいいですか: はい。タスク実行の完了後に再試行できます。

## UpdateMLTransformActivity
<a name="exceptions-machine-learning-UpdateMLTransformActivity"></a>

このアクティビティには、次の例外があります。
+ EntityNotFoundException (400)
  + 「ハンドル [transformName] を持つアカウント [accountId] に ML 変換が見つかりません。」

  再試行してもいいですか: いいえ。
+ InvalidInputException (400)
  + 「[TransformName] という名前の別の変換がすでに存在します｡」
  + 「[message]。」
  + 「変換名を空白にすることはできません。」
  + 「最大容量とワーカー番号/タイプを同時に設定することはできません。」
  + 「WorkerType と NumberOfWorkers の両方を設定する必要があります。」
  + 「MaxCapacity は >= [minMaxCapacity] にする必要があります。」
  + 「NumberOfWorkers は >= [minNumWorkers] にする必要があります。」
  + 「最大再試行数は負以外にする必要があります。」
  + 「予期しない入力による内部サービスエラー。」
  + 「一致検索パラメータが設定されていません。」
  + 「一致検索パラメータに主キーを指定する必要があります。」

  再試行してもいいですか: いいえ。
+ AlreadyExistsException (400)
  + 「[transformName] という名前の変換はすでに存在します｡」

  再試行してもいいですか: いいえ。
+ IdempotentParameterMismatchException (400)
  + 「変換 [transformName] のべき等作成リクエストにパラメータの不一致がありました。」

  再試行してもいいですか: いいえ。

# AWS Glue のクォータ
<a name="troubleshooting-service-limits"></a>

AWS サポート に連絡して、「AWS 全般のリファレンス」に記載されているサービスクォータに関し、[クォータの引き上げをリクエスト](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)できます。特に明記していない限り、クォータはリージョン固有です。詳細については、「[AWS Glue エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/glue.html)」を参照してください。