AWS::SageMaker::Pipeline - AWS CloudFormation

AWS::SageMaker::Pipeline

The AWS::SageMaker::Pipeline resource creates shell scripts that run when you create and/or start a SageMaker Pipeline. For information about SageMaker Pipelines, see SageMaker Pipelines in the Amazon SageMaker Developer Guide.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::SageMaker::Pipeline", "Properties" : { "ParallelismConfiguration" : ParallelismConfiguration, "PipelineDefinition" : PipelineDefinition, "PipelineDescription" : String, "PipelineDisplayName" : String, "PipelineName" : String, "RoleArn" : String, "Tags" : [ Tag, ... ] } }

Properties

ParallelismConfiguration

The parallelism configuration applied to the pipeline.

Required: No

Type: ParallelismConfiguration

Update requires: No interruption

PipelineDefinition

The definition of the pipeline. This can be either a JSON string or an Amazon S3 location.

Required: Yes

Type: PipelineDefinition

Update requires: No interruption

PipelineDescription

The description of the pipeline.

Required: No

Type: String

Minimum: 0

Maximum: 3072

Update requires: No interruption

PipelineDisplayName

The display name of the pipeline.

Required: No

Type: String

Pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9])*

Minimum: 1

Maximum: 256

Update requires: No interruption

PipelineName

The name of the pipeline.

Required: Yes

Type: String

Pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9])*

Minimum: 1

Maximum: 256

Update requires: Replacement

RoleArn

The Amazon Resource Name (ARN) of the IAM role used to execute the pipeline.

Required: Yes

Type: String

Pattern: ^arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$

Minimum: 20

Maximum: 2048

Update requires: No interruption

Tags

The tags of the pipeline.

Required: No

Type: Array of Tag

Minimum: 0

Maximum: 50

Update requires: No interruption

Return values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the PipelineName of the pipeline.

For more information about using the Ref function, see Ref.

Examples

SageMaker Pipeline Example

The following example creates a Pipeline with an associated lifecycle configuration.

JSON

# Pipeline definition given as a JSON string { "Resources": { "MyPipeline": { "Type": "AWS::SageMaker::Pipeline", "Properties": { "PipelineName": "<pipeline-name>" "PipelineDisplayName": "<pipeline-display-name>", "PipelineDescription": "<pipeline-description>", "PipelineDefinition": { "PipelineDefinitionBody": "{\"Version\":\"2020-12-01\",\"Parameters\":[{\"Name\":\"InputDataSource\",\"DefaultValue\":\"\"},{\"Name\":\"InstanceCount\",\"Type\":\"Integer\",\"DefaultValue\":1}],\"Steps\":[{\"Name\":\"Training1\",\"Type\":\"Training\",\"Arguments\":{\"InputDataConfig\":[{\"DataSource\":{\"S3DataSource\":{\"S3Uri\":{\"Get\":\"Parameters.InputDataSource\"}}}}],\"OutputDataConfig\":{\"S3OutputPath\":\"s3://amzn-s3-demo-bucket/\"},\"ResourceConfig\":{\"InstanceType\":\"ml.m5.large\",\"InstanceCount\":{\"Get\":\"Parameters.InstanceCount\"},\"VolumeSizeInGB\":1024}}}]}" }, "RoleArn": "arn:aws:iam::<account-id>:root" } } } }

JSON

# Pipeline definition given as an S3 string { "Resources": { "MyPipeline": { "Type": "AWS::SageMaker::Pipeline", "Properties": { "PipelineName": "<pipeline-name>", "PipelineDisplayName": "<pipeline-display-name>", "PipelineDescription": "<pipeline-description>", "PipelineDefinition": { "PipelineDefinitionS3Location": { "Bucket": "<S3-bucket-location>", "Key": "<S3-bucket-key>" } }, "RoleArn": "arn:aws:iam::<account-id>:root" } } } }

YAML

# Pipeline definition given as a JSON string Resources: MyPipeline: Type: AWS::SageMaker::Pipeline Properties: PipelineName: "<pipeline-name>" PipelineDisplayName: "<pipeline-display-name>" PipelineDescription: "<pipeline-description>" PipelineDefinition: PipelineDefinitionBody: "{\"Version\":\"2020-12-01\",\"Parameters\":[{\"Name\":\"InputDataSource\",\"DefaultValue\":\"\"},{\"Name\":\"InstanceCount\",\"Type\":\"Integer\",\"DefaultValue\":1}],\"Steps\":[{\"Name\":\"Training1\",\"Type\":\"Training\",\"Arguments\":{\"InputDataConfig\":[{\"DataSource\":{\"S3DataSource\":{\"S3Uri\":{\"Get\":\"Parameters.InputDataSource\"}}}}],\"OutputDataConfig\":{\"S3OutputPath\":\"s3://amzn-s3-demo-bucket/\"},\"ResourceConfig\":{\"InstanceType\":\"ml.m5.large\",\"InstanceCount\":{\"Get\":\"Parameters.InstanceCount\"},\"VolumeSizeInGB\":1024}}}]}" RoleArn: "arn:aws:iam::<account-id>:root"

YAML

# Pipeline definition given as an S3 location Resources: MyPipeline: Type: AWS::SageMaker::Pipeline Properties: PipelineName: "<pipeline-name>" PipelineDisplayName:"<pipeline-display-name>" PipelineDescription: "<pipeline-description>" PipelineDefinition: PipelineDefinitionS3Location: Bucket: "<S3-bucket-location>" Key: "<S3-bucket-key>" RoleArn: "arn:aws:iam::<account-id>:root"