我正在使用AWS SQS服务,而且我很难在SQS队列上定义权限.在我的设置中,我正在使用AWS Lambda服务,该服务在将对象推送到S3存储桶时触发.
但是为了简单地回答我的问题,这就是我想要实现的目标:
正如您可以从以前的用例中读到的那样,我希望我的AWS Lambda方法成为唯一可以将消息发送到SQS队列的应用程序.我试图设置一个主体和一个条件"sourceArn".但它们都不起作用..
有人可以帮忙吗?
我正在使用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 释放包含所有成员的完整对象?