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" : { "PipelineDefinition" : Json, "PipelineDescription" : String, "PipelineDisplayName" : String, "PipelineName" : String, "RoleArn" : String, "Tags" : [ Tag, ... ] } }

YAML

Type: AWS::SageMaker::Pipeline Properties: PipelineDefinition: Json PipelineDescription: String PipelineDisplayName: String PipelineName: String RoleArn: String Tags: - Tag

Properties

PipelineDefinition

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

Required: Yes

Type: Json

Update requires: No interruption

PipelineDescription

The description of the pipeline.

Required: No

Type: String

Minimum: 0

Maximum: 3072

Pattern: .*

Update requires: No interruption

PipelineDisplayName

The display name of the pipeline.

Required: No

Type: String

Minimum: 1

Maximum: 256

Pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}

Update requires: No interruption

PipelineName

The name of the pipeline.

Required: Yes

Type: String

Minimum: 1

Maximum: 256

Pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}

Update requires: Replacement

RoleArn

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

Required: Yes

Type: String

Minimum: 20

Maximum: 2048

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

Update requires: No interruption

Tags

The tags of the pipeline.

Required: No

Type: List of Tag

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.

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://my-s3-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: MyAwesomePipeline: 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://my-s3-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: Resources: MyAwesomePipeline: 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"