小编Céd*_*ten的帖子

AWS Lambda的AWS SQS权限

我正在使用AWS SQS服务,而且我很难在SQS队列上定义权限.在我的设置中,我正在使用AWS Lambda服务,该服务在将对象推送到S3存储桶时触发.

但是为了简单地回答我的问题,这就是我想要实现的目标:

  1. 对象被推送到S3存储桶
  2. S3存储桶触发AWS Lambda
  3. Lambda做了一些计算,并将事件推送到我的SQS队列(需要定义权限)
  4. 应用程序从SQS读取

正如您可以从以前的用例中读到的那样,我希望我的AWS Lambda方法成为唯一可以将消息发送到SQS队列的应用程序.我试图设置一个主体和一个条件"sourceArn".但它们都不起作用..

在此输入图像描述

有人可以帮忙吗?

amazon-s3 amazon-sqs amazon-web-services aws-lambda

13
推荐指数
1
解决办法
7210
查看次数

Rapidjson C++ 在对象中释放数组

我正在使用Rapidjson C++ 库,您可以使用该库创建一个 JSON 对象。目前我有一些内存问题。

情况:

在我当前的设置中,我创建了一个新对象,并向其添加了值成员和数组成员。该对象通过引用传递给多个函数并在我的程序流中使用。

rapidjson::Value data;
data.SetObject();

while(...)
{
    // --------------------------
    // Add coordinates to object

    JSON::AllocatorType& allocator = data.GetAllocator();

    JSONValue region;
    region.SetArray();
    region.PushBack(rectangle.m_x1, allocator);
    region.PushBack(rectangle.m_y1, allocator);
    region.PushBack(rectangle.m_x2, allocator);
    region.PushBack(rectangle.m_y2, allocator);

    data.AddMember("regionCoordinates", region, allocator);

    // --------------------------
    // Add number of changes

    data.AddMember("numberOfChanges", numberOfChanges, allocator);

    ... call function and pass data
    ... call function2 and pass data

    if(data.MemberBegin() != data.MemberEnd())
    {
        data.EraseMember(data.MemberBegin(), data.MemberEnd());
    }
}
Run Code Online (Sandbox Code Playgroud)

我在循环中使用同一个对象,因此在我再次添加成员之前删除了对象的成员。为此,我正在使用 EraseMember 函数。但是我注意到这个函数没有释放数组成员的内存,因此会泄漏内存。

如何让rapidjson 释放包含所有成员的完整对象?

c++ memory arrays rapidjson

3
推荐指数
1
解决办法
3323
查看次数