每次上传文件到S3存储桶后,我希望调用某个特定的HTTPS服务。
我已经创建了S3存储桶和一个验证过的订阅了HTTPS服务作为终端节点的SNS主题。 我可以通过AWS UI在SNS主题上发布消息,并且看到HTTPS服务被按预期调用。 在S3存储桶上,我创建了一个事件,它应该连接存储桶和主题。在第一次尝试时,由于存储桶没有写入主题的权限,所以根据文档,我更改了主题访问策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:eu-central-1:TOPIC_ID:OrderUpdates",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "ACCOUNT_ID"
},
"ArnLike": {
"AWS:SourceArn": "arn:aws:s3:*:*:*"
}
}
}
]
}
其中,TOPIC_ID是话题所有者ID,可以在AWS UI中查看,而ACCOUNT_ID则是在AWS UI的账户设置下显示的账户ID。对话题访问策略的更改使我能够在桶上创建事件:
当我调用API方法getBucketNotificationConfiguration时,会返回以下信息:
{
"TopicConfigurations": [
{
"Id": "OrderFulfilled",
"TopicArn": "arn:aws:sns:eu-central-1:TOPIC_ID:OrderUpdates",
"Events": [
"s3:ObjectCreated:*"
]
}
],
"QueueConfigurations": [],
"LambdaFunctionConfigurations": []
}
但是HTTPS服务没有被调用。在这个设置中,我缺少什么可以触发SNS主题订阅每次上传文件到S3存储桶时调用HTTPS服务的操作?
谢谢, -路易丝