Как передать ввод пошаговой функции в пакетное задание

Как правильно отправить часть входных данных пошаговой функции в пакетное задание?

Я попытался установить и env var, используя Parameters.ContainerOverrides.Environment, как это:

"Parameters": {
    "ContainerOverrides": {
      "Environment": [
        {
          "Name": "PARAM_1",
          "Value": "$.param_1"
        }

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

{
  "param_1": "value-goes-here"
}

Но пакетное задание в итоге вызывается литералом "$.param_1" в переменной env PARAM_1.

1 ответ

Исправлена. Ключу значения просто нужен постфикс ".$".

"Parameters": {
 "ContainerOverrides": {
  "Environment": [
    {
      "Name": "PARAM_1",
      "Value.$": "$.param_1"
    }

Передайте его в "Параметры" (в родительских "Параметрах"). Обратите внимание, что все значения параметров являются строками

"MyStepTask": {
    "Type": "Task",
    "Resource": "arn:aws:states:::batch:submitJob.sync",
    "Parameters": {
      "JobDefinition": "myjobdef",
      "JobName": "myjobname",
      "JobQueue": "myjobqueue",
      "Parameters": { "p_param1":"101",
                      "p_param2":"201"
      }
    },
    "Next": "MyNextStepTask"
}

Если вы хотите передать параметры в пакетный режим, добавьте раздел "Параметры" в родительский раздел "Параметры" (отличное наименование!)

    "MyStepTask": {
        "Type": "Task",
        "Resource": "arn:aws:states:::batch:submitJob.sync",
        "Parameters": {
          "JobDefinition": "myjobdef",
          "JobName": "myjobname",
          "JobQueue": "myjobqueue",
          "Parameters": {
              "Name": "PARAM_1",
              "Value.$": "$.param_1"
          }
        },
        "Next": "MyNextStepTask"
    }
Другие вопросы по тегам