#amazon-web-services #amazon-s3
#amazon-веб-сервисы #amazon-s3
Вопрос:
Я пытаюсь скопировать объект из корзины в одном регионе AWS в отдельную корзину в другом регионе, и когда я выполняю функцию Lambda, я не вижу никаких ошибок. Как бы то ни было, объект не копируется.
Вот код, который я использую. Для лямбда-функции добавлен триггер SQS.
const s3 = new AWS.S3(); if(event.Records amp;amp; event.Records.length gt;0){ console.log("No.of Records found =",event.Records.length); event.Records.forEach(record =gt; { console.log("Record =",record); //const { body } = record; if(record amp;amp; record.Message){ console.log('Message =',record.Message); let messageJSON = JSON.parse(record.Message); if(messageJSON amp;amp; messageJSON.bucket amp;amp; messageJSON.key){ let params ={ ServerSideEncryption: 'AES256', CopySource : messageJSON.bucket '/' messageJSON.key, Bucket : rawBucketName, Key : rawDataKeyPrefix '/' messageJSON.key }; console.log('Copying the Object with Key [' params.Key ']'); s3.copyObject(params,function(error,data){ console.log('Error =',error); console.log('data =',data); if(error){ console.log('Unable to copy the S3 Objects to Raw Bucket. Error =',error); } if(data){ console.log('Successfully copied the Raw Objects into S3 Bucket =',rawBucketName); } }); } } else{ console.log('Invalid Data received. Nothing to Copy !!'); } console.log('End of the Function Reached !!'); }); }
И вот результат, который я вижу в журналах cloudwatch.
2021-12-07T01:12:49.348Z c25dd144-d129-4963-8494-0ed068badfe2 INFO Copying the Object with Key [raw/41e5cf0457a0a347c5000570de7bb152e9ee776d.nc] 2021-12-06T20:12:49.768-05:00 2021-12-07T01:12:49.711Z c25dd144-d129-4963-8494-0ed068badfe2 INFO End of the Function Reached !!
Из CLI я могу получить доступ к объекту без каких-либо проблем.
C:Userssk_acDownloadscmder λ aws s3 ls s3://aws-earth-mo-atmospheric-ukv-prd/41e5cf0457a0a347c5000570de7bb152e9ee776d.nc --no-sign-request --region eu-west-2 2021-12-04 22:19:05 10821279 41e5cf0457a0a347c5000570de7bb152e9ee776d.nc C:Userssk_acDownloadscmder λ aws s3 ls s3://aws-earth-mo-atmospheric-ukv-prd/41e5cf0457a0a347c5000570de7bb152e9ee776d.nc --no-sign-request 2021-12-04 22:19:05 10821279 41e5cf0457a0a347c5000570de7bb152e9ee776d.nc C:Userssk_acDownloadscmder λ aws s3 cp s3://aws-earth-mo-atmospheric-ukv-prd/41e5cf0457a0a347c5000570de7bb152e9ee776d.nc . download: s3://aws-earth-mo-atmospheric-ukv-prd/41e5cf0457a0a347c5000570de7bb152e9ee776d.nc to .41e5cf0457a0a347c5000570de7bb152e9ee776d.nc
Я попробовал GetObject() и по-прежнему не отображает никаких ошибок или данных. (Даже если я укажу регион при создании объекта s3)
Не знаю, что я делаю не так.
Комментарии:
1. Интересно, это одна из тех асинхронных/ожидающих ситуаций, когда функция завершается до выполнения задач?