J'essaye de déployer ma fonction lambda à chaque fois que je s3 seau contenant des mises à jour.Comment utiliser lamda pour déployer le dernier code mis en s3 à la fonction lamda
Si je sais que j'ai le le dernier code lambda zip dans un seau, je peux simplement utiliser la formation de nuages pour automatiser la création et le déploiement de la fonction lambda
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "AWS CloudFormation CloudWatch Log Janitor Demo Stack",
"Resources": {
"TestLamdaRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": [
"lambda.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}]
},
"Path": "/"
}
},
"EbsBackupExecutionPolicy": {
"DependsOn": [
"TestLamdaRole"
],
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyName": "hamedlamdapolicytest",
"Roles": [{
"Ref": "TestLamdaRole"
}],
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"logs:*"
],
"Resource": [
"arn:aws:lambda:us-east-1:1111111111111:function:*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": [
"*"
]
}
]
}
}
},
"LambdaFuction": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Code": {
"S3Bucket": "lambda-dep-test",
"S3Key": "index.zip"
},
"Role": {
"Fn::GetAtt": [
"TestLamdaRole",
"Arn"
]
},
"Timeout": 60,
"Handler": "lambda_function.handler",
"Runtime": "nodejs6.10",
"MemorySize": 128,
"FunctionName": "stg1-test"
}
}
}
}
Mais le problème est que dès que je lance le code lambda ci-dessus, chaque fois que l'utilisateur met sth dans le seau, le dernier code ne se déploie pas automatiquement. Je sais que ça a un rapport avec lambda mais je suis perdu et je ne sais pas quelle approche utiliser et par où commencer. Pouvez-vous s'il vous plaît éclaircir cela?
Il n'y a pas de moyen simple d'y parvenir. Créez un événement dans S3. Chaque fois qu'un nouveau fichier est ajouté, l'événement déclenchera une fonction Lambda différente qui mettra à jour la fonction d'origine (dans ce cas: stg1-test) –