#amazon-web-services #amazon-s3 #aws-lambda #amazon-cloudformation
Вопрос:
Я создал шаблон CloudFormation, в котором я развертываю функцию Lambda, которая будет извлекать код из корзины S3 из заархивированного файла. Ведро находится в регионе США-запад-2.
Моя проблема здесь заключается в том, что при развертывании шаблона не удается создать функцию Lambda, если пользователь развертывает ее в другом регионе, кроме us-west-2, в другой учетной записи, поскольку он не может найти корзину в вышеупомянутом регионе.
Кроме того, я не могу напрямую добавить код в шаблон, так как в коде есть некоторые файлы зависимостей.
Совместное использование фрагмента кода. Любое предложение высоко ценится. Спасибо
Resources:
DMARCFunction:
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket: lambda-code-bucket
S3Key: Lambda.zip
Runtime: python3.8
Role: !GetAtt LambdaRole.Arn
Handler: lambda_function.lambda_handler
Timeout: 15
TracingConfig:
Mode: Active
Ответ №1:
Это не проблема с облачными данными. Вот как работает лямбда. почтовый индекс и функция должны находиться в одном регионе. Вы должны скопировать свой почтовый индекс во все регионы и учетные записи, если хотите создать свою функцию.
Комментарии:
1. Спасибо за ваш ответ @Marcin. Как вы думаете, есть ли способ воспроизвести код во всех регионах, потому что, если я создам сегменты sS3 в разных регионах, они должны иметь разные имена, но я упомянул только 1 сегмент в своем коде. Есть ли возможный обходной путь? Спасибо
2. @ASingh Можно было бы использовать пользовательский ресурс, как описано здесь . Или назовите свои ведра с помощью
'lambda-zips-${AWS::Region}'
шаблона.3. @ASingh Как все прошло? Все еще неясно, что вы можете сделать?
4. @ASingh Без проблем. Рад, что все получилось:-)