最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

amazon web services - AWS one-time schduler usingf JAVA SDK error Error occurred: Parameter ScheduleExpression is not valid - St

programmeradmin2浏览0评论

I'm trying to create a one-time schedular in AWS event bridge using JAVA SDK. Below is the code

package com.example.kafkademo.service;


import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import .springframework.stereotype.Service;
import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
import software.amazon.awssdk.services.eventbridge.model.*;

@Service
@Slf4j
@RequiredArgsConstructor
public class AWSEventCreatorService {

private final EventBridgeClient eventBridgeClient;

public void createEvent() {

    String ruleName = "one-time-rule";
    String scheduleTime = "2025-01-18T11:00:00";

    String apiGatewayUrl = ";;
   String scheduleExpression =  "at(" + scheduleTime + ")'";
   log.info("scheduleExpression: {}", scheduleExpression);
    try {
        // Step 1: Create the rule
        PutRuleResponse ruleResponse = eventBridgeClient.putRule(
                PutRuleRequest.builder()
                        .name(ruleName)
                        .scheduleExpression(scheduleExpression)
                        .state(RuleState.ENABLED)
                        .build()
        );

        log.info("Rule ARN:{} ", ruleResponse.ruleArn());

        // Step 2: Add a target to the rule
        PutTargetsResponse targetsResponse = eventBridgeClient.putTargets(
                PutTargetsRequest.builder()
                        .rule(ruleName)
                        .targets(Target.builder()
                                .id("1")
                                .arn(apiGatewayUrl)
                                .build())
                        .build()
        );

        if (targetsResponse.failedEntryCount() > 0) {

            log.error("Failed to add targets: {} ", targetsResponse.failedEntries());
        } else {
            log.info("Target successfully added to the rule.");
        }

    } catch (EventBridgeException e) {
        log.error("Error occurred: {} ", e.awsErrorDetails().errorMessage());

    } finally {
        eventBridgeClient.close();
    }
}

}

Im getting the error Error occurred: Parameter ScheduleExpression is not valid.

I'm trying to create a one-time schedular in AWS event bridge using JAVA SDK. Below is the code

package com.example.kafkademo.service;


import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import .springframework.stereotype.Service;
import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
import software.amazon.awssdk.services.eventbridge.model.*;

@Service
@Slf4j
@RequiredArgsConstructor
public class AWSEventCreatorService {

private final EventBridgeClient eventBridgeClient;

public void createEvent() {

    String ruleName = "one-time-rule";
    String scheduleTime = "2025-01-18T11:00:00";

    String apiGatewayUrl = "https://apigateway.us-east-2.amazonaws/restapis/nbdl323one/resources/fvkez3y11b/methods/GET";
   String scheduleExpression =  "at(" + scheduleTime + ")'";
   log.info("scheduleExpression: {}", scheduleExpression);
    try {
        // Step 1: Create the rule
        PutRuleResponse ruleResponse = eventBridgeClient.putRule(
                PutRuleRequest.builder()
                        .name(ruleName)
                        .scheduleExpression(scheduleExpression)
                        .state(RuleState.ENABLED)
                        .build()
        );

        log.info("Rule ARN:{} ", ruleResponse.ruleArn());

        // Step 2: Add a target to the rule
        PutTargetsResponse targetsResponse = eventBridgeClient.putTargets(
                PutTargetsRequest.builder()
                        .rule(ruleName)
                        .targets(Target.builder()
                                .id("1")
                                .arn(apiGatewayUrl)
                                .build())
                        .build()
        );

        if (targetsResponse.failedEntryCount() > 0) {

            log.error("Failed to add targets: {} ", targetsResponse.failedEntries());
        } else {
            log.info("Target successfully added to the rule.");
        }

    } catch (EventBridgeException e) {
        log.error("Error occurred: {} ", e.awsErrorDetails().errorMessage());

    } finally {
        eventBridgeClient.close();
    }
}

}

Im getting the error Error occurred: Parameter ScheduleExpression is not valid.

Share Improve this question asked Jan 17 at 18:44 techmagistertechmagister 1,3581 gold badge9 silver badges19 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

It appears that you are trying to provide ScheduleExpression using at syntax, which is not supported for Scheduled Rules. https://docs.aws.amazon/eventbridge/latest/APIReference/API_PutRule.html#eventbridge-PutRule-request-ScheduleExpression

This is supported with EventBridge Schedules. https://docs.aws.amazon/scheduler/latest/APIReference/API_CreateSchedule.html#scheduler-CreateSchedule-request-ScheduleExpression

Schedules provide more functionality than scheduled rules and are not coupled to the event bus.

发布评论

评论列表(0)

  1. 暂无评论