aws 从 lambda 调用步骤函数

2024-04-20

所以我设置了一个步骤函数来调用将发送电子邮件的兰巴。

我已经手动测试了它并且它有效...现在我想最初使用新的 lambda 调用此步骤函数...我在网上找到了一些代码并且我已经玩过它...通过了测试并且不会引发任何错误......有谁知道我错过了什么,因为它不起作用?

我从教程中找到了代码https://www.youtube.com/watch?v=9MKL5Jr2zZ4&t=306s我认为直接复制它应该可以,因为她唯一的用途是调用步骤函数。

Thanks

'use strict';

const AWS = require('aws-sdk');
const stepFunctions = new AWS.StepFunctions();

//module.exports.hello = (event, context, callback) => {
exports.handler = function(event, context) {
    const response = {
        statusCode:200,
        body: JSON.stringify({
            message: 'Hello World!',
            input: event,
        }),
    };

//  callback(null, response);
};

module.exports.init = (event, context, callback) => {

    const params = {
        stateMachineArn: 'STATE-MACHINE-ARN',
        input: '',
        name: 'Execution lambda'
    }

    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 做的就是调用步骤函数executeSendEmailLambda

任何帮助将不胜感激,谢谢

UPDATE感谢 的帮助,我想我更接近了一点,但我们又回到了测试通过的第一个阶段,但 lambda 没有调用步骤 F

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 West (Oregon)'
});

console.log('Loading init');
module.exports.init = (event, context, callback) => {

    console.log('Loading params');

    const params = {
        stateMachineArn: 'STATE-MACHINE-ARN',
        // 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);
        }
    });
    };

};

日志显示以下内容

    
23:54:47
2017-12-07T23:54:47.448Z    016133fa-dbaa-11e7-8473-7147adf52922    Loading function

23:54:47
START RequestId: 016133fa-dbaa-11e7-8473-7147adf52922 Version: $LATEST

23:54:47
2017-12-07T23:54:47.767Z    016133fa-dbaa-11e7-8473-7147adf52922    Loading step functions

23:54:47
2017-12-07T23:54:47.905Z    016133fa-dbaa-11e7-8473-7147adf52922    Loading init

23:54:47
END RequestId: 016133fa-dbaa-11e7-8473-7147adf52922

23:54:47
REPORT RequestId: 016133fa-dbaa-11e7-8473-7147adf52922  Duration: 178.97 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 31 MB
No newer events found at the moment. Retry.

我稍微修改了您的代码并使用我的 Step Functions 之一对其进行了测试,该代码似乎对我有用:)

const AWS = require('aws-sdk');

const stepFunctions = new AWS.StepFunctions({
region: 'YOUR_REGION_NAME'
});

module.exports.init = (event, context, callback) => {
const params = {
    stateMachineArn: 'YOUR_STATE_MACHINE_ARN',
    // 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
};

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

aws 从 lambda 调用步骤函数 的相关文章

  • 通过排队预加载图像?

    我正在寻找一种预加载特定图像并将其添加到队列中的方法 这是我目前所处的位置 http shivimpanim org testsite imageloader html http shivimpanim org testsite image
  • Angular 模板调用函数可以返回 Promise

    Angular 的 q 文档 http docs angularjs org api ng 24q说 q 承诺被模板引擎以角度方式识别 这意味着在模板中 您可以将附加到范围的承诺视为结果值 Angular 的视图模板还允许您计算表达式 这意
  • Chart.JS 工具提示回调标签和标题 (v3.5)

    请注意 v2 有很多答案 这是 v3 的 我正在尝试设置工具提示label and title对于圆环图 Code Create the donut chart donut new Chart questions positivity do
  • 服务无法放置任务

    好吧 我不知道在哪里可以解决这个问题 我正在尝试启动一个堆栈 其中有一个在 ECS 中运行的基本应用程序 我将在下面展示云信息 但我不断得到 服务 sos ecs SosEcsService 1RVB1U5QXTY9S 无法放置任务 因为没
  • jQuery 函数在不应该运行的时候运行

    我有一个函数 仅当宽度小于特定值时才需要运行 我已经这样做了if window width lt n 但当宽度大于 n 时 该函数也会运行 The if if window width lt n 由于背景颜色发生变化 浅灰色 1000px
  • 打字稿地图迭代失败

    我正在使用下面的函数来比较两个地图 有趣的是 for 循环内的代码永远不会被执行 所以 console log key val 代码永远不会被执行 当然 我确保我正在比较的映射不为空并且大小相同 以强制执行 for 循环内的代码 我犯了一个
  • 将 PhotoSwipe 配置为不使用整个窗口?

    我目前正在尝试使用构建移动图片库照片滑动 http photoswipe com 我已经能够让它工作了 但有一个小问题 当我 单击照片缩略图 实际照片总是占据整个 视口 当您在移动设备上查看图库时 这是可以的 但是 如果您的视口是计算机屏幕
  • AWS Api Gateway:缺少身份验证令牌

    所以我有一个链接到 lambda 函数的 api 网关的自定义域名设置 如果我这样做的话我就可以正常工作https api domain com something https api domain com something行为符合预期
  • 公共存储桶的 S3 CORS 策略

    这似乎很容易 但我不知道我错过了什么 我有一个公共存储桶 其中包含从我的网站获取的 js 脚本 我注意到我没有发送Origin标头到 S3 这不是必需的 并且无需任何 CORS 配置即可正常工作 更重要的是 即使我手动将 Origin 标头
  • 为响应中的特定槽位提供槽位值并恢复对话

    我正在处理 lex 并希望在响应中给出槽值 只有当用户在前一个槽值中输入特定输入时才会询问该值 我正在尝试一些事情 但我不这样做 我做得对还是错 我在 lex 中有以下插槽 出发城市 到达城市 出发 单程或往返 归期 日期 出发日期 航班时
  • IE 抛出 JavaScript TypeError 但在 chrome 上不抛出

    描述在我们的 Magento 购物车上 当用户单击添加到购物篮在任何 Internet Explorer 浏览器的 产品详细信息 页面上单击按钮 浏览器中都会弹出一个包含以下错误消息的窗口 异常 类型错误 无法获取未定义或空引用的属性 ta
  • 如何让 ckeditor 停止删除空 div

    stackoverflow 上也有类似的问题 但这些问题的答案对我不起作用 所以请不要将其标记为重复 在我的 cms 中 我希望人们能够添加 SPA 单页应用程序 内容页面 此类应用程序通常只有一个具有某些属性的 div 并且使用 java
  • Javascript `new` 运算符和原型

    假设我们创建一个名为 Shape 的函数 并在其原型上添加属性 name 和方法 toString var Shape function Shape prototype name Shape Shape prototype toString
  • Firebase 如何更新多个子项?

    我有很多这样的孩子的父母 Parent childe1 data childe2 data childe3 data childe4 data childe5 data 我怎样才能更新孩子们的信息 childe1 childe2 child
  • 如何在闪亮的仪表板侧栏中手动展开子菜单

    我正在尝试手动展开闪亮仪表板侧边栏中的子菜单 这updateTabItems该功能仅适用于普通菜单 不适用于嵌套菜单 这是基本示例 修改自updateTabItems文档 来显示问题 如果我单击 切换选项卡 它会切换菜单 但不会展开具有子菜
  • 脚本内的角度范围

    我们可以使用脚本标记内范围中定义的角度变量 如下所示 HTML 代码 div div JS CODE function AngularCtrl scope scope user name John 我只是得到 scope 未定义 有人可以帮
  • 0x800a138f - JavaScript 运行时错误:无法获取未定义或 null 引用的属性“值”

    我编写了一段 JavaScript 代码来比较 2 个文本框中的 2 个日期 function CompareDates var fdate document getElementById txtFromDate var edate doc
  • AngularJs 位置路径更改,无需重置所有控制器

    我的问题的简短版本是 如何更改 URL 而不需要触发路由更改或不需要运行当前显示页面上的所有控制器 Details 我有一个模板 显示在
  • 如何获取firestore集合下的文档数量? [复制]

    这个问题在这里已经有答案了 我想获取 firestore 集合中的文档总数 我正在制作一个论坛应用程序 所以我想显示每个讨论中当前的评论量 有类似的东西db collection comments get lenght或类似的东西 随着si
  • 未捕获的类型错误:未定义不是 indexOf 上的函数

    我目前有此代码来检查特定 ID 的网站 URL GET 选项 但每当运行此代码时 我都会收到一个奇怪的错误 Uncaught TypeError Undefined is not a function 这是我的代码 如果我能得到关于这个问题

随机推荐

  • 生产构建中的错误:索引 html 生成失败 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 升级了角10项目到角12 但现在在运行生产构建时 出现错误 索引 HTML 生成失败 未定义 6 720366 缺少 n
  • Linux Slab 分配器和缓存性能

    来自指南理解Linux内核第三版 第 8 2 10 章 板坯着色 从第 2 章我们知道 同一个硬件缓存行映射许多不同的 RAM 块 在这个 在本章中 我们还看到相同大小的对象最终存储在缓存中的相同偏移量处 不同板内具有相同偏移量的对象将以相
  • 如何使用VSCode远程编辑网站文件?

    我需要能够为我的客户远程登录网络服务器并远程编辑代码 我主要用它来更改 CSS 但也开始使用 PHP 我尝试让远程编辑器工作 但它不会拾取我放置在 home 文件夹中的 remote 文件 这些说明并没有真正提供有关设置的详细信息 我该怎么
  • 当 Flexbox 处于活动状态时,哪些 CSS 规则会被忽略?

    如何配置 Flexbox 以获得良好的后备 假设我有这个 parent display flex flex flow row wrap width 320px border 1px solid black children text ali
  • 使用java从奇怪但有效的url获取域

    我需要从此网址获取主机 android app com google android googlequicksearchbox Pub id siteID java net URL and java net URI无法处理它 问题在于 an
  • 列出包含重复的数字的所有唯一排列的算法

    问题是 给定一个可能包含重复项的数字集合 返回所有唯一的排列 最简单的方法是使用集合 在 C 中 来保存排列 这需要O n log n 时间 有更好的解决方案吗 最简单的方法如下 对列表进行排序 O n lg n 排序后的列表是第一个排列
  • WCF:如何跟踪消息正文?

    我正在尝试诊断在相对简单的服务主机进程 Service exe 中自托管的 WCF 服务 我已这样配置 Service exe config
  • 在 Swift 中“夹住”两个值之间的数字的标准方法

    Given let a 4 2 let b 1 3 let c 6 4 我想知道将这些值限制在给定范围内的最简单 最快捷的方法 例如0 5 这样 a gt 4 2 b gt 0 c gt 5 我知道我可以执行以下操作 let clamped
  • 无法检查 int 是否为 null

    我正在尝试使用字典 每当我想检查字典中是否存在某个元素时 我都会这样做 int value results get aKeyThatMayOrMayNotBePresent if value null 但编译器说我无法比较int to a
  • 更新命令行输出,即进度

    我希望能够在命令行上用简单的 PHP 脚本显示进度表 而不是看到 Progress 0 Progress 1 etc 我只想更改号码 并替换以前的号码 就像 git clone 所做的那样Resolving deltas 100 8522
  • 在 Django admin 中使用模型显示表

    我正在尝试创建一个项目管理类型的应用程序 现在我有了如图所示的项目模型 当我保存它时 我可以获得用户名和时间 现在 在下面的同一页面中 我想显示用户可以添加 编辑的表格 就像这张图片中一样 How can i do that 我们要创建数据
  • 在 WP7 Silverlight 应用程序中导航时将复杂对象传递到页面

    我一直在使用NavigationService s Navigate导航到我的 WP7 Silverlight 应用程序中其他页面的方法 NavigationService Navigate new Uri Somepage xaml va
  • 我可以在 AngularJS 中使用一个 ng-app 到另一个 ng-app 中吗

    我有两个 ng app 喜欢 div somexpression div some more expression div div 有什么办法让它发挥作用吗 当我制作嵌套 ng app 时它不起作用 我知道我可以使用两个不同的控制器 但我不
  • 更改django的默认静态目录

    我在 Django 1 6 中遇到了一个问题 我想更改 django 中的默认静态文件目录 我不想让它进来project myapp static but in project static 我阅读了 django 的文档 添加了 STAT
  • PHP 中避免代码注入的最佳方法

    我的网站最近遭到了攻击 在我看来 这是一个无辜的代码 那里没有 SQL 调用 所以我不担心 SQL 注入 但显然 SQL 并不是唯一的注入方式 这个网站有一个解释和一些避免代码注入的例子 http www theserverpages co
  • 无法让 netTcpBinding 请求显示在 Fiddler 中

    我有一个具有两个端点的 WCF 服务 一种使用 basicHttpBinding 另一种使用 netTcpBinding 这是我的配置
  • Ecto 模型 - select 中的子查询

    我需要使用 Ecto 进行 SQL 查询 SELECT users select count 0 from money transactions where from id users id AND created at gt 2016 1
  • Google Maps API v3:单击 DOM 元素时关闭信息窗口

    我是第一次使用 Google 地图 所以我在 CSS Tricks 上查看了一个很好的教程 http css tricks com google maps slider http css tricks com google maps sli
  • 您的 APP_BUILD_SCRIPT 指向未知文件:./jni/Android.mk

    我正在尝试让 ndk gdb 工作 但遇到一些问题 我的项目结构是这样的 trunk indiana Here is the android manifest ubravo java mbravo here is the native co
  • aws 从 lambda 调用步骤函数

    所以我设置了一个步骤函数来调用将发送电子邮件的兰巴 我已经手动测试了它并且它有效 现在我想最初使用新的 lambda 调用此步骤函数 我在网上找到了一些代码并且我已经玩过它 通过了测试并且不会引发任何错误 有谁知道我错过了什么 因为它不起作