TencentCloud / tencentcloud-sdk-nodejs

Tencent Cloud API 3.0 SDK for NodeJS
Apache License 2.0
368 stars 99 forks source link

在腾讯云serverless上,发送短信,报错没传SecretId #69

Open daqi opened 3 years ago

daqi commented 3 years ago

环境:Nodejs10.15 编码:Typescript component:https://github.com/serverless-components/tencent-koa tencentcloud-sdk-nodejs 和其他依赖打包上传到,再由函数调用发送短信 本地环境不报错,把tencentcloud-sdk-nodejs上传到函数里也不报错,放到层里就报错,其他npm包没有这种问题

async function smsPromise(params: any) {
    const Client = tencentcloud.sms.v20190711.Client;
    const client = new Client({
        credential: {
            /* 必填:腾讯云账户密钥对secretId,secretKey。
             * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
             * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
             * 以免泄露密钥对危及你的财产安全。
             * CAM密匙查询: https://console.cloud.tencent.com/cam/capi */
            secretId: config.tencent_sms_secretId,
            secretKey: config.tencent_sms_secretKey
        },
        /* 必填:地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 */
        region: 'ap-guangzhou',
        profile: { language: 'zh-CN' }
    });
    console.log({
        credential: {
            secretId: config.tencent_sms_secretId,
            secretKey: config.tencent_sms_secretKey
        },
        region: 'ap-guangzhou',
        profile: { language: 'zh-CN' }
    });  // 日志显示是正常的,有SecretId
    console.log(params);

    return new Promise((resolve, reject) => {
        client.SendSms(params, function(err, response) {
            // 请求异常返回,打印异常信息
            if (err) {
                reject(err);
                return;
            }
            // 请求正常返回,打印response对象
            resolve(response);
        });
    });
}
zqfan commented 3 years ago

有最近的requestid可以贴一下。 不过估计是因为环境变量没有设置正确,或者没有正确传递。

daqi commented 3 years ago

有最近的requestid可以贴一下。 不过估计是因为环境变量没有设置正确,或者没有正确传递。

9c213cd52735ebf96e17a11f1f877fb1

zqfan commented 3 years ago

9c213cd52735ebf96e17a11f1f877fb1

这个不是requestid,requestid是uuid4格式的,并且固定RequestId字段名。 如果搞不定,还是到控制台提工单咨询吧。

daqi commented 3 years ago

9c213cd52735ebf96e17a11f1f877fb1

这个不是requestid,requestid是uuid4格式的,并且固定RequestId字段名。 如果搞不定,还是到控制台提工单咨询吧。

这个requestId是云函数日志里显示的requestId 我业务逻辑已经跑通了,不需要帮我,我只是帮你们反馈一下

sunoj commented 3 years ago

应该是云函数环境的版本3.0.147的版本bug