

 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 역할을 가정합니다. 역할을 가정하려면 쿼리 편집기 v2에서 예약된 쿼리와 연결된 IAM 역할을 찾아 AWS CloudShell의 AWS CLI 명령에서 사용합니다. 예를 들어 역할 `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"
   }
   ```