amazon-web-services - Aws 将值从 Lambda 触发器传递到 Step Function
问题描述
使用 Lambda 函数触发 Step Function 时,如何获取触发它的函数的输出?
解决方案
好的,所以如果您想将输入传递给 Step Function 执行(或者,更准确地说,您的 'State Machine'的执行),您只需input
在调用时设置所述输入属性StartExecution
(请参阅AWS 文档:开始执行)
在您的情况下,这很可能是您的 lambda 在调用它的回调之前的最后一步。
如果它是一个 node js lambda,那就是它的样子
const AWS = require("aws-sdk");
const stepfunctions = new AWS.StepFunctions();
exports.myHandler = function(event, context, callback) {
... your function's code
const params = {
stateMachineArn: 'YOUR_STATE_MACHINE_ARN', /* required */
input: 'STRINGIFIED INPUT',
name: 'AN EXECUTION NAME (such as an uuid or whatever)'
};
stepfunctions.startExecution(params, function(err, data) {
if (err) callback(err); // an error occurred
else callback(null, "some success message"); // successful response
});
}
或者,如果您的有效负载太大,您可以将数据存储在 S3 或 DynamoDB 中,并将对它的引用作为状态机执行的输入传递给它。
推荐阅读
- android - Google Firebase Cloud Functions:Android 应用调用“siteverify”的后端实际上需要使用计费帐户
- list - 将整数列表显示为字符串
- firebase-authentication - Firebase 身份验证是否可用于 blazor?
- security - K8S - 使用 Prometheus 以安全的方式监控另一个 prometheus 实例
- python - Django rest framework show or hide API objects with checkbox in admin
- java - t0 如何替换数组或对象元素并删除未使用的重复元素
- php - OS X 10.15.1 Catalina 上的 PHP 7.1 和 Brew 上的 PHP 7.3 冲突
- typescript - 如何根据值过滤记录键?
- reactjs - 有没有办法检查用户在 React 中所做的任何状态更改?
- python - 如何正确包装使用 qt 和 shiboken2 的 c++ 库?