AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
다른 AWS 계정에 있는 Lambda 함수를 호출하도록 Amazon S3 이벤트 알림을 설정하려면 어떻게 해야 합니까?
Amazon Simple Storage Service(Amazon S3) 버킷이 다른 AWS 계정에서 AWS Lambda 함수를 호출하도록 하고 싶습니다.
해결 방법
다른 AWS 계정에서 Lambda 함수를 호출하도록 Amazon S3 버킷을 설정하려면 다음 단계를 완료하십시오.
중요: Lambda 함수는 S3 버킷과 동일한 AWS 리전에 있어야 합니다.
함수를 마이그레이션하는 방법에 대한 자세한 내용은 Lambda 콘솔을 사용하여 Lambda 함수를 다른 AWS 계정 또는 리전으로 마이그레이션하려면 어떻게 해야 합니까?를 참조하십시오.
Lambda 함수의 리소스 기반 권한 정책을 업데이트하여 Amazon S3에 호출 권한을 부여합니다.
AWS Management Console
Amazon S3에 호출 권한을 부여하도록 Lambda 함수의 리소스 기반 권한 정책을 업데이트하려면 다음 단계를 완료하십시오.
- Lambda 함수가 속해 있는 AWS 계정을 사용하여 Lambda 콘솔에서 함수 페이지를 엽니다.
- Amazon S3에서 호출하려는 Lambda 함수의 이름을 선택합니다.
- 구성 탭에서 권한을 선택합니다.
- 리소스 기반 정책 창에서 권한 추가를 선택합니다.
- 정책 설명 창에서 AWS 서비스를 선택합니다. 서비스 드롭다운 목록이 표시됩니다.
- 서비스 드롭다운 목록에서 S3를 선택하면 더 많은 필드를 볼 수 있습니다.
- 문 ID에 정책 내에서 생성한 문을 구분할 수 있는 고유한 문 ID를 입력합니다.
- 소스 계정에 S3 버킷을 호스팅하는 계정의 AWS 계정 ID를 입력합니다.
- 소스 ARN에 S3 버킷의 ARN을 입력합니다. 다음 형식을 사용하십시오.
참고: bucket_name을 S3 버킷의 이름으로 바꿉니다.arn:aws:s3:::bucket_name - 작업에는 드롭다운 목록에서 lambda:InvokeFunction을 선택합니다.
- 저장을 선택합니다.
자세한 내용은 Lambda의 리소스 기반 정책 사용을 참조하십시오.
AWS CLI
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
다음과 비슷한 add-permission API를 사용하여 Amazon S3에 호출 권한을 부여하도록 Lambda 함수의 리소스 기반 권한 정책을 업데이트합니다.
aws lambda add-permission \--function-name LambdaFunction_name \ --action lambda:InvokeFunction \ --principal s3.amazonaws.com \ --source-arn arn:aws:s3:::bucket_name \ --source-account account-id \ --statement-id "unique_statement_ID"
참고: LambdaFunction_name, bucket_name 및 unique_statement_ID를 변수로 바꿉니다.
Lambda 함수를 호출하는 Amazon S3 이벤트 알림을 생성합니다.
AWS Management Console
지침에 따라 Amazon S3 콘솔을 사용하여 이벤트 알림을 활성화하고 구성합니다.
AWS CLI
Lambda 함수를 호출하는 Amazon S3 이벤트 알림을 생성하려면 put-bucket-notification-configuration 명령을 사용합니다.
중요: put-bucket-notification 명령을 사용하기 전에 S3 버킷에 다른 이벤트 알림이 구성되어 있지 않은지 확인하십시오. put-bucket-notification-configuration 명령은 추가 대신 기존 알림 구성에서 교체 작업을 수행합니다.
버킷에 이미 이벤트 알림이 있는지 확인하려면 다음 명령어를 실행합니다.
aws s3api get-bucket-notification-configuration --bucket bucket_name
위 명령이 빈 JSON 객체를 반환하거나 응답이 없는 경우 기존 이벤트 알림 구성이 없는 것입니다. 다음과 같이 구성하여 notification.json이라는 새 파일을 생성하고 저장합니다.
{ "LambdaFunctionConfigurations": [ { "Id": "my-lambda-function-s3-event-configuration", "LambdaFunctionArn": "LambdaFunction_ARN", "Events": [ "s3:ObjectCreated:" ], "Filter": { "Key": { "FilterRules": [ { "Name": "prefix"|"suffix", "Value": "string" } ] } } } ] }
참고: LambdaFunction_ARN을 Lambda 함수 ARN으로 바꿉니다. 접두사와 접미사를 필터 규칙의 변수로 바꿉니다.
get-bucket-notification-configuration이 기존 이벤트 알림 구성 JSON을 반환하는 경우, 기존 JSON 구성을 notification.json이라는 파일로 저장합니다. 새 Lambda 알림 구성을 기존 LambdaFunctionConfigurations 키에 추가하거나 다음 예제에 표시된 JSON 구문을 사용하여 새 키를 생성합니다. notification.json 파일에 키를 추가합니다.
{ ... # Non Lambda event configurations like SNS, SQS etc. , "LambdaFunctionConfigurations": [ { "Id": "my-lambda-function-s3-event-configuration", "LambdaFunctionArn": "LambdaFunction_ARN", "Events": [ "s3:ObjectCreated:" ], "Filter": { "Key": { "FilterRules": [ { "Name": "prefix"|"suffix", "Value": "string" } ] } } }, {...}, #Other pre-existing Lambda Function configurations ] }
notification.json을 생성한 후 다음 명령을 실행하여 S3 이벤트 알림 구성을 업데이트합니다.
aws s3api put-bucket-notification-configuration \ --bucket bucket_name \ --notification-configuration file://notification.json
참고: bucket_name을 S3 버킷의 이름으로 바꿉니다.
Lambda 함수 테스트
Lambda 콘솔을 사용하여 Lambda 함수를 테스트하려면 더미 이벤트로 Lambda 함수 테스트를 참조하십시오. 이벤트 알림에서 함수를 호출하지 않는 경우 Amazon S3 이벤트 알림이 Lambda 함수를 호출하지 않는 이유는 무엇입니까?를 참조하십시오.
관련 정보
Lambda 함수가 내 Amazon S3 버킷에 액세스하도록 허용하려면 어떻게 해야 합니까?
Amazon S3 이벤트 알림을 생성할 때 “다음 대상 구성을 검증할 수 없습니다.” 라는 오류가 발생하는 이유는 무엇입니까?
관련 콘텐츠
- 질문됨 일 년 전
- 질문됨 10달 전

