试图在lambda上的节点中导入awsssm-parameters时出现语法错误



我有一个问题与aws nodejs sdk与aws Lambda。从官方文档中,我试图用lambda获取awsssm-parameters。

医生:[https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-ssm/classes/getparameterscommand.html

这是Lambda代码

import { SSMClient, GetParametersCommand } from "@aws-sdk/client-ssm"
const config = { region: "eu-central-1"}

exports.handler = async (event, context) => {

const client = new SSMClient({ region: config.region});
const command = new GetParametersCommand({Names: ["/my-app/dev/db-url"]});
const response = await client.send(command);
console.log(response);
};

但是当运行aws lambda函数时,它通过错误向我显示如下:

"errorType": "Runtime.UserCodeSyntaxError",
"errorMessage": "SyntaxError: Cannot use import statement outside a module"

我是JS世界的新手。有人知道它为什么抱怨吗?

从这里使用ES5语法:

const { SSMClient, GetParametersCommand } = require("@aws-sdk/client-ssm");

Lambda目前只支持ES5,对于SDK版本3,您需要安装这里解释的模块。本地需要:

npm install @aws-sdk/client-ssm

对于SDK V2,这样做:

const AWS = require('aws-sdk');
const ssm = new AWS.SSM();
const val = await ssm.getParameter(
{Name: '/my-app/dev/db-url'}).promise();
console.out(val);

最新更新