S3选择boto3 - internalerror

时间:2018-04-06 06:15:08

标签: amazon-web-services amazon-s3 boto boto3 amazon-s3-select

有没有人" S3 Select" (https://aws.amazon.com/blogs/aws/s3-glacier-select/,    https://aws.amazon.com/about-aws/whats-new/2018/04/amazon-s3-select-is-now-generally-available/)与boto3(甚至是cli或其他sdk)一起工作?我在下面得到神秘的内部错误:

在具有IAM角色的EC2上运行:

[ec2-user@ip-blah bin]$ ./python
Python 2.7.13 (default, Jan 31 2018, 00:17:36)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> s3 = boto3.client('s3')
>>> r = s3.select_object_content(
...         Bucket='mybucketname',
...         Key='mypath/file.txt',
...         ExpressionType='SQL',
...         Expression="select count(*) from s3object s",
...         InputSerialization = {'CSV': {"FileHeaderInfo": "Use"}},
...         OutputSerialization = {'CSV': {}},
... )
Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
  File "/home/ec2-user/venv/local/lib/python2.7/site-packages/botocore/client.py", line 314, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/home/ec2-user/venv/local/lib/python2.7/site-packages/botocore/client.py", line 612, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InternalError) when calling the SelectObjectContent operation (reached max retries: 4): We encountered an internal error. Please try again.

1 个答案:

答案 0 :(得分:0)

我的猜测:

  • 检查s3上的权限
  • 适应&#39; RecordDelimiter&#39; FieldDelimiter&#39;,&#39; QuoteCharacter&#39;如果在InputSerialization
  • 上是必要的
  • 检查csv文件上的结构(标题数与数据列匹配,转换规范字符,空格,/ n为新行def。,)

  • 尝试 ... Expression =&#34; SELECT * FROM S3Object s&#34;,InputSerialization = {&#39; CSV&#39;:{}},OutputSerialization = {&#39; CSV&#39;:{}},...

希望有所帮助!