问题标签 [aws-sdk-net]

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 投票
1 回答
3228 浏览

c# - 使用 .net SDK 查询 DynamoDb 表的正确方法

我试图了解如何使用 DataModel 在 dynamo 中查询表。但是,我发现了两种似乎可行的方法,但我找不到正在发生的事情的解释或文档,或者它们之间是否有任何区别。

我发现的方法是使用FilterKeyExpression + FilterExpression. 有什么区别和正确的做法?

一些例子:

选项1:

-- 带索引和键

-- 带有索引、键和额外的过滤

-- 使用 GSI、密钥和分区

选项 2:

-- 带索引和键

-- 带有索引、键和额外的过滤

-- 使用 GSI、密钥和分区

0 投票
1 回答
1342 浏览

c# - Amazon S3 SDK 不允许我使用 GetObjectMetadata。它只允许我使用 GetObjectMetadataAsync

我将 Amazon S3 sdk 与 .Net 一起用于 Xamarin 项目,我需要先检查一个对象是否存在于存储桶中,然后再对其进行处理。我不能使用该Exists属性,Amazon.S3.IO.S3FileInfo因为由于某种原因我不能Amazon.S3.IO在我的代码中使用命名空间。(使用它会让我的生活变得更轻松),所以我使用以下代码(我从 S3FileInfo here的源代码中获得)

AWSS3Helper 的代码如下:

任何人都知道如何避免使用这个异步函数?它会阻止我返回一个布尔值,如果我必须返回一些我需要的东西,我需要在使用这个函数的地方使用 Await,这意味着我需要使每个使用它的函数成为异步函数,我真的很想避免复杂化随之而来的。

0 投票
1 回答
87 浏览

aws-sdk - AWS .NET SDK 何时加载凭证文件?它是在启动时还是在初始化客户端或......?

正如我的标题所述,我们正在使用 AWS .NET SDK 并在我们的 web.config 上配置了一个指向凭证文件的配置文件(请参阅:https ://docs.aws.amazon.com/sdk-for-net/v2 /developer-guide/net-dg-config-creds.html使用凭证文件)在磁盘上(所以在源代码之外)。这似乎工作正常,但我们每 x 个周期轮换这些键,因此我们需要更改文件中的键。我的问题是 de AWS .NET SDK 是否注意到文件已更改并自动加载新凭证,或者它何时实际加载?换句话说,如果我们更改此文件中的凭据,我们是否需要执行其他步骤才能让应用程序实际使用它们?

我现在尝试的是在本地启动应用程序,将凭据更改为错误的凭据,并且呼叫仍然可以顺利进行。接下来,我停止了我的应用程序并使用具有错误凭据的同一文件进行了重建。这样做之后,应用程序仍然能够进行正确的调用,所以我想知道它是如何工作的,就好像它依赖于确实有效的凭据一样。或者也许我只是没有测试正确。

我们正在使用 .net framework 4.6.2 应用程序,使用 aws sdk 3.3 版

另外我忘了提到的是,对于每个请求,我们都会像这样初始化客户端:

0 投票
1 回答
1160 浏览

c# - AmazonAWSHealthClient.DescribeEventsRequest:没有这样的主机是已知的

我想针对我的 AWS 账户上的健康事件提出请求。我使用此代码来执行请求:

但响应是“没有这样的主机是已知的”。我需要改变什么?我是否需要更改我的 AWS 账户上的某些设置?

0 投票
1 回答
406 浏览

amazon-web-services - AWS lambda 事件参数:Records 何时在其中保存多个项目?

我有这样的基础设施:S3-> SQS-> Lambda。当文件被拖放到 S3 时,它会将事件放入 SQS 队列,然后由 lambda 函数使用。

Lambda 是用 .net 核心编写的。在 lambda handlers 参数中,我SQSEvent在它的主体中收到一个和,它S3Event被序列化为 Json。

类结构大致如下。它们直接来自 AWS .net SDK。

我很好奇的部分是,两者SQSEvent都有S3Event记录列表。在我的实验中,我总是在这些列表中收到一个项目。是否知道在哪些情况下这些Records列表中的任何一个将包含多个项目?我没有找到说明这种行为的文件。

0 投票
1 回答
667 浏览

c# - 部署 .net core api AWS 无服务器应用程序后出现 403 Forbidden/500 Internal Server Error

  • 创建了一个 .net 核心 AWS 无服务器应用程序。
  • Cognito 用于进行身份验证。
  • 已配置用户和应用程序客户端。
  • 当我在本地运行解决方案时,它运行良好(记住它是 http)。
  • 当我使用发布向导发布并使用
    邮递员(https://myendpoint/Prod)点击新网址时,我立即得到:

    {“消息”:“禁止”}

我只能猜测这与这里的http / https有关。

身份验证控制器:

启动.ConfigureServices

编辑#1 看来我解决了禁止的味精,但现在出现 500 错误。

邮递员产生:500 内部服务器错误

使用 API Gateway 进行测试(Api Gateway->Resources-> /{proxy+}->Any->Test->Post)

方法:POST Proxy 设置为:/api/signin 请求正文:

产量:

0 投票
1 回答
819 浏览

c# - AWS S3 获取对象部分元数据

我正在尝试使用 .Net C# SDK 获取有关 S3 中上传对象的部件数量和部件大小的信息。下面的命令行开关返回 PartsCount 和 ContentLength(零件大小)。

在 SDK 中有一个检索对象元数据的方法 - GetObjectMetaDataAsync() 但它返回文件的元数据而不是特定部分,例如 PartsCount 属性始终为空。这似乎相当于:

我试图找到一个过载或一些允许我传递零件号的参数。目前好像不支持。但是 GetObjectMetadataResponse 具有 PartsCount 的属性,在我的情况下始终为 Null。

谁能建议一种方法来获取有关使用 AWS C# 开发工具包的特定对象的 NumberOfParts 和 PartSizes 的信息?

0 投票
1 回答
364 浏览

amazon-web-services - 使用 .NET 创建任务定义修订、更新 docker 标签和更新服务

作为使用 .NET AWS 开发工具包进行自动化部署的一部分,我正在尝试创建一个新的任务定义修订版,使用我新部署的版本更新 docker 映像标签标签,然后更新服务以使用该新修订版。

我有这样的事情:

我担心上面的代码不会复制现有的任务定义,例如在 AWS 控制台中,当您单击“创建新修订版”时,您必须选择一个任务定义,以便按钮创建一个副本,以便您可以修改它并保存新版本,所以我需要一些代码来获取现有任务定义,然后只需更改 docker 映像,然后RegisterTaskDefinitionAsync使用现有定义和修改后的 docker 映像调用?

0 投票
1 回答
554 浏览

c# - 如何在 AWS-SDK-NET 中正确使用 SES 的 SendBulkTemplatedEmailRequest?

我正在尝试通过适用于 .Net 的 AWS-SDK使用AmazonSimpleEmailService客户端来发送SendBulkTempatedEmailRequest。我已经实现了一个专门的处理程序来实际构建请求并进行SendBulkTemplatedEmailAsync调用。它没有按我的预期工作。我认为请求对象如何序列化并传递给 API 存在错误。

这是一些示例代码:

SourceArn的属性被故意省略。根据SES 文档,开发工具包将 Amazon SES API 的低级功能与高级数据类型和函数调用封装在一起,为您处理细节。当我查看用于发送批量电子邮件的 API 文档时,ARN 属性都列出为不需要的。当我查看一些CLI 示例时,它是相同的。当我查看SDK for .Net v3的文档时,它是模棱两可的(未标记为必需或可选)。TemplateArnReturnPathArn

因为 SDK 应该包装 API 的低级功能,所以我不认为 ARN 值是必需的(API 和 CLI 都不需要它们)。但是,当我尝试实际使用在代码片段中创建的请求对象时,我收到一条错误消息,提示InvalidTemplateData.

如果我将请求对象序列化为 JSON,然后从字符串中删除 3 个 ARN 字段,我可以使用 API 或 CLI 成功发送消息。

除了没有为 ARN 指定值之外,我还尝试过(对于所有 3 个 ARN 值):

specificArn = string.empty; specificArn = new {}; specificArn = "";

我还尝试过将对象与初始化属性分开显式更新:
var request = new SendBulkTemplatedEmailRequest();,然后单独填充属性。

如果我不初始化 ARN 值,则在调用 send 方法时会收到有关NoneTypeStringType的错误。我尝试的字符串初始化变化导致InvalidTemplateData错误。

请注意,我确实知道 Source 和 ReturnPath 的 ARN 值。我没有我们使用的模板的 ARN 值。假设使用 CLI,当您创建模板时,您应该收到包含模板 ARN 的响应。创建模板时,CLI 没有响应,但每次尝试时都会创建它。当describe-template您指定 SES 时,CLI 命令无效,如果我未指定工作区(无论您如何称呼 SES 空间)值,则会以错误响应。

有人对如何解决这个问题有建议吗?

0 投票
1 回答
160 浏览

.net - 尝试在 CICD 中部署 .NET 应用程序

我正在开发一个在 .net 框架上的应用程序,代码在 github 上,有人可以帮助我了解 buidspec.yml 文件以及我在 CICD 构建项目的项目环境中使用的任何额外文件:

当代码构建发生时,会出现如下错误: