Обзор

  • Что такое AWS Step Functions?

    AWS Step Functions – это полностью управляемый сервис для координации компонентов распределенных приложений и микросервисов с помощью наглядного представления рабочих процессов. Если приложение состоит из отдельных компонентов, каждый из которых выполняет свою функцию, его можно легко масштабировать и быстро изменять. Сервис Step Functions – это простой способ координировать работу компонентов и последовательно контролировать функции приложения. Сервис содержит графическую консоль, с помощью которой можно упорядочить и наглядно представить компоненты приложения в виде последовательности шагов. Это упрощает процесс создания многоступенчатых приложений. Сервис Step Functions автоматически запускает каждый шаг, отслеживает его выполнение и при наличии ошибок перезапускает его. Таким образом можно проверить правильность работы приложения. Сервис Step Functions ведет журнал состояний каждого шага, чтобы при появлении ошибок можно было быстро определить и устранить их причину. Чтобы изменить или добавить шаг, не требуется даже писать код. Это позволяет легко развивать и совершенствовать приложение.

  • Каковы преимущества разработки приложений с использованием оркестрации сервисов?

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

  • Каковы распространенные примеры использования сервиса AWS Step Functions?

    Сервис AWS Step Functions помогает при работе с любой вычислительной задачей или бизнес-процессом, которые можно разбить на ряд шагов. Кроме того, его удобно использовать для создания сквозных рабочих процессов, предназначенных для управления заданиями со взаимозависимостями. Ниже приведены распространенные примеры использования.

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

    Дополнительные сведения см. в примерах использования сервиса AWS Step Functions и отзывах клиентов об этом сервисе.

  • Как работает сервис AWS Step Functions?

    При использовании сервиса AWS Step Functions вы задаете конечные автоматы, которые описывают рабочий процесс в виде ряда шагов, связей между шагами, а также входных и выходных данных. Конечные автоматы содержат ряд состояний, каждое из которых представляет отдельный шаг на блок-схеме рабочего процесса. Состояния могут выполнять работу, делать выбор, передавать параметры, инициировать параллельное выполнение, управлять тайм-аутами, а также завершать рабочий процесс (успешно либо со сбоями). На визуальной консоли автоматически отмечается каждое состояние в порядке их выполнения, и это упрощает разработку многоступенчатых приложений. На консоли выделено текущее состояние каждого шага и имеется подробный журнал каждого выполнения. Дополнительные сведения см. в разделе How Step Functions Works в руководстве разработчика AWS Step Functions.

  • Как сервис AWS Step Functions подключается к моим ресурсам?

    Вы можете настроить конечные автоматы так, чтобы они выполняли работу, используя задачи действий и задачи сервисов. С помощью задач действий можно назначить определенный шаг в рабочем процессе коду, выполняемому в другом месте (который называется исполнителем действия). Исполнителем действия может быть любое приложение, которое может создавать HTTP-подключение, и оно может быть размещено в любом месте. Например, исполнитель действия может работать в инстансе Amazon EC2, на мобильном устройстве или на локальном сервере. Исполнитель действия опрашивает сервис Step Functions на наличие работы, принимает входные данные от сервиса Step Functions, выполняет работу, используя ваш код, и возвращает результаты. Так как исполнители действий запрашивают работу, то довольно легко использовать исполнители, развернутые за брандмауэром.

    С помощью задач сервисов можно подключить какой-либо шаг в рабочем процессе к поддерживаемому сервису AWS. Сервис Step Functions отправляет запросы в другие сервисы, чтобы они выполняли действия для вашего рабочего процесса, ожидает выполнения задач сервисов, а затем переходит к следующему шагу.

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

  • Как начать работу с сервисом AWS Step Functions?

    Начать работу с сервисом AWS Step Functions можно несколькими перечисленными ниже способами.

  • Какие языки можно использовать в сервисе AWS Step Functions?

    Конечные автоматы в сервисе AWS Step Functions заданы с помощью JSON с использованием описательного языка Amazon States Language. Чтобы создать исполнитель действия, можно использовать любой язык программирования, так как обмениваться данными с сервисом AWS Step Functions можно с помощью API веб-сервисов. Можно также использовать AWS SDK на удобном языке программирования. AWS Lambda поддерживает код, написанный на языках Node.js (JavaScript), Python, Golang (Go) и C# (с использованием среды выполнения .NET Core и других языков). Дополнительные сведения о модели программирования Lambda см. в руководстве разработчика AWS Lambda.

Сравнения

  • Когда лучше использовать AWS Step Functions, а когда – Amazon SQS?

    Сервис AWS Step Functions рекомендуется использовать для координации компонентов сервисов при разработке высокомасштабируемых приложений, поддерживающих аудит. Если же необходима надежная, высокомасштабируемая выделенная очередь для отправки, хранения и приема сообщений в ходе взаимодействия между сервисами, лучше использовать сервис Amazon Simple Queue Service (Amazon SQS). Сервис Step Functions отслеживает все задачи и события в приложении. В сервисе Amazon SQS необходимо самостоятельно реализовать отслеживание на уровне приложения, особенно если в приложении используется множество очередей. Консоль Step Functions и API видимости обеспечивают детальный анализ работы приложений, позволяющий осуществлять поиск выполняющихся заданий, переходить к детальному просмотру того или иного задания и управлять ходом их выполнения. В сервисе Amazon SQS необходимо дополнительно реализовывать такие функциональные возможности. В сервисе Step Functions имеется ряд функций, упрощающих разработку приложений, в том числе функции передачи данных между задачами и гибкие возможности распределения задач. В сервисе Amazon SQS необходимо реализовывать некоторые функциональные возможности на уровне приложения. Если при использовании сервиса Amazon SQS можно создавать основные рабочие процессы для координации распределенного приложения, то при использовании сервиса Step Functions все эти возможности предоставляются сразу вместе с другими возможностями на уровне приложения.

  • Когда лучше использовать AWS Step Functions, а когда – Amazon Simple Workflow Service (SWF)?

    Сервис AWS Step Functions рекомендуется использовать при разработке любых новых приложений, так как он обеспечивает более продуктивный и гибкий подход к координации компонентов приложения с помощью наглядного представления рабочих процессов. Если в процессах необходимо использовать внешние сигналы или предполагается выполнять дочерние процессы, которые возвращают результат родительскому процессу, рекомендуется использовать сервис Amazon Simple Workflow Service (Amazon SWF). В сервисе Amazon SWF вместо того, чтобы писать конечные автоматы в декларативном формате JSON, достаточно написать программу принятия решений, чтобы отделить рабочие шаги от шагов принятия решений. Это обеспечивает полный контроль над логикой механизмов оркестрации, но усложняет разработку приложений. Программы для принятия решений можно писать на любых языках либо, используя среду Flow, составлять их из программных элементов, которые автоматически организуют асинхронное взаимодействие.

Интеграция

  • Как сервис AWS Step Functions подключается к другим сервисам AWS и координирует с ними свою работу?

    Рабочие процессы, которые вы создаете с помощью сервиса AWS Step Functions, могут подключаться к другим сервисам AWS и координировать их, используя задачи сервисов. Ниже приведены несколько примеров.

    • Вызов функции AWS Lambda
    • Выполнение задачи Amazon Elastic Container Service или AWS Fargate
    • Получение существующего элемента из таблицы Amazon DynamoDB и размещение нового элемента в таблице DynamoDB
    • Отправка задания AWS Batch и ожидание его выполнения
    • Публикация сообщения в теме Amazon SNS
    • Отправка сообщения в очередь Amazon SQS
    • Запуск задания AWS Glue
    • Создание задания Amazon SageMaker для обучения модели машинного обучения или пакетного преобразования набора данных

    Дополнительные сведения о том, как использовать сервис Step Functions для подключения к другим сервисам AWS, см. в руководстве разработчика Step Functions. Вы также можете создавать задачи в своих конечных автоматах, которые выполняют приложения. См. вопросы и ответы в разделе Обзор, вопрос Как сервис AWS Step Functions подключается к моим ресурсам?

  • Как сервис AWS Step Functions работает с сервисом Amazon API Gateway?

    Вы можете связать свои API Step Functions с Amazon API Gateway, чтобы эти API вызывали ваши конечные автоматы при отправке HTTPS-запроса в определенный вами метод API. Вы можете использовать API Amazon API Gateway для запуска конечных автоматов Step Functions, которые координируют компоненты распределенного серверного приложения, и интегрировать задачи, требующие действий человека, в шаги приложения, например при отправке запросов на утверждение и получения ответов на них. Можно выполнять даже бессерверные асинхронные вызовы API сервисов, используемых приложением. Дополнительные сведения см. в нашем учебном пособии Creating a Step Functions API Using API Gateway.

  • Как функции ведения журналов и мониторинга работают для сервиса AWS Step Functions?

    Для мониторинга приложений сервис AWS Step Functions отправляет метрики в сервисы Amazon CloudWatch и AWS CloudTrail. Сервис Amazon CloudWatch собирает и отслеживает метрики, настраивает предупреждения и автоматически реагирует на изменения в сервисе AWS Step Functions. Сервис AWS CloudTrail регистрирует в качестве событий все вызовы API для сервиса Step Functions, включая вызовы из консоли Step Functions и вызовы из кода к API Step Functions. Кроме того, сервис Step Functions поддерживает управляемые правила Amazon CloudWatch Events для каждого интегрированного сервиса в вашем рабочем процессе, а также при необходимости создает правила CloudWatch Events и управляет ими в вашем аккаунте AWS. Дополнительные сведения см. в разделе Monitoring and Logging в руководстве разработчика AWS Step Functions.

Безопасность

  • Как защитить рабочие процессы?

    Сервис AWS Step Functions интегрирован с сервисом AWS Identity and Access Management (AWS IAM). Политики IAM можно использовать для управления доступом к API Step Functions, и когда вы создаете конечный автомат в консоли AWS Step Functions, сервис Step Functions рекомендует политику IAM на основе того, какие ресурсы использованы в определении конечного автомата. Дополнительные сведения см. в разделе IAM Policies for Connected Services в руководстве разработчика AWS Step Functions.

Начало работы с сервисом AWS Step Functions

Перейти на страницу начала работы
Готовы начать?
Войти в консоль AWS Step Functions
Есть вопросы?
Свяжитесь с нами