

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# スケジュールされたクエリの結果を AWS CloudShell で表示
<a name="query-editor-v2-schedule-query-troubleshooting-cloudshell"></a>

AWS CloudShell を使用してスケジュールクエリの詳細を確認できます。次の手順に示す、AWS CLI コマンドを実行するための適切なアクセス許可を持っている必要があります。

**スケジュールされたクエリの結果を表示するには**

1. AWS コンソールで、AWS CloudShell コマンドプロンプトを開きます。AWS CloudShell の詳細については、「AWS CloudShell ユーザーガイド」の「[AWS CloudShell とは](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)」を参照してください。**

1. スケジュールされたクエリの IAM ロールを引き受けます。ロールを引き受けるには、スケジュールされたクエリに関連付けられた IAM ロールをクエリエディタ v2 で見つけて、AWS CLI コマンドを AWS CloudShell で使用します。例えば、ロール `scheduler` の場合は、AWS STS コマンドを入力して、スケジュールされたクエリで使用されているロールを引き受けます。

   ```
   aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/scheduler" --role-session-name "scheduler-test" 
   ```

   返される認証情報は次のようになります。

   ```
   "Credentials": {
   "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
   "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
   "SessionToken": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...",        
   "Expiration": "2023-08-18T18:19:44+00:00"
   },
   "AssumedRoleUser": {
   "AssumedRoleId": "AROA35B2NH6WBTP7ONL4E:scheduler-test",
   "Arn": "arn:aws:sts::123456789012:assumed-role/scheduler/scheduler-test"
   }
   }
   ```

1. IAM ロールを引き受けたときに表示される認証情報を使用して、AWS CLI で環境変数を作成します。これらのトークンは、有効期限が切れる前に使用する必要があります。例えば、AWS CloudShell に次の内容を入力します。

   ```
   export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
   export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   export AWS_SESSION_TOKEN=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...
   ```

1. 失敗したクエリのエラーを表示するには、ステートメントを記述する AWS CLI コマンドを実行します。SQL ステートメントの ID は、クエリエディタ v2 でスケジュールされたクエリの **[スケジュール履歴]** セクションに表示される [**ID**] からのものです。

   ```
   aws redshift-data describe-statement --id 130d2620-05d2-439c-b7cf-815d9767f513
   ```

   この例の場合、スケジュールされた SQL `select * from users limit 100` は、`users` テーブルが存在しないという SQL エラーになります。

   ```
   {
   "CreatedAt": "2023-08-18T17:39:15.563000+00:00",
   "Duration": -1,
   "Error": "ERROR: relation \"users\" does not exist",
   "HasResultSet": false,
   "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
   "QueryString": "select * from users limit 100\n—RequestID=a1b2c3d4-5678-90ab-cdef-EXAMPLE22222; TraceID=1-633c5642-4039308d03f3a0ba53dbdf6f",
   "RedshiftPid": 1073766651,
   "RedshiftQueryId": 0,
   "ResultRows": -1,
   "ResultSize": -1,
   "Status": "FAILED",
   "UpdatedAt": "2023-08-18T17:39:16.116000+00:00",
   "WorkgroupName": "default"
   }
   ```