我如何设置Amazon S3通知以使用python中的aws-cdk在存储桶中发生某些事件时接收通知?

如何使用Python中的AWS-cdk在您的存储桶中发生某些事件时,如何设置Amazon S3通知以接收通知?当我使用下面的代码时,我可以设置订阅。但是,当文件上传到S3时,它不会向我发送电子邮件。当我在snS控制台中手动更新访问策略时,它可以工作,但是我不知道如何在cdk中实现它。我还附上了我要实现的snS访问策略,但我没有做到这一点。这是我的cdk代码段:

        #snS

        sf_topic = aws_sns.Topic(
            self,"MyTopic",display_name="My Topic"
        )

        email=aws_sns_subscriptions.EmailSubscription("example@email.com")
        sf_topic.add_subscription(subscription=email)

        notification = aws_s3_notifications.snsDestination(sf_topic)

        sf_bucket.add_event_notification(aws_s3.EventType.OBJECT_CREATED,notification)
{
 "Version": "2008-10-17","Id": "example-ID","Statement": [
  {
   "Sid": "s3-event-notifier","Effect": "Allow","Principal": {
     "Service": "s3.amazonaws.com"
   },"action": [
    "snS:Publish"
   ],"Resource": "<UPDATE-YOUR-snS-ARN-HERE>","Condition": {
      "ArnLike": {          
      "aws:SourceArn": "arn:aws:s3:*:*:<UPDATE-YOUR-BUCKET-NAME-HERE>"
    }
   }
  }
 ]
}
heshenzhi0622 回答:我如何设置Amazon S3通知以使用python中的aws-cdk在存储桶中发生某些事件时接收通知?

您应该创建一个iam.PolicyStatement并将其附加到您的SNS主题。

policyStatement = _iam.PolicyStatement(
    resources=[sf_topic.topic_arn],actions=[
        "sns:Publish"
    ],effect=_iam.Effect.ALLOW,conditions={"ArnLike": {"aws:SourceArn": sf_bucket.bucket_arn}}
)

sf_topic.add_to_resource_policy(policyStatement)
本文链接:https://www.f2er.com/3048806.html

大家都在问