Я пытаюсь получить список файлов из S3 с определенным префиксом, используя AWS Lambda. Я связываю Lambda с boto3-1.9.244
(последняя версия). Когда я запускаю Lambda, я получаю SyntaxError
для назначения ресурса S3, хотя это может иметь какое-то отношение к сеансу Boto3.
Я использую Python 3.6
, а AWS Lambda использует boto3-1.9.221
и botocore-1.12.221
. Когда я запускаю код без комплектации последней версии boto3, он работает. Мое текущее решение состоит в том, чтобы просто связать boto3-1.9.221
с лямбда-кодом, а не с последней версией boto3.
import boto3
s3 = boto3.resource('s3')
Я ожидаю, что это создаст ресурс s3, но я получаю эту ошибку:
invalid syntax (_base.py, line 414): SyntaxError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 20, in lambda_handler
s3 = boto3.resource('s3')
File "/var/task/boto3/__init__.py", line 100, in resource
return _get_default_session().resource(*args, **kwargs)
File "/var/task/boto3/session.py", line 389, in resource
aws_session_token=aws_session_token, config=config)
File "/var/task/boto3/session.py", line 263, in client
aws_session_token=aws_session_token, config=config)
File "/var/task/botocore/session.py", line 839, in create_client
client_config=config, api_version=api_version)
File "/var/task/botocore/client.py", line 80, in create_client
cls = self._create_client_class(service_name, service_model)
File "/var/task/botocore/client.py", line 110, in _create_client_class
base_classes=bases)
File "/var/task/botocore/hooks.py", line 356, in emit
return self._emitter.emit(aliased_event_name, **kwargs)
File "/var/task/botocore/hooks.py", line 228, in emit
return self._emit(event_name, kwargs)
File "/var/task/botocore/hooks.py", line 211, in _emit
response = handler(**kwargs)
File "/var/task/boto3/utils.py", line 61, in _handler
module = import_module(module)
File "/var/task/boto3/utils.py", line 52, in import_module
__import__(name)
File "/var/task/boto3/s3/inject.py", line 15, in <module>
from boto3.s3.transfer import create_transfer_manager
File "/var/task/boto3/s3/transfer.py", line 127, in <module>
from s3transfer.exceptions import RetriesExceededError as \
File "/var/task/s3transfer/__init__.py", line 134, in <module>
import concurrent.futures
File "/var/task/concurrent/futures/__init__.py", line 8, in <module>
from concurrent.futures._base import (FIRST_COMPLETED,
File "/var/task/concurrent/futures/_base.py", line 414
raise exception_type, self._exception, self._traceback
^
SyntaxError: invalid syntax