Рубрики
Uncategorized

Как отфильтровать и Manipulatulate AWS PAP-функции ввода и вывода данных?

В этом руководстве мы объясним входные функции AWS ввода и вывода. Там много … Помечено с AWS, Serverless, DEVOPS.

В этом руководстве мы объясним AWS Шаг Функции Ввод и вывод Манипуляции Отказ

Там много всего поговорить о функциях AWS Step. Есть многочисленные статьи, доступные онлайн говорящие о функциях PAWS, когда-либо поскольку функции шагов были введены в 2016 году. Большинство из этих статей могут заставить вы думать, что шаговые функции на самом деле являются расширением функции лямбда, что позволяет объединить несколько функций лямбда, чтобы позвонить друг другу.

Однако это не так, и этапные функции намного больше, чем это. AWS Step Functions позволяет пользователям разработать и построить Весь поток выполняет модули В вашем приложении в Очень упрощенный путь. Все это позволяет разработчикам сосредоточиться исключительно на обеспечении того, чтобы Каждый модуль запускает свою основную задачу И вам не придется беспокоиться о подключении каждого модуля со всеми другими.

Вы можете узнать больше о шагах в наших Окончательное руководство по шагам функции и в Лучшие шага используют случаи Статьи ..

Что такое шаг функций ввода/вывода?

Для эффективного проектирования и внедрения рабочих процессов в функциях AWS STAP, жизненно важно понять поток информации из одного государства в другое Отказ Тем не менее, это также имеет решающее значение для изучения того, как манипулировать и отфильтровать эти данные.

На диаграмме ниже вы заметите движение информации JSON на протяжении всего состояния задач:

APPUTPATH, OPTIONPATH, RECACTSTATH, параметры и Возбудиектор , будет манипулировать JSON, так как он проходит через каждое состояние в вашем рабочем процессе.

Путь

Путь — это Строка, начинающаяся с $ На языке государств Амазонки , и вы можете использовать его в Определите компоненты найден внутри текста JSON. Вы можете указать путь, который позволит вам Доступ к подмножеству ввода Когда вы определяете значения для APPUTPATH, RECACTSAPTATH и Productpath Отказ

Справочные пути

Справочный путь также является путь, но его синтаксис ограничен таким образом, что он способен идентифицировать только один узел во всей структуре JSON:

  • Вы успешно получите доступ к полям объекта, используя только точку (.) вместе с квадратным кронштейном ([]) Обозначение.
  • Эти операторы @ ..,:? * те, которые не поддерживаются.
  • Функции, как Длина () Также не поддерживаются.

Хорошим примером этого является, если данные ввода состояния имеют эти значения:

Более того, эти эталонные пути вернутся:

Некоторые государства используют пути, и они также имеют ссылочные пути, чтобы они могли контролировать весь поток состояния или даже настроить параметры или настройки состояния.

ProductPath, Resultselector и параметры

APPUTPATH, Resultselector и Параметры Поля дают вам возможность Манипулировать JSON Пока он движется по всему вашему рабочему процессу. APPUTPATH может Ограничить вход Это пропущено путем отфильтрованной записи JSON и используя путь. Возбудиектор поле — это тот, который предоставляет вам возможность Манипулировать результатом государства еще до Реалькомана применены . Поле параметров дает вам возможность передачи набора пар клавишных пар. Эти значения будут либо те, которые вы выбран из ввода Использование пути или статические значения, которые вы определить в определении вашего состояния

AWS Step Functions будет применять APPUTPATH поле в качестве первичного, и только после того, как он применяет поле параметров. Было бы лучше, если вы сначала отфильтровывают сырой вход в выделение Вы хотите через Входной путь . Вы должны применить параметры, чтобы вы могли дальше манипулировать этим конкретным входом или добавьте новые значения. После того, как вы закончите с этим шагом, вы можете использовать Возбудиектор поле, чтобы вы могли манипулировать выходом штата до Реалькомана даже применяется.

Входной путь

Было бы лучше, если вы использовали Входной путь Так что вы могли бы Выберите сегмент состояния ввода Отказ Хорошим примером было бы, если вы предполагаете, что вход в ваше состояние включает в себя:

Тогда вы можете применить APPUTPATH :

Учитывая предыдущий Входной путь Это JSON, которая передается как вход:

Важно знать, что путь может дать выбор конкретных значений, таких как:

В случае, если вы применили путь $. А [0: 2] Это будет результат:

Резовский

Используйте Возбудиектор поле, так что вы можете Манипулировать результатом государства даже до Реалькомана применяется Отказ Возбудиектор Поле позволяет создать коллекцию Пары ключа-значений Если эти значения статически или даже выбраны из результата состояния. Более того, Возбудиектор Выход заменит результат состояния, и он будет передан на Реалькомана Отказ

Возбудиектор не является обязательным месторождением в этих штатах:

  • Задача
  • Параллельно
  • карта

Кроме того, пошаговые функции Сервисные интеграции будут Возвращать метаданные к Результат полезной нагрузки Отказ Возбудиектор способен на Выбор фрагментов результата и слияние их все с Государственный вклад в результат. Отказ В этом примере показано, что вы можете выбрать * ResourceType и Кластерид Таким образом, вы могли бы объединить, что вместе с государственным входом из EMR Amazon CreateCluster.sync Отказ Вот пример:

Используя Резовский Вы сможете выбрать ResourceType. и Кластерид :

Учитывая данный вклад, утилизация Возбудиектор будет производить:

Параметры

Использование поля параметров поможет вам Создайте коллекцию пар клавишных пар, которые все прошли как вход . Эти значения могут быть выбраны из объекта ввода или контекста с помощью пути, или они могут быть статическими значениями, которые вы включены в определение вашего состояния. Название ключа должно быть заканчивается *. $ Для пар клавишных ценностей, значение которого было выбрано используя путь *.

Посмотрите на следующий пример ввода:

Указание этих параметров в пределах вашего состояния определение машины позволит вам выбрать часть информации.

Учитывая предыдущий вклад вместе с полем параметров, это JSON, которая пройдет:

В дополнение к предоставленному входу вы легко доступа к специальному объекту JSON, который известен как « Context Object . «Этот объект включает в себя всю информацию относительно выполнения вашего состояния машины .

Стоит отметить, что поле параметров также способно передавать информацию к другим подключенным ресурсам. В случае, если ваша задача государства-оркестраты AWS PATCHION, вы можете легко Пройдите все соответствующие параметры API прямо к действиям API этой службы Отказ

Пункт

PerficePath поле используется в Состояние карты Так что вы могли бы Выберите массив внутри ввода Отказ Состояние карты используется для Итарифные шаги для каждого элемента в массиве, найденном на входе Отказ Состояние карты будет установлено PerficePath к $ Выбрав весь ввод по умолчанию . В случае, если вход в состояние карты представляет собой массив JSON, он будет запускать итерацию для каждого элемента, найден в массиве, и он пройдет этот элемент дальше к итерации в качестве ввода.

PerficePath поле позволит вам Выберите местоположение На входе, чтобы вы могли найти массив JSON для использования для iTerations. PerficePath Значение должно быть Справочник И он также должен определить ценность, который является массивом JSON. Подумайте о входе в состояние карты, которое включена в два массива, как в следующем примере:

Этот случай показывает, что вы можете указать, какой массив вы хотите использовать для ITERATIONATION CAP CAPT, просто выбирая Специфический массив с * itemspath Отказ Это определение состоятельного машины указывает * desingpirateSsay массив внутри ввода, используя PerficePath исключительно. Тем не менее, это будет пропустить государственную итерацию Синворчество Для каждого элемента, расположенного в ВещиpirateSsay множество.

PerficePath применяется после APPUTPATH при обработке ввода. Более того, когда APPUTPATH полностью отфильтровал вход, он будет работать на эффективном входе в состояние.

Происшествие

вывод любого штата также может быть Копия его ввода , а Сочетание его результата и ввода или результат он производит (EX. Выход, который пришел из функции Lambda Cass State). Использование Реалькомана позволяет вам Контроль Какой из них Комбинации будут направлены на выход штата .

Это государственные типы, которые могут генерировать результат, который также может включать Реалькомана :

  • Задача
  • Параллельно
  • Проходят

Это поможет, если вы используете Реалькомана для Объединение ввода задач с результатом задач Или даже выберите один из этих вариантов. Путь, который вы предоставляете Реалькомана будет контролировать всю информацию, которая передает на выход.

Кроме того, Реалькомана ОГРАНИЧЕНО УСЛОВИТЬ СЛАВНЫЕ пути, ограничивающими объем, чтобы идентифицировать только один узел в JSON.

Использование результат

Вы можете использовать Реалькомана к:

  • Заменить вход с результатом
  • Откажитесь от результата и сохранить вход
  • Включить результат с входом
  • Обновите узел в входе с результатом
  • Включите ввод и ошибку в уловоте

Использовать результат для замены ввода с результатом

Если вы Не указывайте * RealsionPath , поведение по умолчанию будет таким же, как если бы вы указали «* RealsionPath »: «$». С этого Сообщает состояние заменить весь вход с результатом Государственный вклад станет заменен полностью по результату, которое произошло из результата задачи.

На этой диаграмме вы можете увидеть, как Реалькомана будет полностью заменить вход с результатом данной задачи:

Используйте функцию лямбда и состояния через этот вход:

Затем функция Lambda предоставит вам этот результат:

В случае, если Реалькомана Не было указано в штате или если установлено « RealsionPath »: «$» установлено, вход состояния заменяется результатом функции лямбда, а выход состояния выглядит следующим образом:

Реалькомана Используется для включения всего содержимого от входного результата до передачи контента к выходу. Однако, если Реалькомана Не было указано, это заменит весь ввод по умолчанию.

Отбрасывать результат и сохранение исходного ввода

В случае, если вы установите Реалькомана к Нуль, Это …| Передайте оригинальный ввод прямо к выходу. Используя « resсят путь »: «NULL», входная нагрузка государства будет непосредственно скопирована на выход, независимо от результата.

Эта диаграмма демонстрирует, как нулевой Реалькомана копирует вход прямо к выходу.

Используйте результат, чтобы включить результат с данным входом

Этот пример показывает, как Реалькомана включает в себя результат на входе.

Использование функции лямбда и штата машина, вы можете пройти этот вход:

Результат lambda функции будет:

Чтобы сохранить этот вход, вы должны вставить результат функции лямбда, а затем пройти комбинированный JSON в следующее состояние, и вы сможете установить Реалькомана :

Это также включает в себя результат функции лямбда с исходным входом.

Вывод функции лямбда находится в конец исходного ввода и представлен как ценность для TaskResult. . Вход вместе с недавно вставленным значением пересылается в следующее состояние.

Вы можете поместить результат в вход Детский узел и Реалькомана будет установлен следующим образом:

Начните выполнение, используя этот вход:

Результат функции лямбда вставлен на вход как ребенок Строки узел.

Вывод состояния теперь будет включать в себя исходный вход JSON, приводящий к дочерним узле.

Используйте результат для обновления узла на входе с результатом

Диаграмма ниже витрины Как Реалькомана Можно обновить существующие JSON Значение узлов Входной вход с значениями результата задач:

Использование примера функции Lambda и состояния, описанной в «Учебном пособии для создания стационарных функций, которые использует Lambda», вы можете пройти этот вход:

Результат функции лямбда:

Вместо того, чтобы вставлять результат в качестве нового узла в JSON и сохранение ввода, вы можете полностью перезаписать существующий узел Отказ

Например, установка «Реальтинама»: «$» Будет ли переписать Узел полностью полностью, и вы можете указать один узел, который вы хотите перезаписать с результатом.

Поскольку узел комментариев уже существует в состоянии состояния, установите Реалькомана к «$ .Comment» Чтобы заменить этот узел на вход с результатом функции лямбда. Это будет передано на вывод Без каких-либо дополнительных фильтрации, сделанных * OdductionPath *:

Значение узла комментариев: «Это входной и выходной тест состояния задач»., Будет Заменены на результат функции лямбда : «Привет, AWS Step Functions!» в состоянии государства.

Используйте результат, чтобы включить как ввод, так и ошибки в уловоте

Учебное пособие «Использовать Step Functions State Machine для обработки условий ошибки» объясняет, как вы можете использовать станок для уловления ошибок. Иногда вы можете сохранить исходный вход, который включает в себя ошибку. Используйте Реалькомана В ловке, чтобы вы могли бы включить ошибку с исходного ввода.

В случае, если предыдущее утверждение поймать любые ошибки, это также Включает в себя результат в узле ошибки из состояния ввода. Следующий ввод является хорошим примером этого случая:

Вот как вывод состояния при совершении ошибки выглядит как:

Вывод

Productpath Позволяет выбрать фрагмент вывода состояния, чтобы пройти его на следующее состояние. Это также позволяет вам Отфильтруйте всю ненужную информацию и передайте только сегменты JSON, вы действительно заботитесь о Отказ

Не указав Productpath , значение по умолчанию всегда будет $ Отказ Это пройдет весь узел JSON, который был определен результатом задач, Реалькомана , включая государственный вклад, прямо к следующему государству.

Примеры входных путей, выпускных путей и результат

Любое состояние, кроме состояния отказа, может включать APPUTPATH, OPTIONPATH или Реалькомана Отказ Все они позволяют использовать путь для фильтрации JSON, так как он перемещается на протяжении всего вашего рабочего процесса.

Например, вы можете изменить состояние State, поэтому он включает в себя APPUTPATH, OPTIONPATH , и Реалькомана :

Используйте этот вход, чтобы начать выполнение:

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

Состояние задача модифицируется для обработки ввода к задаче в обновленном состоянии.

Эта линия в пределах определения состояния будет Ограничить ввод задачи исключительно на узел лямбда изнутри вклада государства. Функция лямбда получит только объект json {«Кто»: «AWS Step Functions»} в качестве ввода.

Это конкретное Реалькомана скажу бы штату машину к Вставьте результат функции лямбда В узле называется «лямбдарезельт» как Ребенок узла данных на исходном входе состояния машины. Вход состояния теперь включает в себя функцию Lambda результат с исходным входом и без какой-либо дополнительной обработки с Productpath Отказ

В настоящее время , так как цель — это Сохраните только узел данных в том случае, включая Результат функции лямбда , Productpath Фильтры комбинированные JSON, прежде чем передавать его на вывод состояния.

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

Кроме того, в этом конкретном состоянии задача:

  • APPUTPATH Отправляю только узел лямбда из ввода функции лямбда.
  • Productpath будет фильтровать вход состояния (который включает в себя результат функции лямбда) для передачи узла данных дальше к выходу состояния.
  • Реалькомана вставит результат в качестве ребенка узла данных в исходном входе.

Объект контекста

Объект контекста также известен как Внутренняя структура JSON, которая доступна во время выполнения , пока он содержит информацию о обоих исполнении, так и Благодаря этому, ваши рабочие процессы получат Доступ к информации относительно их конкретного исполнения. Доступ к объекту контекста возможен с этих полей:

  • Входной путь
  • Вывод
  • Резовский
  • PerficePath (в пределах состояний карты)
  • Переменная к другим переменным операторам сравнения
  • Переменная (в пределах выбора состояний)

Форматы объекта контекста

Объект контекста имеет информацию о Исполнение, состояние, задача и государственная машина Отказ Более того, этот объект JSON включает узлы для каждого типа данных и обычно отформатирован следующим образом:

Во время каждого выполнения объект контекста заполнен данными отношение к полю параметров, где он доступа к Отказ Значение поля задачи NULL в случае, если поле параметров полностью за пределами состояния задач.

Содержание из запуска выполнения также включает в себя эти специфики в этом формате:

Как получить доступ к объекту контекста?

К Успешно получить доступ к контексту Objec T, сначала нужно указать имя параметра, размещая . $ К концу, что то же самое, что вы делаете при выборе состояния ввода с помощью пути. Кроме того, к Доступ к данным объекта контекста вместо доступа к входу Начните путь с $$. . Это будет информировать функции AWS STAP для использования пути для выбора узла в объекте контекста.

Пример состояния задачи использует путь для прохождения и извлечения Имя ресурса Amazon (ARN) Исполнение к Amazon SQS сообщение.

Данные объекта контекста для обработки состояний карты

Еще два элемента доступны в объекте контекста при обработке состояния карты: Значение и индекс Отказ Указатель индекса содержит номер индекса, предназначенный для элемента массива, обработанного в текущей итерации. Объект контекста в состоянии карты включает в себя:

Однако они доступны только в Карта штата и они могут быть указано перед сечением итераторов в полевых параметрах Отказ Кроме того, вы должны определить параметры из объекта контекста в блоке параметров основного состояния основной карты, а не внутри состояний, включенных в раздел итератор.

Можно ввести информацию из объекта контекста, если вам дают состояние состояния простым состоянием карты:

Выполняя предыдущий государственный станок с указанным входом, как значение, так и индекс будет вставлен в выход.

Вывод выполнения:

Упаковка

Точное описание шаговых функций должно быть « State-As-A-Service . «Без них у нас не было бы шансов поддерживать казнь каждого государства с несколькими лямбдами .

Жизненно важно держать на вершине производительности ваших шаговых функций, потому что рабочие процессы могут пойти не так, что может серьезно повлиять на ваш конечный пользователь. AWS STAP Функции публикуют события и метрики на CloudTail и Cloudwatch которые контролируются Tashbird и импортируются на одну приборную панель, объединяя метрики других услуг AWS и переведены в Простые, чтобы понять действительные данные Отказ

INSIGHTS Tashbird’s Insights обнаруживает ошибки, связанные с определениями состояния машин или сбоями выполнения задач в режиме реального времени и уведомляет вас сразу , с помощью провисания или по электронной почте, когда что-то внутри ваших рабочих процессов разрывается или собирается пойти не так. Двигатель Insights основан на AWS хорошо архивационные лучшие практики И постоянно управляет всеми вашими данными инфраструктуры Servalless против своих правил, чтобы помочь вам оптимизировать ваше приложение, оптимизированное и надежное в любом масштабе.

Вы можете дать Tashbird попробую — это бесплатно!

  • Нет изменения кода
  • Кредитная карта не требуется
  • Простая 2-минутная настроек
  • Получить доступ ко всей премию Особенности
  • Начните получать автоматические оповещения и надежно работать с вашими данными немедленно
  • Найти и отлаживать известные и неизвестные ошибки в считанные секунды
  • Получите настроение Accessive Insights для улучшения и благополучия вашей системы, чтобы иметь возможность принять более сложность со временем
  • Простое, чистое и легко понять интерфейс
  • Один из самых бюджетных решений мониторинга и устранения неполадок на рынке
  • Поддерживающие и дружественные все вокруг 🙂 — посмотреть, какие пользователи Dashbird говорят

Оригинал: «https://dev.to/dashbird/how-to-filter-and-manipulate-aws-step-functions-input-and-output-data-1jm9»