【问题标题】:elasticache read and write data from lambda using AWS-SDKelasticache 使用 AWS-SDK 从 lambda 读取和写入数据
【发布时间】:2021-11-25 22:02:43
【问题描述】:

我将 NodeJS 用于我的 lambda 函数。目前我正在使用 NPM 包进行 redis 连接并将数据读/写到 elasticache 中。但它给出了内部服务器错误。 在 aws-sdk NPM 包中也有一些与 elasticache 相关的方法,但我找不到任何方法来设置和从 elasticache 获取值。我该怎么办?

【问题讨论】:

  • AWS SDK 中的这些方法用于创建和管理 Elasticsearch 服务器。它们不适用于查询服务器内的数据。您应该专注于当前的解决方案,并查看 AWS Lambda 日志以了解实际错误是什么。
  • @MarkB 感谢您的快速回复。我会检查并找出错误。那么,我应该使用什么来查询数据? redis 的 NPM 包?它是否与 lambda 中的 elasticache 一起使用?
  • 是的,您很可能需要为 Redis 使用 npm 包。您必须将其正确打包到您的 Lambda 部署中。

标签: amazon-web-services aws-lambda redis aws-sdk


【解决方案1】:

您必须使用 npm 包为 redis 读取和写入 Elasticache, 这是获取和设置的示例代码,

const redis = require("redis");

const client = redis.createClient({
    host: 'YOUR REDIS HOST',
    port: 6379
});

export.handler = async () => {
    await storeValue('sampleKey', 'sampleValue');
    const value = await getValue('sampleKey');
    return value;
}

const getValue = key => {
    return new Promise((resolve, reject) => {
        client.get(key, (error, response) => {
            if (error)
                reject(error);
            else
                resolve(response);
        });
    });
}

const storeValue = (key, value) => {
    return new Promise((resolve, reject) => {
        client.set(key, value, (error, response) => {
            if (error)
                reject(error);
            else
                resolve(response);
        });
    });
}

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 2019-08-18
    • 2020-07-30
    • 2018-03-13
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多