Я понял это.Функция Lambda, вызывающая getSignedUrl (), не имела правильных разрешений роли IAM для доступа к рассматриваемому сегменту S3.В serverless.yml ...
iamRoleStatements:
- Effect: Allow
Action:
- s3:*
Resource: "arn:aws:s3:::foobar-bucket/*"
Я бы на самом деле не использовал здесь подстановочный знак, но вы получите картину.Тот факт, что getSignedUrl () все еще успешно и возвращает URL, даже если URL обречен на неудачу из-за пропущенных разрешений, чрезвычайно вводит в заблуждение.
Я надеюсь, что этот ответ поможет некоторым запутанным душам вбудущее.