Проблема с регионом AWS при развертывании шаблона cloudformation

#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 Без проблем. Рад, что все получилось:-)