如何使用SQS从s3桶中取出日志



我有一个s3桶不断保存json.gz格式的日志,我试图使用SQS将这些日志拉到GCP集群上的弹性代理主机上。

我对SQS的配置是默认的,我也使用FIFO类型。我使用的访问策略配置:

{
"Version": "2012-10-17",
"Id": "example-ID",
"Statement": [
{
"Sid": "example-statement-ID",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": [
"SQS:SendMessage"
],
"Resource": "SQS-queue-ARN",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:*:*:awsexamplebucket1"
},
"StringEquals": {
"aws:SourceAccount": "bucket-owner-account-id"
}
}
}
]
}

弹性代理使用sqs url作为引用从s3桶中提取这些日志。我不知道为什么sqs不工作。这是我第一次使用aws,所以我真的很困惑。

SQS无法从S3提取文件。您需要在S3存储桶上设置通知,以便在添加日志时将事件发布到SQS队列(因此可能需要S3:ObjectCreatednotifications)。

但是请注意,此通知不包括实际的文件内容。它只包含文件的详细信息,因此您将需要一些其他机制来实际读取文件并处理它,例如lambda函数。您可以在这里找到一个示例事件。

最新更新