【问题标题】:Lambda not deleting DynamoDB records when triggered with Cloud Watch events使用 Cloud Watch 事件触发时,Lambda 不会删除 DynamoDB 记录
【发布时间】:2021-05-13 20:52:14
【问题描述】:

我正在尝试使用 Cloud Watch 事件触发的 Lambda 删除我的 Dynamodb 表中的项目。此 lambda 扫描发电机表并删除所有过期项目。当我使用控制台中的测试事件对其进行测试时,我的代码似乎正在工作(即它删除了所有过期的项目)。但是,当使用 Cloud Watch 事件自动触发 lambda 时,它不会删除,尽管我看到 lambda 正在被触发。

exports.handler = async function () {

var params = {
    TableName: TABLE_NAME
}

try {
    const data = await docClient.scan(params).promise();
    const items = data.Items;

    if (items.length != 0) {

        Promise.all(items.map(async (item) => {
            const expirationDT = new Date(item.ExpiresAt);
            const now = new Date();

            if (now > expirationDT) {
                console.log("Deleting item with otc: " + item.Otc + " and name: " + item.SecretName);

                const deleteParams = {
                    TableName: TABLE_NAME,
                    Key: {
                        "Otc": item.Otc,
                        "SecretName": item.SecretName,
                    },
                };

                try {
                    await docClient.delete(deleteParams).promise();
                } catch (err) {
                    console.log("The Secret was not deleted due to: ", err.message);
                }
            }
        }))
    }

} catch (err) {
    console.log("The items were not able to be scanned due to : ", err.message)
}}

我知道使用 DynamoDB TTL 是一种选择,但我需要这些删除有点精确,而且 TTL 有时可能需要长达 48 小时,而且我知道我可以在检索记录时使用过滤器反击。只是想知道我的代码有什么问题。

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    您需要等待 Promise.all 否则您的 lambda 将在它解析之前结束执行

            await Promise.all(items.map(async (item) => {
                const expirationDT = new Date(item.ExpiresAt);
                const now = new Date();
                // ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 2017-12-01
      • 1970-01-01
      相关资源
      最近更新 更多