List of usage examples for com.amazonaws.services.cloudwatchevents AmazonCloudWatchEvents putRule
PutRuleResult putRule(PutRuleRequest putRuleRequest);
Creates or updates the specified rule.
From source file:aws.example.cloudwatch.PutRule.java
License:Open Source License
public static void main(String[] args) { final String USAGE = "To run this example, supply a rule name and role arn\n" + "Ex: PutRule <rule-name> <role-arn>\n"; if (args.length != 2) { System.out.println(USAGE); System.exit(1);/*from w ww . j av a2s.c o m*/ } String rule_name = args[0]; String role_arn = args[1]; final AmazonCloudWatchEvents cwe = AmazonCloudWatchEventsClientBuilder.defaultClient(); PutRuleRequest request = new PutRuleRequest().withName(rule_name).withRoleArn(role_arn) .withScheduleExpression("rate(5 minutes)").withState(RuleState.ENABLED); PutRuleResult response = cwe.putRule(request); System.out.printf("Successfully created CloudWatch events rule %s with arn %s", rule_name, response.getRuleArn()); }
From source file:cloudwatch.src.main.java.aws.example.cloudwatch.PutRule.java
License:Open Source License
public static void main(String[] args) { final String USAGE = "To run this example, supply a rule name and role arn\n" + "Ex: PutRule <rule-name> <role-arn>\n"; if (args.length != 2) { System.out.println(USAGE); System.exit(1);/* w ww . ja v a2 s. c o m*/ } String ruleName = args[0]; String roleArn = args[1]; final AmazonCloudWatchEvents cloudWatchEvents = AmazonCloudWatchEventsClientBuilder.defaultClient(); PutRuleRequest request = new PutRuleRequest().withName(ruleName).withRoleArn(roleArn) .withScheduleExpression("rate(5 minutes)").withState(RuleState.ENABLED); PutRuleResult response = cloudWatchEvents.putRule(request); System.out.printf("Successfully created CloudWatch events rule %s with arn %s", ruleName, response.getRuleArn()); }
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) {// w w w . j a v a2 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);//from www . j a v 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 w ww. j ava 2 s . c o 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; }