Amazon Forecast · Arazzo Workflow

Amazon Forecast End to End Pipeline

Version 1.0.0

Create a dataset, dataset group, predictor, and forecast in a single chained pass.

1 workflow 1 source API 1 provider
View Spec View on GitHub ForecastingMachine LearningPredictive AnalyticsTime SeriesArazzoWorkflows

Provider

amazon-forecast

Workflows

end-to-end-pipeline
Chain dataset, dataset group, predictor, and forecast creation.
Creates a dataset, a dataset group referencing it, a predictor, and a forecast, threading each resulting ARN into the next create call.
4 steps inputs: dataFrequency, datasetGroupName, datasetName, datasetType, domain, featurizationConfig, forecastHorizon, forecastName, inputDataConfig, predictorName, schema outputs: datasetArn, datasetGroupArn, forecastArn, predictorArn
1
createDataset
createDataset
Create the dataset that seeds the pipeline.
2
createDatasetGroup
createDatasetGroup
Create a dataset group that references the new dataset by its ARN.
3
createPredictor
createPredictor
Train a predictor using the supplied input and featurization configuration referencing the dataset group.
4
createForecast
createForecast
Generate a forecast from the new predictor.

Source API Descriptions

Arazzo Workflow Specification

amazon-forecast-end-to-end-pipeline-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Forecast End to End Pipeline
  summary: Create a dataset, dataset group, predictor, and forecast in a single chained pass.
  description: >-
    Walks the full Amazon Forecast modeling pipeline end to end. The workflow
    creates a dataset, creates a dataset group that references that dataset,
    trains a predictor against the group, and finally generates a forecast from
    the trained predictor — passing each created ARN forward to the next stage.
    The long-running ACTIVE polling for individual resources is handled by the
    dedicated provisioning workflows; this flow focuses on the create-and-chain
    backbone. Every step spells out its request inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: amazonForecastApi
  url: ../openapi/amazon-forecast-openapi.yml
  type: openapi
workflows:
- workflowId: end-to-end-pipeline
  summary: Chain dataset, dataset group, predictor, and forecast creation.
  description: >-
    Creates a dataset, a dataset group referencing it, a predictor, and a
    forecast, threading each resulting ARN into the next create call.
  inputs:
    type: object
    required:
    - datasetName
    - domain
    - datasetType
    - schema
    - datasetGroupName
    - predictorName
    - forecastHorizon
    - inputDataConfig
    - featurizationConfig
    - forecastName
    properties:
      datasetName:
        type: string
        description: A name for the dataset.
      domain:
        type: string
        description: The domain shared across the pipeline resources.
      datasetType:
        type: string
        description: The dataset type (e.g. TARGET_TIME_SERIES).
      dataFrequency:
        type: string
        description: The frequency of data collection.
      schema:
        type: object
        description: The schema for the dataset.
      datasetGroupName:
        type: string
        description: A name for the dataset group.
      predictorName:
        type: string
        description: A name for the predictor.
      forecastHorizon:
        type: integer
        description: The number of time-steps to predict.
      inputDataConfig:
        type: object
        description: The training input configuration for the predictor.
      featurizationConfig:
        type: object
        description: The featurization configuration for the predictor.
      forecastName:
        type: string
        description: A name for the generated forecast.
  steps:
  - stepId: createDataset
    description: >-
      Create the dataset that seeds the pipeline.
    operationId: createDataset
    requestBody:
      contentType: application/json
      payload:
        DatasetName: $inputs.datasetName
        Domain: $inputs.domain
        DatasetType: $inputs.datasetType
        DataFrequency: $inputs.dataFrequency
        Schema: $inputs.schema
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datasetArn: $response.body#/DatasetArn
  - stepId: createDatasetGroup
    description: >-
      Create a dataset group that references the new dataset by its ARN.
    operationId: createDatasetGroup
    requestBody:
      contentType: application/json
      payload:
        DatasetGroupName: $inputs.datasetGroupName
        Domain: $inputs.domain
        DatasetArns:
        - $steps.createDataset.outputs.datasetArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datasetGroupArn: $response.body#/DatasetGroupArn
  - stepId: createPredictor
    description: >-
      Train a predictor using the supplied input and featurization
      configuration referencing the dataset group.
    operationId: createPredictor
    requestBody:
      contentType: application/json
      payload:
        PredictorName: $inputs.predictorName
        ForecastHorizon: $inputs.forecastHorizon
        InputDataConfig: $inputs.inputDataConfig
        FeaturizationConfig: $inputs.featurizationConfig
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      predictorArn: $response.body#/PredictorArn
  - stepId: createForecast
    description: >-
      Generate a forecast from the new predictor.
    operationId: createForecast
    requestBody:
      contentType: application/json
      payload:
        ForecastName: $inputs.forecastName
        PredictorArn: $steps.createPredictor.outputs.predictorArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      forecastArn: $response.body#/ForecastArn
  outputs:
    datasetArn: $steps.createDataset.outputs.datasetArn
    datasetGroupArn: $steps.createDatasetGroup.outputs.datasetGroupArn
    predictorArn: $steps.createPredictor.outputs.predictorArn
    forecastArn: $steps.createForecast.outputs.forecastArn