Вы не можете указать путь к файлу там.Вы должны вставить код самой функции.Он ограничен 4096 байтами.Если ваш код больше, вам нужно сначала загрузить его на S3 и использовать S3Bucket
и S3Key
.
Пример:
mastertestingLambdaDataDigestor:
Properties:
Code:
ZipFile: >
def handler(event, context):
pass
FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
Handler: handler.kinesis_to_dynamodb
Role: SOMEROLE
Runtime: python3.6
Type: AWS::Lambda::Function
Другой вариант использует aws cloudformation package
.Он загрузит ZIP-файл для вас и преобразует ваш шаблон в правильный путь.Для этого вам нужно будет указать путь к zip-файлу прямо в Code
.Например:
Resources:
mastertestingLambdaDataDigestor:
Properties:
Code: /home/dariobenitez/Proyectos/dataflow/templates/lambda_template.zip
FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
Handler: handler.kinesis_to_dynamodb
Role: SOMEROLE
Runtime: python3.6
Type: AWS::Lambda::Function
Затем запустите:
aws cloudformation package --template-file my-template.yaml --s3-bucket my-bucket
Он должен вывести что-то вроде:
Resources:
mastertestingLambdaDataDigestor:
Properties:
Code:
S3Bucket: my-bucket
S3Key: fjklsdu903490f349034g
FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
Handler: handler.kinesis_to_dynamodb
Role: SOMEROLE
Runtime: python3.6
Type: AWS::Lambda::Function
Затем вы должны использовать этот шаблон для развертывания своего стека.