node.js - 无法通过 Lambda 测试 Stepfunction 执行
问题描述
我正在尝试测试Step Function
使用 AWS 模拟调用的 lambda 函数,但它给出了UnknownEndpoint: Inaccessible host: states.local-env.amazonaws.com
这是我的示例 lambda 函数:
const AWS = require("aws-sdk");
const stepFunctions = new AWS.StepFunctions({region: 'local-env'});
exports.handler = async (event, context, config) => {
const response = {
statusCode: 200,
body: event,
};
var params = {
stateMachineArn: process.env.StateMachineARN,
input: JSON.stringify(event.body),
name: 'Testing2'
};
stepFunctions.startExecution(params, function(err, data) {
if (err) console.log(err, err.stack);
});
return response;
};
还有我的测试文件:
const index = require('./index')
var AWS = require('aws-sdk-mock');
const AWS_SDK = require('aws-sdk');
AWS.mock('StepFunctions', 'startExecution', function (params, callback){
callback(null, "successfully started the execution");
});
const isTest = process.env.JEST_WORKER_ID;
const config = {
convertEmptyValues: true,
...(isTest && {endpoint: 'localhost:8000', sslEnabled: false,region:'local-env'})
};
describe('Test Step Function Invocation', function () {
it('verifies successful response', async () => {
process.env.StateMachineARN = 'arn:aws:states:us-east-1:12345678:stateMachine:Testing';
var event = {
"payload": "my_payload",
"data": "some-data",
"MVId": "00156"
};
const result = await index.handler(event,{},config);
expect(result.statusCode).toEqual(200);
expect(result.body).toBe(event);
});
});
AWS.restore('StepFunctions');
我一直在文档和其他资源中搜索此内容,但尚未找到任何解决方案。
解决方案
推荐阅读
- javascript - 无论级别如何,我都试图展平阵列。我在调试器中运行它。它运行良好,直到最后一个花括号
- javascript - 如何让组件中的 react-datepicker 工作
- function - squareOn的foldr - Haskell
- java - 在 PHP 中读取 zip 文件与在 java 中读取它是不同的
- javascript - 使用 Kotlin 创建 Google chrome 扩展
- javascript - HTML 中的命名空间是什么?
- encryption - 用户登录时如何重新添加“唯一”盐?
- sql - 查找时间间隔中缺失的日期 (SQL)
- javascript - Mikado 循环波谷数据
- javascript - 如何将其更改为数字并保留所有数字