in saga-orchestration/InvokeOrchestratorLambda/src/InvokeOrchestratorLambda/Function.cs [22:56]
public async Task<APIGatewayProxyResponse> FunctionHandler(OrderDetails orderDetails, ILambdaContext context)
{
var input = HttpStatusCode.Accepted;
var awsRegion = System.Environment.GetEnvironmentVariable("AWS_REGION");
var regionEndpoint = RegionEndpoint.GetBySystemName(awsRegion);
var amazonStepFunctionsConfig = new AmazonStepFunctionsConfig {RegionEndpoint = regionEndpoint};
using (var amazonStepFunctionsClient =
new AmazonStepFunctionsClient(amazonStepFunctionsConfig))
{
context.Logger.Log(orderDetails.ItemId);
var jsonInput = JsonSerializer.Serialize(orderDetails);
context.Logger.Log(jsonInput);
var functionArn = context.InvokedFunctionArn;
var splitArn = functionArn.Split(":");
var accountId = splitArn[4];
var startExecutionRequest = new StartExecutionRequest
{
Input = jsonInput,
StateMachineArn = "arn:aws:states:" + awsRegion + ":" + accountId + ":stateMachine:DistributedTransactionOrchestrator"
};
context.Logger.Log("before StartExecutionAsync");
var taskStartExecutionResponse =
await amazonStepFunctionsClient.StartExecutionAsync(startExecutionRequest);
input = taskStartExecutionResponse.HttpStatusCode;
context.Logger.Log(input.ToString());
}
var response = CreateResponse(input);
return response;
}