AWS Ошибка разрешения S3 при копировании объектов между сегментами - PullRequest
0 голосов
/ 26 апреля 2020

Я написал AWS лямбда-функцию с использованием библиотеки BOTO3 для копирования объекта из одной папки в другую в сегменте S3. Локально logi c работает нормально, но после развертывания в lambda выдается ошибка разрешения.

Функции S3, которые я использую в своем коде:

  1. boto3.resource () - для получения объекта s3
  2. s3.Object () - получить файл, сохраненный в s3
  3. .get () ['Body']. read () - прочитать содержимое файла, сохраненного
  4. .copy (copy_source, destination_key) - скопировать данные из одной папки в другую в том же контейнере S3

IAM предоставил права доступа к lambda:

"s3: PutObject"

"s3: GetObject",

"s3: ListBucket"

Но все равно не повезло. Может кто-нибудь сказать, пожалуйста, какие еще разрешения мне нужно предоставить Lambda для доступа к S3 для моих целей? PS: попытался просмотреть список действий IAM, но не смог найти отсутствующее.

1 Ответ

3 голосов
/ 26 апреля 2020

Тайм-аут вашей лямбда-функции слишком мал для продолжительности вызовов S3, которые вы делаете.

Кроме того, обычно нет необходимости загружать объект S3, если все, что вам нужно, - это скопировать его из S3 в S3. Вы загружаете объект, и это добавляет вам проблем с таймаутом. Просто используйте клиентскую функцию copy_object .

...