List of usage examples for com.amazonaws.services.cloudwatchevents.model Target Target
Target
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);/*from w ww . j ava2s. 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);/*from w ww. java 2 s . c om*/ } 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 ww w . ja va 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);//from www . j a v a2 s . c om
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 a v a2 s . c om*/
// 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;
}