在 AWS CDK (C#) 中使用常量 JSON 参数创建规则
Creating a rule with a constant JSON parameter in AWS CDK (C#)
我的 AWS 云部署脚本出现问题,我一直在尝试创建一个规则,每 15 分钟触发一次我的 lambda 并使用 json 对象调用它。如果我要从控制台执行此操作,我会这样做:
很长一段时间后,我想出了如何在代码中配置它:
var functionInput = new { Command = command };
var input = JsonConvert.SerializeObject(functionInput);
var target = new LambdaFunction(lambda, new LambdaFunctionProps
{
Event = RuleTargetInput.FromObject(input)
});
或者像这样:
var target = new LambdaFunction(lambda, new LambdaFunctionProps
{
Event = RuleTargetInput.FromText("{\"Command\" = \"" + command + "\"}")
});
但是aws上的常量不正确,我尝试了很多不同的方法,但结果总是这样:
这是不正确的 Json 并且无法解析回 class,所以我希望它变成这样:
{“命令”=“清理”}
var inputDict = new Dictionary<string, string>();
inputDict.Add("Command", "CleanUp");
myRule.AddTarget(new Amazon.CDK.AWS.Events.Targets.LambdaFunction(myFunction,
new Amazon.CDK.AWS.Events.Targets.LambdaFunctionProps
{
Event = RuleTargetInput.FromObject(inputDict)
}));
我来这里是为了寻找 Python 的等价物。终于想通了 - 希望有人觉得这有帮助
from aws_cdk import aws_events as events
from aws_cdk import aws_lambda as lambda_
event_input = {"some_key": "some_value"}
some_lambda = lambda_.Function(
# lambda construct
)
some_rule = events.Rule(
# rule construct
)
some_rule.add_target(
targets.LambdaFunction(
some_lambda,
event=events.RuleTargetInput.from_object(event_input)
)
)
我的 AWS 云部署脚本出现问题,我一直在尝试创建一个规则,每 15 分钟触发一次我的 lambda 并使用 json 对象调用它。如果我要从控制台执行此操作,我会这样做:
很长一段时间后,我想出了如何在代码中配置它:
var functionInput = new { Command = command };
var input = JsonConvert.SerializeObject(functionInput);
var target = new LambdaFunction(lambda, new LambdaFunctionProps
{
Event = RuleTargetInput.FromObject(input)
});
或者像这样:
var target = new LambdaFunction(lambda, new LambdaFunctionProps
{
Event = RuleTargetInput.FromText("{\"Command\" = \"" + command + "\"}")
});
但是aws上的常量不正确,我尝试了很多不同的方法,但结果总是这样:
这是不正确的 Json 并且无法解析回 class,所以我希望它变成这样: {“命令”=“清理”}
var inputDict = new Dictionary<string, string>();
inputDict.Add("Command", "CleanUp");
myRule.AddTarget(new Amazon.CDK.AWS.Events.Targets.LambdaFunction(myFunction,
new Amazon.CDK.AWS.Events.Targets.LambdaFunctionProps
{
Event = RuleTargetInput.FromObject(inputDict)
}));
我来这里是为了寻找 Python 的等价物。终于想通了 - 希望有人觉得这有帮助
from aws_cdk import aws_events as events
from aws_cdk import aws_lambda as lambda_
event_input = {"some_key": "some_value"}
some_lambda = lambda_.Function(
# lambda construct
)
some_rule = events.Rule(
# rule construct
)
some_rule.add_target(
targets.LambdaFunction(
some_lambda,
event=events.RuleTargetInput.from_object(event_input)
)
)