Example usage for com.amazonaws.services.cloudwatchevents.model PutRuleRequest PutRuleRequest

List of usage examples for com.amazonaws.services.cloudwatchevents.model PutRuleRequest PutRuleRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudwatchevents.model PutRuleRequest PutRuleRequest.

Prototype

PutRuleRequest

Source Link

Usage

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);/*w w  w  . j  a  va  2  s. com*/
    }

    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);/*from w w  w  .j  a  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) {/*from  w w  w. j a  v a 2  s . com*/

    // 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 . j  ava 2 s .com
    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) {//  w  ww.  j a v a  2s  .  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;
}