Create a Streaming Labeling Job - Amazon SageMaker

Create a Streaming Labeling Job

Streaming labeling jobs enable you to send individual data objects in real time to a perpetually running, streaming labeling job. To create a streaming labeling job, you must create an Amazon SNS input topic and specify this topic in CreateLabelingJob parameters InputConfig of SnsDataSource. Optionally, you can also create an Amazon SNS output topic and specify it in OutputConfigif you want to receive label data in real time.


If you are a new user of Ground Truth streaming labeling jobs, it is recommended that you review Ground Truth Streaming Labeling Jobs before creating a streaming labeling job.

Use the following sections to create the resources that you need and can use to create a streaming labeling job:

  • Learn how to create SNS topics with the permissions required for Ground Truth streaming labeling jobs by following the steps in Create Amazon SNS Input and Output Topics. Your SNS topics must be created in the same AWS Region as your labeling job.

  • See Subscribe an Endpoint to Your Amazon SNS Output Topic to learn how to set up an endpoint to receive labeling task output data at a specified endpoint each time a labeling task is completed.

  • To learn how to configure your Amazon S3 bucket to send notifications to your Amazon SNS input topic, see Set up Amazon S3 Bucket Event Notifications.

  • Optionally, add data objects that you want to have labeled as soon as the labeling job starts to your input manifest. For more information, see Create a Manifest File (Optional).

  • There are other resources required to create a labeling job, such as an IAM role, Amazon S3 bucket, a worker task template and label categories. These are described in the Ground Truth documentation on creating a labeling job. For more information, see Create a Labeling Job.


    When you create a labeling job you must provide an IAM execution role. Attach the AWS managed policy AmazonSageMakerGroundTruthExecution to this role to ensure it has required permissions to execute your labeling job.

When you submit a request to create a streaming labeling job, the state of your labeling job is Initializing. Once the labeling job is active, the state changes to InProgress. Do not send new data objects to your labeling job or attempt to stop your labeling job while it is in the Initializing state. Once the state changes to InProgress, you can start sending new data objects using Amazon SNS and the Amazon S3 configuration.