问题标签 [aws-sdk-cpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
662 浏览

c++ - 使用 AWS Lambda C++ 运行时通过 AWS Lambda 读取 S3 对象时发生内存泄漏

我正在使用 AWS Lambda C++ 运行时读取带有 AWS Lambda 的 S3 对象。我使用这个功能:

它工作正常。但是,如果我反复调用 Lambda, Max Memory Used会不断增长。泄漏似乎来自rdbuf(),但我不知道如何解决它。

更新:当filename_local/dev/null 时没有泄漏。

0 投票
1 回答
242 浏览

c++ - 从 C++ 中的流缓冲区初始化 Magick++

我似乎找不到从 C++ 中的 iostream stream_buffer 初始化 ImageMagick Magick++ 对象的正确语法/方法的示例。

我正在尝试使用来自 aws sdk getObject 的结果,它似乎返回一个流缓冲区以推送到 ImageMagick 以通过 lambda 按需创建缩略图。

我用来检索对象的 aws-sdk-cpp 中的相关代码示例:

任何帮助表示赞赏 - c++ 新手,所以我还不精通转换更高级的数据格式,例如流/blob/缓冲区。

0 投票
1 回答
297 浏览

aws-sdk-cpp - 如何使用 AWS C++ 开发工具包解析区域、存储桶和对象键的 S3 URI?

我有一个 S3 URI,我需要提取区域、存储桶和对象键,以便我可以使用Aws::S3::Model::PutObjectRequest上传对象

AWS C++ 开发工具包是否提供实用功能用于执行目的?我应该使用正则表达式吗?

我注意到 AWS Java SDK 提供了AmazonS3URI,但到目前为止我还没有在 C++ SDK 中找到任何类似的东西。

非常感谢。

0 投票
0 回答
1591 浏览

c++ - Minio:为什么我的 PUT 请求失败了,即使 GET 成功了?

我正在使用Minio来模拟 S3 并在本地测试我的代码。我的代码是使用AWS SDK for C++编写的。

我想做的(出于测试目的)是从 Minio 获取一个对象,存储它,然后使用 PUT 请求将相同的对象发送回 Minio。PUT 请求失败并出现错误Unable to connect to endpoint。但是,我可以使用 curl 将对象放入 Minio。

这就是我设置我的S3Client的方式(我添加了一些喜欢来解释我为什么这样做):

这就是我的 GET 和我的 PUT 请求的样子。GET 有效,PUT 无效:

正如我已经提到的,我可以使用 curl 将对象放入 Minio。你可以看看这个 Gist

旁注:我在 Docker 容器中使用 Minio

编辑:我相信这可能是我要放置的数据的问题。如果数据有例如Content-Type application/octet-stream我遇到错误,但在使用 txt 文件时我没有遇到此错误。我当前的代码看起来像这样,如果我想流式传输除 chers 之外的任何内容,我假设流式传输会中断。你确定吗?

0 投票
0 回答
65 浏览

c++ - 我可以在 AWA Lambda 中使用哪些版本的 C++ 标准库?

Aws Lambda 自 2018 年底开始支持 C++(官方公告)。我想知道哪些版本的 C++ 标准库可以使用 AWS Lambda。你能指点我一份官方的 AWS 文件吗?

为什么我要问这个:我最近从 C++ 11 切换到 C++ 17,现在遇到了问题。我怀疑它可能是 C++ 版本。

旁注:上面帖子中的示例使用的是 C++ 11。

0 投票
0 回答
491 浏览

c++ - 使用提供的运行时如何在本地调试 AWS Lambda?

我想在本地调试一个用 C++ 编写的 AWS Lambda 函数。理想情况下,我希望能够单步执行我的代码(就像您使用GDB或任何体面的 IDE 一样)。使用 AWS Lambda 执行此操作的方法通常包括AWS SAM

思路一,使用SAM调试:

不幸的是,SAM 不允许您调试提供的运行时,因为它“仅”支持 Node.js、Python 和 Go(比较文档)。

问题一:

有没有办法以某种方式将 GDB 附加到我编译的 lambda 函数?

思路二,使用 docker-lambda 运行:

您还可以使用lambci/docker-lambda启动您的函数。如果您想获得一些调试输出,您可以执行 strace docker run --rm -v my/build/dir:/var/task lambci/lambda:provided handler '{"some": "event"}'. 这有效,但并不是我正在寻找的调试质量。

问题2:

我可以以某种方式将 a 附加到正在运行的 lambda 函数docker-lambda吗?

想法3:远程

绝望地去追求任何你能得到的东西(这不是我想做的)。

问题 3:

如果在本地真的没有办法做到这一点,我应该如何在 AWS 上做到这一点?

0 投票
2 回答
2383 浏览

c++ - 使用 AWS C++ SDK 分段上传 S3

我正在尝试使用 AWS C++ SDK 中的分段上传功能将文件上传到 S3。我可以找到 JAVA、.NET、PHP、RUBY 和 Rest API 的示例,但没有找到有关如何在 C++ 中执行此操作的任何线索。您能否为我提供一个实现相同目标的方向。

0 投票
1 回答
501 浏览

c++ - 将文件上传到 S3 aws sdk cpp 时出错

所以我正在尝试使用 aws sdk cpp 将本地文件上传到 aws s3。这是我从此处的问题中获取的示例代码

我有很多与 dll 导入相关的类似错误,我使用 Nuget 包安装了 aws s3 sdk 和 aws sdk 核心,我目前在 Visual Studio 2019 上。

严重性代码 描述 项目文件行抑制状态错误 LNK2019 无法解析的外部符号“__declspec(dllimport) public: __thiscall Aws::S3::Model::PutObjectResult::~PutObjectResult(void)” (__imp_??1PutObjectResult@Model@S3@Aws @@QAE@XZ) 在函数“public: __thiscall Aws::Utils::Outcome >::~Outcome >(void)”中引用 (??1?$Outcome@VPutObjectResult@Model@S3@Aws@@V?$ AWSError@W4S3Errors@S3@Aws@@@Client@4@@Utils@Aws@@QAE@XZ) 上传 s3 C:\Users\linda.naoui\source\repos\Upload s3\Upload s3\S3.obj 1

严重性代码描述项目文件行抑制状态错误 LNK2019 未解析的外部符号“__declspec(dllimport) void __cdecl Aws::InitAPI(struct Aws::SDKOptions const &)”(__imp_?InitAPI@Aws@@YAXABUSDKOptions@1@@Z) 引用在函数 _main Upload s3 C:\Users\linda.naoui\source\repos\Upload s3\Upload s3\S3.obj 1

我不确定问题是否是因为链接窗口是空的

在此处输入图像描述

0 投票
0 回答
513 浏览

c++ - 如何在由 Python 中的 Lambda 函数调用的 C++ 实现的 AWS Lambda 层中使用 AWS 开发工具包 C++ XRay?

我的团队使用 C++ 在 Tensorflow 和 Keras 中使用计算机视觉 (OpenCV) 和 DNN 实现了一个管道。该管道是一个 AWS 层,由用 Python 实现的 AWS Lambda 函数使用,该层通过 Boost 库调用。

根据需要,它还创建了一个具有所有要求(OpenCV、Boost、Python 3.7、Serverless 等)的 docker 容器,以构建管道代码(使用 cmake)和部署。一切正常,管道和 lambda 函数已成功构建和部署。

现在,我的挑战是:为了提高管道的性能,我想测量这个管道的几个步骤的持续时间,我试图使用 aws-sdk-cpp-xray 来做到这一点。

在开始编码之前,我在用于构建和部署管道(作为层)和 Lambda 函数(以下是我在 Dockerfile 中添加的部分)的同一个 docker 容器中添加并构建了 aws-sdk-cpp:

然后,我将 aws-sdk-cpp-xray 的引用放在我的 c++ 项目(管道)的 CMakeList.txt 中,如下所示:

最后,我在管道项目中使用 aws-sdk-cpp-xray 编写了几个代码,但没有成功编码(由于缺少样本),甚至没有成功执行 Lambda 层(在测试 XRay 代码时)。

现在,当我执行使用此层(管道)的 Lambda 函数时,我收到以下错误:

Runtime.ImportModuleError: Unable to import module 'functions/myfunction': /opt/lib/lib.so: undefined symbol: _ZTVN3Aws35AmazonSerializableWebServiceRequestE

  • “myfunction”是 Python 中的 Lambda 函数。
  • “lib.so”是 c++ 中的层(管道)。

所以...看起来执行问题是由 Dockerfile 中安装的 aws-sdk-cpp 引起的。或者可能是由于 CMakeList.txt 管道项目文件中的条目引起的......甚至,缺少将一些 *.so、*.a 或.so文件添加到 Layer 包中。但是,由于缺乏文档/手册并且没有发现关于上述错误的信息,我正在寻求一些关于使用 C++ 使用 AWS XRay 的示例的帮助,甚至是实现此测量的替代方法。

Ps.:我已经在 GitHub AWS SDK home 中询问了示例。请至少,你能在那里投票吗?https://github.com/awsdocs/aws-doc-sdk-examples/issues/1012

谢谢!

0 投票
1 回答
248 浏览

aws-sdk-cpp - 有没有办法使用 AWS C++ 开发工具包获取基于角色的临时凭证?

DefaultAWSCredentialsProviderChain 中使用的 ProfileConfigFileAWSCredentialsProvider 只会忽略~/.aws/config和中的角色~/.aws/credentials。STSProfileCredentialsProvider 看起来好像是用于此目的,但 1)它未在 DefaultAWSCredentialsProviderChain 中使用,因此您必须明确使用它,以及 2)它仅读取config. #2 表示,例如,如果基于角色的配置文件指定了源配置文件,并且源配置文件的凭据在其中,credentials则 STSProfileCredentialsProvider 将无法找到源配置文件的凭据,然后将无法获取角色的临时凭据。