我正在使用Amazon Textract的StartDocumentAnalysis函数异步扫描文件。S3存储桶中的pdf文件。正如文档所说,我应该会收到一份关于工作状态的通知,发送到提供的SNS主题。
返回用于获取操作结果的作业标识符(JobId)。当文本分析完成后,亚马逊文本将完成状态发布到您在NotificationChannel
中指定的亚马逊简单通知服务(Amazon SNS)主题。
我用来开始分析的代码如下:
fun analyzeDocument(documentId: String) {
klogger.info { "Start Textract analysis on document '$documentId'" }
val request = StartDocumentAnalysisRequest()
.withFeatureTypes("TABLES", "FORMS")
.withDocumentLocation(DocumentLocation()
.withS3Object(S3Object()
.withName(documentId)
.withBucket(bucketName)
)
)
.withNotificationChannel(NotificationChannel()
.withSNSTopicArn(snsTopicArn)
.withRoleArn(snsRoleArn)
)
val jobId = textract.startDocumentAnalysis(request).jobId
klogger.info { "Analysis started for document '$documentId'. Job ID: '$jobId'" }
}
我在AWS控制台中创建了SNS。
snsTopicArn=arn:aws:sns:us-east-1:093475263507:textract结果。先进先出
snsRoleArn=arn:aws:iam::093475263507:role/snssccessfeedback
我可以从控制台手动向该SNS发布消息,但Textract的任何消息都不会进入SNS主题。我已经等了好几个小时了——我想现在我应该已经收到消息了。
我不确定snsRoleArn
是否正确。我只是随便用了一个AWS里已经有的。这可能是个问题吗?我应该使用哪个snsRoleArn
?如果不是这样,为什么我没有收到消息?
我可能在访问策略中遗漏了什么吗?
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:GetTopicAttributes",
"SNS:SetTopicAttributes",
"SNS:AddPermission",
"SNS:RemovePermission",
"SNS:DeleteTopic",
"SNS:Subscribe",
"SNS:ListSubscriptionsByTopic",
"SNS:Publish",
"SNS:Receive"
],
"Resource": "arn:aws:sns:us-east-1:093475263507:textract-result.fifo",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "093475263507"
}
}
}
]
}
面对同样的问题,从FIFO SNS到标准SNS为我工作。不确定是否是强制性的. ffo命名约定导致了这种行为。会更新,一旦我得到适当的支持从AWS。
从您的配置中,我可以看出您没有使用正确的命名约定来创建一个由Textract通知的SNS。对于TextExtract,SNS应该以AmazonExtract*开头。确保你总是用AmazonTextract为你的sns做准备。
为特定任务使用随机IAM角色不是最佳实践。对于这个用例,您应该使用一个附加了SNS策略的IAM角色。我会尝试使用这样的东西:
我们正在开发一个系统,我们需要向数千部手机发送推送通知。我们使用Amazon SNS进行了设置。我们将向每部手机发送单独的消息,因此我们直接发送到SNSendpointARN,而不是主题ARN。 我们目前正在想这个系统的性能。我在网上找不到任何关于可以向SNS发送多少消息的内容。例如,如果我需要向25000个SNSendpoint发送25000条消息,我可以以多快的速度发送它们?秒、分钟、小时?
我对amazon sns有奇怪的问题。我正在使用amazon aws的nodejs sdk向android设备发送推送通知。问题是当我将消息发送到亚马逊服务器时,它会返回一个MessageID,但消息没有传递。 这是亚马逊发布的代码: 如果我使用亚马逊控制台发布通知工作完美。此外,如果我从gcmMessage中删除JSON.stringify,它正在发送push通知,但没有gcm数据。
我的Android应用程序中有一个与亚马逊SNS服务相关的问题。我正在使用亚马逊SNS推送服务。请查看此链接http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html有关亚马逊SNS服务的更多详细信息,请参阅。 我像在Amazon samples http://docs . AWS . Amazon . com/SNS/latest/DG
我能够从EC2实例连接到VPC中的ElastiCache Redis实例。但我想知道是否有办法连接到Amazon EC2实例之外的ElastiCache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例。 当前在我的本地设置中尝试时: 我只在一段时间后才会暂停。
我正在尝试通过php向Android应用程序发送推送通知。我设置了亚马逊SNS帐户,并使用谷歌服务器密钥为GCM API创建了SNS平台。 使用 AWS 凭证,我编写了一个 cron,它从数据库读取通知消息,并使用 Amazon php api 发布到 sns 服务。我正在以 cron 获取 Amazon 终端节点,并在其上发布通知。 我收到的状态是通行证和通知请求。但设备上没有收到实际通知。 我
我已经在我的服务器上配置了postfix,只发送@gmail。com邮件至亚马逊SES: 此外,我在AmazonSES控制台中配置了使用AmazonSNS接收邮件的反弹和投诉。问题是,如果我向一个不存在的gmail地址发送邮件,我不会收到回音。 如果从邮件发送邮件。谷歌。com到地址dsadaerwer。拉拉乐队很烂。贾斯汀是一个-beaver@gmail.com我收到: 但是如果从PHP脚本发送