小编jhi*_*den的帖子

AWS ElasticSearch 从账户“B”中的 lambda 写入账户“A”

我在账户“A”中有一个 AWS ElasticSearch 集群。

我正在尝试在帐户“B”中创建一个 lambda(从 DynamoDB 流触发),它将写入帐户“A”中的 ES。

我收到以下错误:

{
"Message":"User: arn:aws:sts::AccountB:assumed-role/lambdaRole1/sourceTableToES is not authorized to perform: es:ESHttpPost on resource: beta-na-lifeguard"
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试将 STS 和 ROLE 放入 ES 访问策略(在帐户“A”内),但没有成功。这是我的政策:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::AccountA:user/beta-elasticsearch-admin"
      },
      "Action": "es:*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::AccountA:user/beta-elasticsearch-readwrite",
          "arn:aws:iam::AccountA:role/beta-na-DynamoDBStreamLambdaElasticSearch",
          "arn:aws:sts::AccountB:assumed-role/lambdaRole1/sourceTableToES",
          "arn:aws:iam::AccountB:role/service-role/lambdaRole1"
        ]
      },
      "Action": [
        "es:ESHttpGet",
        "es:ESHttpPost",
        "es:ESHttpPut"
      ],
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

lambda amazon-web-services elasticsearch

4
推荐指数
2
解决办法
2027
查看次数

StackExchange.Redis - 等待锁的最佳方式

我有以下方法等待 Redis 键上的独占锁。这种方法有效,但我想知道是否有更好的方法,无需 for 循环和 Thread.Sleep。

    /// <summary>
    /// wait up to 2 seconds to achieve a lock!  
    /// The lock is good for a maximum of 3 seconds
    /// </summary>
    /// <param name="codeID"></param>
    internal void WaitForSingleUseLock(CodeID codeID)
    {
        var key = _redemptionRepo.SingleUseCodeLockPrefix + codeID.Value;
        var expiration = TimeSpan.FromSeconds(3);
        for (var i = 0; i < 20; i++)
        {
            var lockAchieved = _cacheRepo.LockTake(key, "1", expiration);
            if (lockAchieved)
            {
                break;
            }
            Thread.Sleep(TimeSpan.FromMilliseconds(100));
        }
    }
Run Code Online (Sandbox Code Playgroud)

redis stackexchange.redis

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

momentjs startOf 不适用于现有的日期对象

我正在尝试使用时刻来开始新的一天。我得到以下不同的结果:

moment().startOf('day'); //good
moment(new Date()).startOf('day'); //this does not work!
Run Code Online (Sandbox Code Playgroud)

小提琴:https : //jsfiddle.net/y1of77wx/

实际情况是我在一个将日期对象作为参数的函数中执行此操作:

function doWork(dt) {
   return moment(dt).startOf('day');
}
Run Code Online (Sandbox Code Playgroud)

我确定解决方案很简单,但我只是遗漏了一些东西。

momentjs

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

实体框架 - 如何使用"GO"语句创建sql脚本

在EF 6.1中,您可以运行以下命令:

update-database -script
Run Code Online (Sandbox Code Playgroud)

这将为一个或多个迁移生成完整的SQL脚本.我们发现的问题是它没有为sql server生成所需的"GO"语句.如果在没有"-script"参数的情况下直接运行,则会导致SQL脚本失败.

有没有其他人遇到这个?

sql-server entity-framework

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

ElasticSearch - NEST - 如何结合 AND 和 OR 语句

我是 ElasticSearch - NEST API 的新手。

我们正在尝试使用 AND/OR 子句准备多个条件。例如 - (条件 1 OR 条件 2) AND (条件 3)

目前我们正在尝试通过连接查询条件。

任何人都可以使用 NEST API 提供更好的示例吗?

elasticsearch nest

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

实体框架mysql - 创建函数时出错

我正在尝试使用实体框架迁移在 mySQL 数据库中创建一个函数。当我直接在 MySQL Workbench 中运行 SQL 时,它运行良好,但在 EF 迁移中运行时却失败了。

如何使用 EF 迁移创建函数?

     Sql(@"
DROP function IF EXISTS `f_JumperName`;

DELIMITER $$
CREATE FUNCTION `f_JumperName` 
(
    JumperID int
)
RETURNS varchar(500)
BEGIN
    DECLARE result VARCHAR(500);

    SELECT j.LastName + ', ' + j.FirstName
    INTO result
    FROM Jumper j
    WHERE j.JumperID = JumperID;

    RETURN x;
END$$

DELIMITER ;
");
Run Code Online (Sandbox Code Playgroud)

错误消息:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'DELIMITER $$ CREATE FUNCTION f_JumperName (...

mysql entity-framework ef-code-first

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