Мы используем Simple workflow Services (SWF) для оркестровки микросервисов на платформе AWS. Для этого мы используем две технологии: Lambda y AWS Fargate.
Я пытаюсь выполнить лямбда-функцию из SWF на языке c#. (C# AWSSDK.SimpleWorkflow 3.3.101.62. NET CORE), и он работает с ARN «без версии», но когда я добавляю версию в ARN, это не работает.
Проект c# имеет следующие зависимости
<"AWSSDK.Core" Version="3.3.106.3" />
<"AWSSDK.ECS" Version="3.3.116" />
<"AWSSDK.S3" Version="3.3.108.4" />
<"AWSSDK.SimpleWorkflow" Version="3.3.101.62" />
<"AWSSDK.SQS" Version="3.3.102.37" />
<"NETCore.MailKit" Version="2.0.2" />
<"Newtonsoft.Json" Version="12.0.3" />
О лямбда
Например, у меня есть две версии лямбда:
Лямбда-функция: nodoGEE
- $ LATEST . Arn: arn: aws: lambda: us-east-1: 942573785109: function: nodoGEE
- Versión 2. Arn: arn: aws: lambda: us-east-1: 942573785109: function: nodoGEE: 2
Я использую DecisionType.ScheduleLambdaFunction для выполнения лямбда. В этом методе я устанавливаю ScheduleLambdaFunctionDecisionAttributes со следующими параметрами:
- Id
- Имя (имя лямбда или ARN)
- Input (входная лямбда-функция)
В моем случае я завершаю атрибут имени с помощью ARN, чтобы использовать другую версию той же лямбды. Когда я использую ARN без версии, я работаю, но когда я работаю с версией, это не удается.
Конкретная ошибка: «Все попытки вызвать операцию: RespondDecisionTaskCompleted failed»
В чем проблема? Может быть, это версия SWF? Я тоже пытаюсь использовать псевдонимы, и это не работает.
Спасибо!