我在账户“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) 我有以下方法等待 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) 我正在尝试使用时刻来开始新的一天。我得到以下不同的结果:
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)
我确定解决方案很简单,但我只是遗漏了一些东西。
在EF 6.1中,您可以运行以下命令:
update-database -script
Run Code Online (Sandbox Code Playgroud)
这将为一个或多个迁移生成完整的SQL脚本.我们发现的问题是它没有为sql server生成所需的"GO"语句.如果在没有"-script"参数的情况下直接运行,则会导致SQL脚本失败.
有没有其他人遇到这个?
我是 ElasticSearch - NEST API 的新手。
我们正在尝试使用 AND/OR 子句准备多个条件。例如 - (条件 1 OR 条件 2) AND (条件 3)
目前我们正在尝试通过连接查询条件。
任何人都可以使用 NEST API 提供更好的示例吗?
我正在尝试使用实体框架迁移在 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
(...