AWS Lambda 和 EventBridge 问题 - 计划未按预期运行

问题描述 投票:0回答:1

我在使用 EventBridge 配置 AWS Lambda 时遇到问题。我设置了计划,但是当我创建计划时,它会在创建后立即执行,并且不遵循预期的计划。

这是我正在使用的代码:

import { CreateItemBody } from '../interfaces/bodyRequest';
import { eventBridgeParamsRequest } from '../interfaces/createEvent';

const eventBridgeClient = new EventBridgeClient({region: "us-east-2"});

export const configureItemSchedule = async (event: CreateItemBody): Promise<PutEventsCommandOutput> => {
  const date = new Date();
  const addThirtySeconds = date.setTime(date.getTime() + 30000)
  const eventParams: eventBridgeParamsRequest = {
    time: new Date(addThirtySeconds),
    source: "my.apisource",
    detailType: "create_event",
    eventBusName: "default",
    Detail: JSON.stringify(event)
  }
  console.log(eventParams);
  const createEvent = await createItemSchedule(eventParams);
  return createEvent;
};

const createItemSchedule = async (parameter: eventBridgeParamsRequest): Promise<PutEventsCommandOutput> => {
  const eventParams: PutEventsCommandInput = {
    Entries: [
      {
        Time: parameter.time,
        Source: parameter.source,
        EventBusName: parameter.eventBusName, 
        DetailType: parameter.detailType,
        Detail: parameter.Detail
      },
    ],
  };
  try {
    const command = new PutEventsCommand(eventParams)
    const response = await eventBridgeClient.send(command);
    return response;
  } catch (e) {
    throw new Error(e as string);
  }
};

可能出了什么问题?如何确保活动安排在正确的时间而不是立即执行?

如有任何帮助,我们将不胜感激!

我手动创建了 EventBridge,但遇到了这个问题

amazon-web-services aws-lambda aws-event-bridge
1个回答
0
投票

您的代码创建一个发送到 EventBridge 的事件,因此会立即触发您的规则,因为您的规则会对事件做出反应。您配置的

Time
参数只是有关事件发生时间的信息,它不会安排事件。

如果您想按计划触发规则,您可以使用 cron 或速率表达式创建按计划运行的规则

© www.soinside.com 2019 - 2024. All rights reserved.