【以下的问题经过翻译处理】 你好,
我目前有一个Lambda,当上传PDF文档到一个S3存储桶时会被触发。一旦被调用,Lambda会调用 start_document_text_detection 方法来提取文档文本。任务会被发布到一个SNS主题上,另一个Lambda会在完成时被触发以调用 get_document_text_detection 方法来检索结果并将其上传到该存储桶中。
如果我将文档上传到S3存储桶的根目录,一切都很好。但是我遇到的问题是,当我在S3存储桶中创建一个文件夹并将PDF上传到那里时,触发器会触发,但我会收到以下错误消息:
[ERROR] InvalidParameterException: An error occurred (InvalidParameterException) when calling the StartDocumentTextDetection operation: Request has invalid parameters
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 33, in lambda_handler
raise e
File "/var/task/lambda_function.py", line 26, in lambda_handler
'SNSTopicArn': os.environ['sns_arn']
File "/opt/python/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/opt/python/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
这是因为 SNSTopicARN 是 start_document_text_detection 调用的 NotificationChannel 参数之一。RoleARN 也有 FullSNSAccess 策略,JobTag 是文档名称。我已经检查了 Textract 的限制,一切都在范围内。我还尝试调整 S3 存储桶的 Events 属性中的前缀以匹配文件夹,但没有成功。
任何建议都将不胜感激。