#amazon-web-services #amazon-s3 #amazon-cloudformation #aws-sam
Вопрос:
Я пытаюсь создать лямбда — функцию с кодом функции в корзине S3. Ниже приведен мой шаблон. Этот шаблон создает лямбду, но не упомянутую корзину S3. Я ищу помощи в создании корзины S3 с помощью этого шаблона.
Resources:
ProducerLambda:
Type: 'AWS::Serverless::Function'
Properties:
FunctionName: !Sub '${ApplicationId}-${env}-Producer-Lambda-${AWS::AccountId}-${AWS::Region}'
Handler: index.handler
Runtime: nodejs14.x
CodeUri:
Bucket: s3bucket
Key: s3bucketref.zip
Role: 'arn:aws:iam::${AWS::AccountId}:role/Producer-lambda-trigger-role'
VpcConfig:
SecurityGroupIds: !Ref SecurityGroup
SubnetIds: !Ref VPCSubnetId
Environment:
Variables:
Region: !Sub '${AWS::Region}'
Комментарии:
1. Есть ли в корзине zip-файл?
Ответ №1:
CodeUri
используется для указания пути к коду функции — это может быть URI Amazon S3, путь к локальной папке или FunctionCode
объекту.
Они не используются для создания корзин S3.
Если упакованная функция не существует s3bucket/s3bucketref.zip
, вам придется самостоятельно создать корзину и загрузить пакет.
Или, в качестве альтернативы, использование sam build
создаст для вас Лямбду sam deploy
, а затем автоматически создаст для вас корзину S3:
Для развертывания функций AWS Lambda с помощью AWS CloudFormation требуется корзина Amazon Simple Storage Service (Amazon S3) для пакета развертывания Lambda. Интерфейс командной строки AWS SAM создает и управляет этой корзиной Amazon S3 для вас.
Последним гораздо проще управлять.