如何从 Node.js Lambda 函数调用步骤函数?

2023-11-27

我正在尝试从 Node.js lambda 函数调用步骤函数。我尝试了该解决方案并更新了实现thread.

显示错误响应的解决方案,但更新后的代码显示成功响应。但更新后的代码没有调用step函数。

My Code:


console.log('Loading function');
const AWS = require('aws-sdk');
exports.handler = function(event, context) {
    console.log('Loading step functions');
    const stepFunctions = new AWS.StepFunctions({
    region: 'us-east-2'
});
console.log('Loading init');
module.exports.init = (event, context, callback) => {
console.log('Loading params');
const params = {
        stateMachineArn: 'ARN of My State Machine',
        // input: JSON.stringify({}), Optional if your statemachine requires an application/json input, make sure its stringified 
        name: 'TestExecution' // name can be anything you want, but it should change for every execution
    };

console.log('start step functions');
stepFunctions.startExecution(params, (err, data) => {
        if (err) {
            console.log(err);
            const response = {
                statusCode: 500,
                body: JSON.stringify({
                    message: 'There was an error'
                })
            };
            callback(null, response);
        } else {
            console.log(data);
            const response = {
                statusCode: 200,
                body: JSON.stringify({
                    message: 'Step function worked'
                })
            };
            callback(null, response);
            console.log(response);
        }
    });
    };
};

我已将上述代码添加到 Lambda 函数中并部署代码。之后我使用了 lambda 函数的 Test 选项。这是执行 Lambda 函数的正确方法吗?测试结果是成功的,但是当我检查状态机时,没有最近的执行。帮助我找到解决方案,我对步骤功能非常陌生。提前致谢。


以下是我所做的事情:

  • 创建了 lambda 并添加了步骤函数执行的权限lambda role
  • 创建了类型的step函数(只是一个hello world)standard。在创作时我选择了ALL Logs哪个去CloudWatch Log Group。甚至它们也被展示在step function控制台如下Logging tab.

下面是我调用步骤函数的代码:

var aws = require('aws-sdk')
exports.handler = (event, context, callback) => {
  var params = {
    stateMachineArn: 'arn:aws:states:us-east-1:1234567890:stateMachine:Helloworld',
    input: JSON.stringify({})
  };
  var stepfunctions = new aws.StepFunctions()
  stepfunctions.startExecution(params, (err, data) => {
    if (err) {
    console.log(err);
    const response = {
        statusCode: 500,
        body: JSON.stringify({
        message: 'There was an error'
        })
    };
    callback(null, response);
    } else {
    console.log(data);
    const response = {
        statusCode: 200,
        body: JSON.stringify({
        message: 'Step function worked'
        })
    };
    callback(null, response);
    }
});
}

Lambda 执行日志

enter image description here

Step 函数执行日志

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Node.js Lambda 函数调用步骤函数? 的相关文章

随机推荐

  • Aurelia 语义下拉菜单

    我正在尝试在 Aurelia 中使用组合框 以便我的用户可以输入下拉列表并搜索内容 我试图合并 Semantic 创建的下拉菜单 但是当我在元素上调用下拉菜单时 它不会运行代码 因此它仍然是一个正常的下拉菜单 就像这里的状态示例一样 htt
  • R 从面板中删除行,同时保持面板平衡

    有没有一种优雅的方法来平衡不平衡的面板数据集 我想从一个不平衡的面板 即 有些人丢失了一些数据 开始 最后得到一个平衡的面板 即 所有的人都没有丢失任何数据 下面是一些示例代码 正确的最终结果是保留对 Frank 和 Edward 的所有观
  • 如何从 Blazor 服务器端下载内存中文件

    有没有办法下载动态生成的文件在记忆中 in Blazor 服务器端不需要将其存储在文件系统上 解决方案是添加Web Api控制器到 Blazor 服务器端应用程序中 Add Controllers DownloadController cs
  • Android TabHost 上的徽章

    我想实现与 iPhone 中相同的功能 我在底部栏中实现了与 iPhone 中相同的自定义 Tabhost 我可以设置 正常 选定状态的两个图标 但我需要带有数量的动态图标 通知如图片所示 Thanks Android ViewBadger
  • 增强named_mutex和remove()命令

    我有一个可以由多个线程创建的类 但在一个函数中 代码需要受到保护 因此我决定使用 boost 进程间互斥体 每个类在其构造函数中创建或打开相同的互斥体 MyClass MyClass boost interprocess named mut
  • 对于布尔字段,其 getter/setter 的命名约定是什么?

    Eg boolean isCurrent false 你将它的 getter 和 setter 命名为什么 假设你有 boolean active 访问器方法是 public boolean isActive return this act
  • 依赖属性强制绑定问题

    我同时安装了 VS2008 和 VS2010 我看到一个非常奇怪的行为 在 VS2008 中 我有一个简单的 WPF 应用程序
  • 显示时未转换 Unicode

    我正在将应用程序本地化为西班牙语 并且使用 Unicode 在该语言的 Localized strings 文件中对字符进行编码 例如 我有以下条目 login saveSettings Guardar configuraci u00F3n
  • PHP 标头(位置:...):强制地址栏中的 URL 更改

    我目前正在开发一个移动网站 该网站使用 PHP 会话与数据库进行身份验证 我有一个登录页面 其中包含一个表单 可以转到服务器登录 php提交时 然后 php 文件创建一些会话数据 存储在 SESSION 中 并将用户重定向回索引页面 hea
  • 为什么 printf 在调用后不会刷新,除非格式字符串中有换行符?

    为什么printf除非格式字符串中有换行符 否则调用后不会刷新 这是 POSIX 行为吗 我怎么可能有printf每次都立即冲水 The stdout默认情况下 流是行缓冲的 因此只会在到达换行符 或被告知时 后显示缓冲区中的内容 您有几个
  • Flutter 如何将图像文件保存到图库中的新文件夹?

    我想在从相机获取文件后将图像保存在图库中 如何创建一个新目录并保存我们从相机获取的图像文件 Future getImageCamera async var imageFile await ImagePicker pickImage sour
  • 为什么 Clojure 对非法参数说“没有匹配方法”?

    Character isWhitespace 的正确用法包括 Character isWhitespace a gt false Character isWhitespace gt true 然而 我的第一次尝试是这样的 我发现这个错误令人
  • 为什么不能将 cout 与用户定义的 std::string 转换一起使用?

    这里我定义一个Date 并指定用户定义的转换 class Date private int day int month string dateStr public Date int day int month day day month m
  • 在 Typescript 中将一个对象映射到另一个对象

    我有一个角色对象 我想使用 PrimeNG 将其映射到 TreeNode 对象以将其显示在树中 角色对象是这样的 也如图所示 role id name description roles 树节点对象的结构如下 data label Docu
  • 有比 .NET Reflector 更好的东西吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我以前很喜欢 NET Re
  • 如何向 ActionBar 中的图标添加文本?

    是否可以定义与图标一起显示在 ActionBar 中的文本 这是文本还是只是图像 Use android showAsAction ifRoom withText 显示菜单标题和图标
  • 如何在 Yii 中的 Web 应用程序操作中调用控制台命令?

    我有一个控制台命令来执行消费者时间 并且我需要知道如何在 YII 中的 Web 应用程序操作中调用 执行 它 class MyCommand extends CConsoleCommand public function actionInd
  • 如何确定高斯滤波器的窗口大小

    高斯平滑是一种常见的图像处理函数 高斯滤波的介绍可以参考here 我们可以看到 一个参数 标准导数将决定高斯函数的形状 然而 当我们用高斯滤波进行卷积时 还需要同时确定另一个参数 高斯滤波器的窗口大小 例如 当我们使用fspecialMAT
  • 在装有 Centos 5 的 64 位机器上使用带有 32 位二进制文​​件的 gdb 和 gdbserver 会抱怨内存访问或数据格式错误

    我有两台相同的 64 位 Centos 5 机器 它们已联网 并共享其 home 安装 我在一台机器上编译了一个简单的 Hello World 程序 然后我弄清楚了如何在一台机器上使用 gdb 远程调试在另一台机器上运行的程序 当每个人都默
  • 如何从 Node.js Lambda 函数调用步骤函数?

    我正在尝试从 Node js lambda 函数调用步骤函数 我尝试了该解决方案并更新了实现thread 显示错误响应的解决方案 但更新后的代码显示成功响应 但更新后的代码没有调用step函数 My Code console log Loa