List of usage examples for com.amazonaws.services.cloudwatchevents.model PutTargetsRequest PutTargetsRequest
PutTargetsRequest
From source file:aws.example.cloudwatch.PutTargets.java
License:Open Source License
public static void main(String[] args) { final String USAGE = "To run this example, supply:\n" + "* a rule name\n" + "* lambda function arn\n" + "* target id\n\n" + "Ex: PutTargets <rule-name> <lambda-function-arn> <target-id>\n"; if (args.length != 3) { System.out.println(USAGE); System.exit(1);/*w w w. ja va2 s . c o m*/ } String rule_name = args[0]; String function_arn = args[1]; String target_id = args[2]; final AmazonCloudWatchEvents cwe = AmazonCloudWatchEventsClientBuilder.defaultClient(); Target target = new Target().withArn(function_arn).withId(target_id); PutTargetsRequest request = new PutTargetsRequest().withTargets(target).withRule(rule_name); PutTargetsResult response = cwe.putTargets(request); System.out.printf("Successfully created CloudWatch events target for rule %s", rule_name); }
From source file:cloudwatch.src.main.java.aws.example.cloudwatch.PutTargets.java
License:Open Source License
public static void main(String[] args) { final String USAGE = "To run this example, supply a rule name, lambda function arn and target id\n" + "Ex: PutTargets <rule-name> <lambda-function-arn> <target-id>\n"; if (args.length != 3) { System.out.println(USAGE); System.exit(1);// w w w . j a v a 2s . c o m } String ruleName = args[0]; String lambdaFunctionArn = args[1]; String targetId = args[2]; final AmazonCloudWatchEvents cloudWatchEvents = AmazonCloudWatchEventsClientBuilder.defaultClient(); Target target = new Target().withArn(lambdaFunctionArn).withId(targetId); PutTargetsRequest request = new PutTargetsRequest().withTargets(target).withRule(ruleName); PutTargetsResult response = cloudWatchEvents.putTargets(request); System.out.printf("Successfully created CloudWatch events target for rule %s", ruleName); }
From source file:squash.deployment.lambdas.ScheduledCloudwatchEventCustomResourceLambda.java
License:Apache License
ImmutablePair<String, String> setUpPreMidnightRuleAndTargets(String ruleName, String applyBookingRulesTargetId, String applyBookingRulesLambdaArn, String apiGatewayBaseUrl, String databaseBackupTargetId, String databaseBackupLambdaArn, AmazonCloudWatchEvents amazonCloudWatchEventsClient, LambdaLogger logger) {//from w ww .jav a 2 s . c o m // Create pre-midnight rule with Cron expression logger.log("Creating pre-midnight rule"); PutRuleRequest putRuleRequest = new PutRuleRequest(); // Put just before midnight to allow rule-based bookings to be created // before anyone else has a chance to create bookings that might clash. // This is 9pm UTC - i.e. 10pm BST. putRuleRequest.setScheduleExpression("cron(0 21 * * ? *)"); putRuleRequest.setName(ruleName); putRuleRequest.setState(RuleState.ENABLED); putRuleRequest.setDescription( "This runs just before midnight every day to apply booking rules for the following day and to backup all bookings."); ImmutablePair<String, String> ruleArn = new ImmutablePair<>("UpdateBookingsServiceEventRuleArn", amazonCloudWatchEventsClient.putRule(putRuleRequest).getRuleArn()); // Create target with applyBookingRules and backupBookings lambdas, and // attach rule to it. logger.log("Attaching applyBookingRules lambda to the pre-midnight rule"); Target applyBookingRulesTarget = new Target(); applyBookingRulesTarget.setArn(applyBookingRulesLambdaArn); applyBookingRulesTarget.setInput("{\"apiGatewayBaseUrl\" : \"" + apiGatewayBaseUrl + "\"}"); applyBookingRulesTarget.setId(applyBookingRulesTargetId); Collection<Target> midnightTargets = new ArrayList<>(); midnightTargets.add(applyBookingRulesTarget); logger.log("Attaching database backup lambda to the pre-midnight rule"); Target databaseBackupTarget = new Target(); databaseBackupTarget.setArn(databaseBackupLambdaArn); databaseBackupTarget.setId(databaseBackupTargetId); midnightTargets.add(databaseBackupTarget); PutTargetsRequest putTargetsRequest = new PutTargetsRequest(); putTargetsRequest.setRule(ruleName); putTargetsRequest.setTargets(midnightTargets); amazonCloudWatchEventsClient.putTargets(putTargetsRequest); logger.log("Targets attached to the pre-midnight rule"); return ruleArn; }
From source file:squash.deployment.lambdas.ScheduledCloudwatchEventCustomResourceLambda.java
License:Apache License
ImmutablePair<String, String> setUpPostMidnightRuleAndTargets(String ruleName, String websiteRefreshTargetId, String updateBookingsLambdaArn, String apiGatewayBaseUrl, AmazonCloudWatchEvents amazonCloudWatchEventsClient, LambdaLogger logger) { // Create post-midnight rule with Cron expression logger.log("Creating post-midnight rule"); PutRuleRequest putRuleRequest = new PutRuleRequest(); // Put just after midnight to avoid any timing glitch i.e. somehow still // thinking it's the previous day when it runs. This is 10 minutes after // midnight UTC - i.e. 1.10AM BST. putRuleRequest.setScheduleExpression("cron(10 0 * * ? *)"); putRuleRequest.setName(ruleName);/* w ww.jav a 2 s. c o m*/ putRuleRequest.setState(RuleState.ENABLED); putRuleRequest.setDescription( "This runs just after midnight every day to refresh all the squash booking pages in S3"); ImmutablePair<String, String> ruleArn = new ImmutablePair<>("UpdateFrontendServiceEventRuleArn", amazonCloudWatchEventsClient.putRule(putRuleRequest).getRuleArn()); // Create target with updateBookings lambda, and attach rule to it. logger.log("Attaching updataBookings lambda to the post-midnight rule"); Target updateBookingsTarget = new Target(); updateBookingsTarget.setArn(updateBookingsLambdaArn); updateBookingsTarget.setInput("{\"apiGatewayBaseUrl\" : \"" + apiGatewayBaseUrl + "\"}"); updateBookingsTarget.setId(websiteRefreshTargetId); Collection<Target> midnightTargets = new ArrayList<>(); midnightTargets.add(updateBookingsTarget); PutTargetsRequest putMidnightTargetsRequest = new PutTargetsRequest(); putMidnightTargetsRequest.setRule(ruleName); putMidnightTargetsRequest.setTargets(midnightTargets); amazonCloudWatchEventsClient.putTargets(putMidnightTargetsRequest); return ruleArn; }
From source file:squash.deployment.lambdas.ScheduledCloudwatchEventCustomResourceLambda.java
License:Apache License
ImmutablePair<String, String> setUpPrewarmerRuleAndTargets(String ruleName, String prewarmerTargetId, String createOrDeleteBookingsLambdaArn, AmazonCloudWatchEvents amazonCloudWatchEventsClient, LambdaLogger logger) {/*from ww w. j a v a 2 s. co m*/ // Create prewarmer rule with Rate expression logger.log("Creating prewarmer rule"); PutRuleRequest putRuleRequest = new PutRuleRequest(); putRuleRequest.setScheduleExpression("rate(5 minutes)"); putRuleRequest.setName(ruleName); putRuleRequest.setState(RuleState.ENABLED); putRuleRequest.setDescription("This runs every 5 minutes to prewarm the squash bookings lambdas"); ImmutablePair<String, String> ruleArn = new ImmutablePair<>("PrewarmerEventRuleArn", amazonCloudWatchEventsClient.putRule(putRuleRequest).getRuleArn()); // Create target with bookings lambda, and attach rule to it logger.log("Attaching bookings lambda to the prewarmer rule"); Target prewarmerTarget = new Target(); prewarmerTarget.setArn(createOrDeleteBookingsLambdaArn); prewarmerTarget.setInput("{\"slot\" : \"-1\"}"); prewarmerTarget.setId(prewarmerTargetId); Collection<Target> prewarmerTargets = new ArrayList<>(); prewarmerTargets.add(prewarmerTarget); PutTargetsRequest putPrewarmerTargetsRequest = new PutTargetsRequest(); putPrewarmerTargetsRequest.setRule(ruleName); putPrewarmerTargetsRequest.setTargets(prewarmerTargets); amazonCloudWatchEventsClient.putTargets(putPrewarmerTargetsRequest); return ruleArn; }