C# 从.Net调用AWS step函数
我在循环中从lambda函数调用step函数。然而,我得到了一个执行就绪存在的感觉。我做错了什么C# 从.Net调用AWS step函数,c#,.net,amazon-web-services,aws-lambda,aws-step-functions,C#,.net,Amazon Web Services,Aws Lambda,Aws Step Functions,我在循环中从lambda函数调用step函数。然而,我得到了一个执行就绪存在的感觉。我做错了什么 [Fact] public async void ActualSchedulingEngineStepFunctionCallTest() { var amazonStepFunctionsConfig = new AmazonStepFunctionsConfig { RegionEndpoint = RegionEndpoint.USWest2 }; us
[Fact]
public async void ActualSchedulingEngineStepFunctionCallTest()
{
var amazonStepFunctionsConfig = new AmazonStepFunctionsConfig { RegionEndpoint = RegionEndpoint.USWest2 };
using (var amazonStepFunctionsClient = new AmazonStepFunctionsClient(awsAccessKeyId, awsSecretAccessKey, amazonStepFunctionsConfig))
{
var input = new Input
{
ID = "24232323232323232",
Status = 1,
Type = "Interim"
};
var jsonData1 = JsonConvert.SerializeObject(input);
var startExecutionRequest = new StartExecutionRequest
{
Input = jsonData1,
Name = "SchedulingEngine",
StateMachineArn = "arn:aws:states:us-west-2:<SomeNumber>:stateMachine:SchedulingEngine"
};
var taskStartExecutionResponse = await amazonStepFunctionsClient.StartExecutionAsync(startExecutionRequest);
Assert.Equal(HttpStatusCode.OK, taskStartExecutionResponse.HttpStatusCode);
}
}
[事实]
公共异步void ActualSchedulingEngineStepFunctionCallTest()
{
var amazonStepFunctionsConfig=新amazonStepFunctionsConfig{RegionEndpoint=RegionEndpoint.USWest2};
使用(var amazonStepFunctionsClient=新amazonStepFunctionsClient(awsAccessKeyId、AWSSecretacessKey、amazonStepFunctionsConfig))
{
变量输入=新输入
{
ID=“2423232”,
状态=1,
Type=“临时”
};
var jsonData1=JsonConvert.SerializeObject(输入);
var startExecutionRequest=新的startExecutionRequest
{
输入=jsonData1,
Name=“SchedulingEngine”,
StateMachiner=“arn:aws:states:us-west-2::stateMachine:SchedulingEngine”
};
var taskStartExecutionResponse=等待amazonStepFunctionsClient.StartExecutionAsync(startExecutionRequest);
Assert.Equal(HttpStatusCode.OK,taskStartExecutionResponse.HttpStatusCode);
}
}
堆栈跟踪:
Amazon.StepFunctions.Model.ExecutionAlreadyExistsException : Execution Already Exists: 'arn:aws:states:us-west-2:<SomeNumber>:execution:SchedulingEngine:SchedulingEngine'
---- Amazon.Runtime.Internal.HttpErrorResponseException : Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
Amazon.StepFunctions.Model.ExecutionAlreadyExistsException:执行已存在:“arn:aws:states:us-west-2::执行:SchedulingEngine:SchedulingEngine”
----Amazon.Runtime.Internal.HttpErrorResponseException:引发了类型为“Amazon.Runtime.Internal.HttpErrorResponseException”的异常。
更改名称
Name=“SchedulingEngine”删除“Name”参数,如果您需要频繁执行状态机,则不需要该参数您已经有了名为“SchedulingEngine”的执行。这就是为什么会出现这个错误。您需要提供不同的名称或删除名为“SchedulingEngine”的现有执行,然后才能使用该名称创建新的执行。代码没有问题。请阅读我的其他评论,以了解问题和可能的解决方案。@chetan:谢谢您的意见。有时,当你大脑冻结时,与社区交谈会有帮助。