AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

Amazon S3 이벤트 알림이 Lambda 함수를 호출하지 않는 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Simple Storage Service(Amazon S3) 이벤트 알림이 AWS Lambda 함수를 호출하도록 구성했습니다. 하지만 Amazon S3 이벤트가 발생할 때 함수가 호출되지 않습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

Amazon S3 이벤트 유형이 올바르게 구성되었는지 확인

S3 이벤트 알림을 구성할 때 Amazon S3에서 알림을 전송하도록 하는 각 이벤트 유형을 지정해야 합니다. 지정하지 않은 이벤트 유형이 Amazon S3 버킷에서 발생하면 Amazon S3에서 알림을 보내지 않습니다.

예를 들어, s3:ObjectCreated:Put 이벤트 유형의 Lambda를 호출하도록 이벤트 알림을 구성합니다. 대용량 파일을 업로드하는 경우 Amazon S3는 자동으로 멀티파트 업로드 프로세스를 사용하여 파일을 버킷에 업로드합니다. 이 업로드에 대해 Lambda 함수를 호출하려면 s3:ObjectCreated:CompleteMultipartUpload 이벤트 유형도 구성해야 합니다. 또는 s3:ObjectCreated:* 이벤트 유형을 사용하여 Amazon S3가 객체를 생성하는 데 사용하는 각 API에 대한 알림을 요청할 수 있습니다.

객체 키 이름 필터에 업로드한 파일 이름이 포함되어 있는지 확인

S3 이벤트 알림에서 객체 키 이름 필터링을 사용하는 경우 Amazon S3는 특정 접두사 또는 접미사가 있는 객체에 대해서만 알림을 게시합니다. 이벤트 알림에 지정된 접두사 또는 접미사 필터에 업로드된 객체 키 이름이 포함되어 있는지 확인하십시오.

참고: 필터에는 모든 문자를 나타내는 접두사나 접미사로 와일드카드 문자(*)를 사용할 수 없습니다.

객체 키 이름 필터링의 경우 접두사 또는 접미사의 특정 특수 문자를 URL로 인코딩(% 인코딩)해야 합니다. 예를 들어 접두사 값을 **test=abc/**로 정의하려면 URL로 인코딩된 test%3Dabc/ 값을 입력합니다.

객체 키 이름의 특정 문자 처리에 대한 자세한 내용은 객체 키 명명 지침을 참조하십시오.

Lambda 함수의 IAM 리소스 기반 정책에 Amazon S3가 함수를 호출하는 데 필요한 권한이 있는지 확인

Lambda 함수의 AWS Identity and Access Management(IAM) 리소스 기반 정책이 버킷에서 함수를 호출하도록 허용하는지 확인하십시오. 버킷이 함수를 호출할 수 없는 경우 필요한 정책을 추가하십시오.

정책 예시:

{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "lambda-allow-s3-my-function",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket"
        }
      }
    }
  ]
}

자세한 내용은 AWS Lambda에서 권한 관리를 참조하십시오.

참고: Amazon S3 콘솔을 사용하여 새 이벤트 알림을 추가하면 Amazon S3는 필요한 권한을 함수의 리소스 기반 정책에 자동으로 추가합니다. 하지만 put-bucket-notification-configuration AWS CLI 명령을 사용하여 이벤트 알림을 추가하면 함수의 정책이 자동으로 업데이트되지 않습니다.

Lambda 함수가 S3 이벤트 알림의 동시 호출을 처리하도록 구성되어 있는지 확인

S3 이벤트 알림의 동시 호출을 처리하도록 Lambda 함수를 구성해야 합니다. 호출 요청이 함수가 확장할 수 있는 속도보다 빨리 도착하거나 함수가 최대 동시성에 도달한 경우 Lambda는 요청을 조절합니다.

자세한 내용은 Lambda 함수를 비동기적으로 호출을 참조하십시오.

관련 정보

AWS Systems Manager Automation을 사용하여 Amazon S3 이벤트 알림이 Lambda 함수를 호출하지 않는 문제를 해결하려면 어떻게 해야 합니까?

Lambda를 사용하여 Amazon S3 이벤트 알림 처리

자습서: Amazon S3 트리거를 사용하여 Lambda 함수 호출

Amazon S3 이벤트 알림을 생성할 때 "다음 대상 구성을 검증할 수 없습니다"라는 오류가 발생하는 이유는 무엇입니까?

다른 AWS 계정에 있는 Lambda 함수를 호출하도록 Amazon S3 이벤트 알림을 설정하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 한 달 전
댓글 없음

관련 콘텐츠