usar que pricing porque informatica expresiones cli aws amazon-web-services amazon-cloudformation aws-lambda

amazon-web-services - pricing - que es lambda en informatica



Fuente del evento programado de AWS Lambda a través de la información de la nube (5)

Ya tengo mi lambda / roles definidos en la información de la nube y me encantaría usarlos para agregar las fuentes de eventos programadas ... ¿hay algún documento o ejemplos?


A partir de esta semana (18 de abril de 2016) ahora es posible agregar una regla de evento CloudWatch programada que activará su función Lambda.

AWS :: Event :: Rule tiene un campo ScheduleExpression para la planificación de estilo cron y una matriz de Targets que puede aceptar una función Lambda ARN.


Desafortunadamente, CloudFormation no admite la configuración de orígenes de eventos programados para funciones lambda. Tendrá que implementar su lambda usando CloudFormation y luego configurar manualmente sus eventos programados.

CloudFormation admite un tipo de recurso AWS::Lambda::EventSourceMapping . Sin embargo, este recurso está limitado a la configuración de las transmisiones Kinesis o DynamoDB, por lo que es probable que esto no sea útil para usted.

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html

** Actualización: a partir de abril de 2016, ahora es compatible con CloudWatch Events - https://aws.amazon.com/about-aws/whats-new/2016/04/amazon-cloudwatch-events-now-supported-in -aws-cloudformation-templates /


Resolví el mismo problema.

"RoleForLambdaStopEC2Instances" : { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "Policies": [ { "PolicyName": "LambdaStopEC2InstancesPolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "ec2:StopInstances" ], "Resource": [ "arn:aws:logs:*:*:*", "arn:aws:ec2:*" ] } ] } } ], "Path": "/" } }, "LambdaStopEC2Instances": { "Type": "AWS::Lambda::Function", "Properties": { "Code": { "S3Bucket": "XXXXXXXXXXXXXXXXX", "S3Key": "XXXXXXXXXXXXXXXXXX" }, "Handler": "stopEC2Instances.handler", "Role": { "Fn::GetAtt" : ["RoleForLambdaStopEC2Instances", "Arn"] }, "Runtime": "nodejs4.3", "Timeout": "5" } }, "StopEC2InstancesRule": { "Type" : "AWS::Events::Rule", "Properties" : { "Name" : "StopEC2Instances", "ScheduleExpression" : "cron(0 13 ? * MON-FRI *)", "State": "ENABLED", "Targets": [{ "Arn": { "Fn::GetAtt": ["LambdaStopEC2Instances", "Arn"] }, "Id": "stopEC2Instances" }] } }, "LambdaInvokePermission": { "Type": "AWS::Lambda::Permission", "Properties": { "FunctionName" : { "Fn::GetAtt" : ["LambdaStopEC2Instances", "Arn"] }, "Action": "lambda:InvokeFunction", "Principal": "events.amazonaws.com", "SourceAccount": { "Ref" : "AWS::AccountId" }, "SourceArn": { "Fn::GetAtt": ["StopEC2InstancesRule","Arn"] } } }



Utilice Aws :: Event :: Rule con ScheduleExpression y AWS::Lambda::Permission

// rule to periodically call the lambda "TagWatcherRule": { "Type": "AWS::Events::Rule", "Properties": { "ScheduleExpression": "rate(10 minutes)", "Targets": [ { "Id": "TagWatcherScheduler", "Arn": { "Fn::GetAtt": [ "TagWatcherFunction", "Arn" ] } } ] } }, // role may call the lambda "InvokeLambdaPermission": { "Type": "AWS::Lambda::Permission", "Properties": { "FunctionName": { "Fn::GetAtt": [ "TagWatcherFunction", "Arn" ] }, "Action": "lambda:InvokeFunction", "Principal": "events.amazonaws.com", "SourceArn": { "Fn::GetAtt": [ "TagWatcherRule", "Arn" ] } } }