Chcę użyć boto3 do skonfigurowania wiadra s3 do wywołania lambda AWS za każdym razem, gdy obiekt zostanie utworzony w tym segmencie. Tu jest mój kodu:Nie można dodać powiadomienia s3 dla lambda przy użyciu boto3
s3 = ..boto3 resource
bucket_notification = s3.BucketNotification(bucket_name)
lambda_arn = .. arn for lambda
response = bucket_notification.put(
NotificationConfiguration={'LambdaFunctionConfigurations': [
{
'LambdaFunctionArn': lambda_arn,
'Events': [
's3:ObjectCreated:*'
],
},
]})
pojawia się błąd:
botocore.exceptions.ClientError: An error occurred (InvalidArgument) when calling the PutBucketNotificationConfiguration operation: Unable to validate the following destination configurations
Dzięki. To zaoszczędziło mi wielu bólów głowy. Ponadto, jeśli używasz CloudFormation do wdrożenia funkcji lambda, możesz dodać wymagane uprawnienie bezpośrednio z szablonu: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission .html –
+1 za to. Przeszedł do tego samego problemu próbując dodać powiadomienie s3 dla kolejki SQS; zaczęło działać po dodaniu odpowiednich uprawnień/zasad na końcu SQS. – 3cheesewheel