当前位置: 首页 > 知识库问答 >
问题:

如何从AWS lambda触发AWS step函数

单修德
2023-03-14
StartExecutionRequest startExecutionRequest = new StartExecutionRequest();
startExecutionRequest.setStateMachineArn(stateMachineArn);
logger.info("stateMachineArn: "+stateMachineArn);
logger.info("stateMachineInputJson: "+stateMachineInputJson.toString());

AWSStepFunctionsAsync client = AWSStepFunctionsAsyncClientBuilder.defaultClient();
logger.info("startExecutionRequest: "+startExecutionRequest);
try {
    logger.info("startExecutionAsync now");
    client.startExecutionAsync(startExecutionRequest);
    logger.info("startExecutionAsync done");
    return new Response(200,"","stepFunctionTriggered");
} 
catch (Exception e) {
    logger.error("Exception while starting execution:"+ e);
    return  new Response(400,"","Error occured while executing Step Function");
}
START RequestId: 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56 Version: $LATEST
2019-04-02 18:17:56 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56 INFO  LaunchStepFunction:39 - stateMachineArn: arn:aws:states:xxxxx
2019-04-02 18:17:56 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56 INFO  LaunchStepFunction:40 - stateMachineInputJson: {}
2019-04-02 18:18:01 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56 INFO  LaunchStepFunction:43 - startExecutionRequest: {StateMachineArn: arn:aws:states:us-east-1:xxx:stateMachine:xxxx,}
2019-04-02 18:18:01 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56 INFO  LaunchStepFunction:45 - startExecutionAsync now
2019-04-02 18:18:01 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56 INFO  LaunchStepFunction:47 - startExecutionAsync done
END RequestId: 2c6ac51d-1262-4fbf-acdc-ce706d5fbe56

共有1个答案

慎志国
2023-03-14

我想通了。

需要使用clientConfig和正确的区域构建AWSStepFunctionsAsyncClient。对我们来说是US-EAST-1。奇怪的是,当我们不做的时候,没有例外,也没有任何事情发生。也就是说,而不是

AWSStepFunctionsAsync client = AWSStepFunctionsAsyncClientBuilder.defaultClient();

我们应该使用:

AWSStepFunctionsAsyncClientBuilder.standard()
            .withClientConfiguration(new ClientConfiguration())
            .withRegion(Regions.US_EAST_1)
            .build();
 类似资料:
  • 我是Azure Function应用程序中blob触发器的新手,需要一些帮助。我正在努力寻找有关如何重命名触发该函数的blob的资源。 我有一个函数应用程序,当一个新的blob被上传到容器时触发,文件被处理,我需要一种方法来将其“标记”为已处理,因此我想重命名blob。 这是我的职责: 我该如何重命名该文件?在这种情况下有可能吗?

  • 问题内容: 我有一个选择标签,如下所示: 并且我为此使用了jQueryUI控件(组合框),则从jQuery触发的事件“更改”不会触发doSomething()。 您知道如何从外部角度触发ng-change吗? 问题答案: 糟糕-这是很糟糕的做法-但您可以使用目标控制器中驻留的元素并从中获取。 例: Javascript: 现在,您的变量可以访问控制器上定义的所有方法。

  • 我有一个azure函数,由上传到特定容器的任何新blob(图像)触发。这些图像然后被存储在这个blob存储容器中。现在我改变了我的函数并重新部署它,我希望我的azure函数能够在所有这些(已经存储的)图像上重新运行。由于该功能是blob触发的,现在我只是手动重新上传存储容器中的相同图像,但随着图像数据的增加,这样做变得越来越不可行。 函数中的Blob触发器如下所示: 它的解决方案是什么? 谢谢你。

  • 我有一个要求,我必须从Jira触发硒测试。Selenium测试是用编写的。完整的工作流程应该是这样的: 使用任何第三方插件从Jira开始测试执行 该测试将使用jenkins build pipeline在aws中运行 测试完成后,应在Jira中更新结果 我读过关于Jira的X射线插件,但在那里构建必须由jenkins触发,我不需要,因为我希望测试执行由Jira触发。 有没有办法做到这一点? 任何帮

  • 我正在开发一个SDK,想要开发一个像Firebase消息传递服务这样的逻辑。例如,如果我在标记中添加了扩展的类(在本例中,是一个超类,而是一个子类),我的问题就出现了。 我的问题是firebasemessaging服务触发器如何在子类中起作用? 结果,我想做的是,当将要使用我开发的SDK的人将我的服务类添加到他们应用程序的文件夹中时,就像在中一样,在应用程序端触发subclass的一个函数。 事先

  • 这是我的模板名为admin的代码。html: 如前所述,我得到了10个函数,这些函数可以读取多个。csv报告并将数据上传到模型中,我使用URL部分触发它们。在我看来。py我将展示两个示例: