C# 从.Net调用AWS 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

我在循环中从lambda函数调用step函数。然而,我得到了一个执行就绪存在的感觉。我做错了什么

[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:谢谢您的意见。有时,当你大脑冻结时,与社区交谈会有帮助。