小编Cor*_*iew的帖子

使用 AWS lambda 函数使用 SQS 消息

我有 2 个 FIFO SQS 队列,它们接收要索引到 elasticsearch 的 JSON 消息。一个队列不断地向数据库添加增量更改并将它们添加到队列中。第二个队列用于数据库重新索引,即整个 50Tb,如果数据每几个月索引一次(所有内容都添加到队列中)。我有一个 lambda 函数,它使用来自队列的消息并将它们放入适当的队列(活动索引或正在重建的索引)。

我应该如何触发 lambda 函数以最好地处理 SQS 中的消息积压,以便它尽快处理两个队列?

我的一个限制是队列项目需要按顺序处理。如果 lambda 函数可以在没有 5 分钟限制的情况下无限期运行,我可以继续运行一个不断处理消息的函数。

amazon-sqs amazon-web-services aws-lambda

5
推荐指数
1
解决办法
1457
查看次数

创建 AWS Lambda 函数时使用现有 IAM 角色

我正在使用 CloudFormation 创建 lambda 函数。大多数文档假设角色将在模板中创建。有没有办法指定已经通过控制台创建的角色?此问题解决了类似的问题,但对于 EC2 实例创建:将现有 IAM 角色与 CloudFormation 中的 EC2 实例关联

我正在寻找类似的东西:

 "LambdaFunction": {
            "Type": "AWS::Lambda::Function",
            "Properties": {
                "FunctionName": "My Function"
                "Runtime": "netcoreapp2.0",
                "Handler": "handler.location",
                "Role": "Existing_Role"
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation aws-lambda

5
推荐指数
1
解决办法
5132
查看次数

将 EC2 操作添加到运行状况检查时的 Cloudwatch 警报

我有一个 AWS bitnami 实例,当网站不可用时,我创建了 Route 53 运行状况检查警报。第一个操作成功触发并向我发送了一封电子邮件。但是,我还希望重新启动实例,尽管“添加 EC2”操作显示为灰色,并且显示为:“此操作仅适用于 EC2 每个实例指标”。我怎样才能添加这个?

在此输入图像描述

是否与此相关:我的 EC2 实例位于爱尔兰可用区,但是当我在 Route 53 中的运行状况检查上创建警报和 SNS 主题时,它会自动在弗吉尼亚北部可用区创建它们。而且我似乎无权改变它的去向。

amazon-web-services amazon-sns amazon-route53 cloudwatch-alarms

4
推荐指数
1
解决办法
1746
查看次数

重命名和删除Elasticsearch索引

我在NEST中使用C#.NET应用程序来创建索引.

我创建了一个弹性搜索索引,客户可以在其中查询名为index_1的索引.然后,我使用应用程序的不同实例构建另一个版本的索引,并将其命名为index_1_temp.

将index_1_temp重命名为index_1然后删除原始index_1的最安全的方法是什么?

我知道ES有别名,但我不知道如何使用它们来完成这项任务

编辑:原始索引没有与之关联的别名.

alias rename elasticsearch nest

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

更新SQL Server中表中的所有重复记录中的所有记录

我有一个SQL Server表,其中一列(object_id)中有重复的条目,例如:

+----+-----------+------------+
| id | object_id | status_val |
+----+-----------+------------+
|  1 |         1 |          0 | 
|  2 |         1 |          0 | 
|  3 |         1 |          0 | 
|  4 |         2 |          0 | 
|  5 |         3 |          0 | 
|  6 |         3 |          0 | 
+----+-----------+------------+
Run Code Online (Sandbox Code Playgroud)

我需要更新他们的所有状态,除了object_id列中有重复的状态.所以在上表中,object_id1和3是重复的.所以我想将它们更改status_val为2,除了其中一个条目.结果如下:

| id | object_id | status_val |
+----+-----------+------------+
|  1 |         1 |          0 | 
|  2 …
Run Code Online (Sandbox Code Playgroud)

sql-server

2
推荐指数
1
解决办法
1万
查看次数

使用list将XML反序列化为C#对象

我正在尝试将XML反序列化为具有许多相同类型元素的C#对象.为了清楚起见,我已经减少了内容.我的C#类看起来像这样:

[XmlInclude(typeof(RootElement))]
[XmlInclude(typeof(Entry))]
[Serializable, XmlRoot("Form")]
public class DeserializedClass
{
    public List<Entry> listEntry;
    public RootElement rootElement { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我定义Entry和RootElement类,如下所示:

public class RootElement 
{
    public string rootElementValue1 { get; set; }
    public string rootElementValue2 { get; set; }
}

public class Entry
{
    public string entryValue1 { get; set; }
    public string entryValue2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我试图反序列化的XML结构如下所示:

<Entry property="value">
  <entryValue1>Data 1</entryValue1>
  <entryValue2>Data 2</entryValue2>
  <RootElement>
    <rootElementValue1>Data 3</rootElementValue1>
    <rootElementValue2>Data 4</rootElementValue2>
  </RootElement>
  <RootElement>
    <rootElementValue1>Data 5</rootElementValue1>
    <rootElementValue2>Data 6</rootElementValue2>
  </RootElement>
</Entry>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我将要将多个RootElement元素反序列化到C#对象的List中.要反序列化我使用以下内容: …

c# xml xml-deserialization deserialization

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

使用 .NET 检查 AWS 中是否存在 SQS

我能够使用 AWSSDK.SQS 包中的 AmazonSQSClient 客户端成功地将消息发送到 .NET 中的队列。

如何检查特定队列是否存在,如果没有创建它?

.net amazon-sqs amazon-web-services

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

使用 ElasticLowLevelClient 客户端在 Elasticssearch 中批量索引

我正在使用 ElasticLowLevelClient 客户端来索引 elasticsearch 数据,因为它需要被索引为原始字符串,因为我无权访问 POCO 对象。我可以通过调用成功索引单个对象:

client.Index<object>(indexName, message.MessageType, message.Id, 
    new Elasticsearch.Net.PostData<object>(message.MessageJson));
Run Code Online (Sandbox Code Playgroud)

如何使用 ElasticLowLevelClient 客户端对索引进行批量插入?批量插入 API 都需要我没有的索引文档的 POCO,例如:

 ElasticsearchResponse<T> Bulk<T>(string index, PostData<object> body,
      Func<BulkRequestParameters, BulkRequestParameters> requestParameters = null)
Run Code Online (Sandbox Code Playgroud)

我可以为每个对象并行调用 API,但这似乎效率低下。

c# bulk elasticsearch nest

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