各位大佬想求助个问题就是我想把我阿里云物联网上传的电话号以及其他信息通过云产品流转到函数计算

阿里云物联网上传的电话号以及其他信息通过云产品流转到函数计算通过函数计算调用阿里云的短信服务以后实现数据上传后自动发送短信的功能现在遇到一个问题就是这个event
老是格式不对,可能是数据格式有问题我现在不知道那一步环节出了错误,如果把参数换成具体的字符串就可以正常运行。请各位大佬解惑。
下面是运行代码

'use strict';

// 引入必要的阿里云短信服务相关依赖包
const Dysmsapi20170525 = require('@alicloud/dysmsapi20170525');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');

// 使用AK&SK初始化账号Client,用于访问短信服务
function createClient() {
let config = new OpenApi.Config({
accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // 从环境变量获取Access Key ID,需提前设置好环境变量
accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], // 从环境变量获取Access Key Secret,需提前设置好环境变量
});
config.endpoint = 'dysmsapi.aliyuncs.com';
return new Dysmsapi20170525.default(config);
}

// 函数计算的入口函数,即handler函数
exports.handler = async function (event, context) {
try {
const phoneNumbers = event.items.Num.value;
const dat = event.items.DA.value;

    // 初始化短信服务客户端
    let client = createClient();
    let sendSmsRequest = new Dysmsapi20170525.SendSmsRequest({
        signName: '快递柜kj',
        templateCode: 'SMS_475965370',
        phoneNumbers: phoneNumbers,
        templateParam: JSON.stringify({ code: "1234", pick_up_code: dat }),  // 此处也建议改为正确的JSON格式设置模板参数
    });
    let runtime = new Util.RuntimeOptions({});
    // 调用短信服务发送短信
    await client.sendSmsWithOptions(sendSmsRequest, runtime);

    return {
        statusCode: 200,
        body: '短信发送成功'
    };
} catch (error) {
    console.log(error);
    return {
        statusCode: 500,
        body: '短信发送失败,原因:' + error.message
    };
}

};

这是近期日志
(reading 'Num')
at exports.handler (/code/index.js:21:42)
2024-12-09 22:25:29FC Invoke End RequestId: 1866126260414860288, Error: Function timed out after 60 seconds (maxMemoryUsage: 15MB)
2024-12-09 22:25:29FC Invoke Start RequestId: 1866126260414860288
2024-12-09 22:25:29load code for handler:index.handler
2024-12-09 22:25:292024-12-09 22:25:29 1866126260414860288 [verbose] TypeError: Cannot read properties of undefined (reading 'Num')
at exports.handler (/code/index.js:21:42)
2024-12-09 22:26:06FC Invoke End RequestId: 1866126667916703744, Error: Function timed out after 60 seconds (maxMemoryUsage: 15MB)
2024-12-09 22:26:06FC Invoke Start RequestId: 1866126667916703744
2024-12-09 22:26:06load code for handler:index.handler
2024-12-09 22:26:062024-12-09 22:26:06 1866126667916703744 [verbose] TypeError: Cannot read properties of undefined (reading 'Num')
at exports.handler (/code/index.js:21:42)
2024-12-09 22:26:29FC Invoke End RequestId: 1866126260414860288, Error: Function timed out after 60 seconds (maxMemoryUsage: 15MB)
2024-12-09 22:27:06FC Invoke End RequestId: 1866126667916703744, Error: Function timed out after 60 seconds (maxMemoryUsage: 15MB)
2024-12-09 22:27:07FC Invoke Start RequestId: 1866126667916703744
2024-12-09 22:27:07load code for handler:index.handler
2024-12-09 22:27:072024-12-09 22:27:07 1866126667916703744 [verbose] TypeError: Cannot read properties of undefined (reading 'Num')
at exports.handler (/code/index.js:21:42)
2024-12-09 22:28:07FC Invoke End RequestId: 1866126667916703744, Error: Function timed out after 60 seconds (maxMemoryUsage: 15MB)
这是数据流转日志
image.png
解析器脚本如下
image.png

展开
收起
游客uljigsciggufu 2024-12-09 23:06:09 129 分享
分享
版权
举报
2 条回答
写回答
取消 提交回答
  • 您可以使用消息队列MQ作为中间件,将物联网平台的消息转发至函数计算,实现数据流转。具体操作可参考阿里云官方文档:消息队列MQ接入指南与函数计算触发器配置。如果遇到具体问题,建议咨询一下阿里云的工作人员。如果对您有帮助的话,可以帮忙采纳一下。谢谢。

    2025-02-10 13:11:40 发布于山西 举报
    赞同 65 评论

    评论

    全部评论 (0)

    登录后可评论
  • 从你提供的日志信息来看,你的函数计算(Function Compute, FC)服务遇到了两个主要问题:

    TypeError: Cannot read properties of undefined (reading 'Num')
    这个错误表明在尝试读取名为 Num 的属性时,该对象是 undefined。这通常意味着代码期望的对象没有被正确初始化或传递,导致它在尝试访问其属性时为 undefined。
    Function timed out after 60 seconds
    函数计算服务有一个默认的超时设置,如果函数在这个时间内没有完成执行,将会被强制终止。日志显示你的函数每次都在60秒后因超时而结束。
    也就是exports.handler这段函数获取的有问题,建议print打印输出看下

    2024-12-10 10:48:38 发布于北京 举报
    赞同 436 评论

    评论

    全部评论 (0)

    登录后可评论

物联网领域前沿技术分享与交流

热门讨论

热门文章

还有其他疑问?
咨询AI助理