Шаговая функция AWS NumericGreaterThan a Parameter - PullRequest
1 голос
/ 07 ноября 2019

В шаговой функции AWS на шаге выбора мы хотим сравнить результат лямбда-функции AWS с пороговым значением, заданным в качестве параметра с помощью «NumericGreaterThan».

В нашем примере мы сравниваемвычисляется из лямбды с порогом, заданным событием.

Я попытался определить свою пошаговую функцию следующим образом:

{
  "StartAt": "Check Enough Data",
  "States": {
    "Check Enough Data": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:REGION:ID:function:FUNCTION:$LATEST",
      "Next": "Validate Count",
      "ResultPath": "$.count"
    },
    "Validate Count": {
      "Type": "Choice",
      "Choices": [
        {
          "Variable": "$.count",
          "NumericGreaterThan": "$.threshold",
          "Next": "Succeed State"
        }
      ],
      "Default": "Wait 24 Hours"
    },
    "Wait 24 Hours": {
      "Type": "Wait",
      "Seconds": 86400,
      "Next": "Check Enough Data"
    },
    "Succeed State": {
      "Type": "Succeed"
    }
  }
}

, но получил ошибку Ожидаемое значение типа:Целое число, число с плавающей запятой от String . Если я заменим «$ .threshold» на жестко запрограммированное значение (например, 20), оно будет работать, но значение не будет динамическим, как я хочу.

Следующий ввод должен привести к тому, что лямбда попадет в SucceedСостояние:

{
   "country": "japan",
   "threshold": 40
}

Я знаю, что мы можем заменить шаг выбора другой лямбда-функцией, но мы не хотим делать это из экономически эффективных вопросов.

Есть ли у кого-нибудь идеи покак решить проблему?

1 Ответ

0 голосов
/ 14 ноября 2019

Операторы сравнения должны иметь целое число после ":". Это не может быть строка.

Обходной путь заключается в том, что "Переменная": "$ .count" меняется на "$. count / $. threshold ", так что вы можете иметь" NumericGreaterThan ": 1. В этом случае у вас есть счетчик и порог, которые определяют действие выбора.

Дайте мне знать, если это исправит вашзадача

Точность: «Переменная»: «$ .count» становится «Переменная»: «$ .ratio», где коэффициент = число / порог

...