Skip to content
v2.275.0

S3ModelDataSourceProperty Struct ​

Specifies the S3 location of ML model data to deploy.

Example ​

ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_sagemaker as sagemaker } from 'aws-cdk-lib';
const s3ModelDataSourceProperty: sagemaker.CfnModelPackage.S3ModelDataSourceProperty = {
  compressionType: 'compressionType',
  s3DataType: 's3DataType',
  s3Uri: 's3Uri',

  // the properties below are optional
  modelAccessConfig: {
    acceptEula: false,
  },
};

Properties ​

compressionTypestringcompression_typestrcompressionTypeStringCompressionTypestringCompressionType*stringrequired#
Specifies how the ML model data is prepared.
notes

If you choose Gzip and choose S3Object as the value of S3DataType , S3Uri identifies an object that is a gzip-compressed TAR archive. SageMaker will attempt to decompress and untar the object during model deployment.

If you choose None and chooose S3Object as the value of S3DataType , S3Uri identifies an object that represents an uncompressed ML model to deploy.

If you choose None and choose S3Prefix as the value of S3DataType , S3Uri identifies a key name prefix, under which all objects represents the uncompressed ML model to deploy.

If you choose None, then SageMaker will follow rules below when creating model data files under /opt/ml/model directory for use by your inference code:

  • If you choose S3Object as the value of S3DataType , then SageMaker will split the key of the S3 object referenced by S3Uri by slash (/), and use the last part as the filename of the file holding the content of the S3 object.

  • If you choose S3Prefix as the value of S3DataType , then for each S3 object under the key name pefix referenced by S3Uri , SageMaker will trim its key by the prefix, and use the remainder as the path (relative to /opt/ml/model ) of the file holding the content of the S3 object. SageMaker will split the remainder by slash (/), using intermediate parts as directory names and the last part as filename of the file holding the content of the S3 object.

  • Do not use any of the following as file names or directory names:

  • An empty or blank string

  • A string which contains null bytes

  • A string longer than 255 bytes

  • A single dot ( . )

  • A double dot ( .. )

  • Ambiguous file names will result in model deployment failure. For example, if your uncompressed ML model consists of two S3 objects s3://mybucket/model/weights and s3://mybucket/model/weights/part1 and you specify s3://mybucket/model/ as the value of S3Uri and S3Prefix as the value of S3DataType , then it will result in name clash between /opt/ml/model/weights (a regular file) and /opt/ml/model/weights/ (a directory).

  • Do not organize the model artifacts in S3 console using folders . When you create a folder in S3 console, S3 creates a 0-byte object with a key set to the folder name you provide. They key of the 0-byte object ends with a slash (/) which violates SageMaker restrictions on model artifact file names, leading to model deployment failure.

modelAccessConfigoptionalIResolvable | CfnModelPackage.ModelAccessConfigPropertymodel_access_configoptionaltyping.Union[IResolvable, ModelAccessConfigProperty]modelAccessConfigoptionalIResolvableModelAccessConfigoptionalIResolvableModelAccessConfigoptionalinterface{}#
Specifies the access configuration file for the ML model.
notes

You can explicitly accept the model end-user license agreement (EULA) within the ModelAccessConfig . You are responsible for reviewing and complying with any applicable license terms and making sure they are acceptable for your use case before downloading or using a model.

s3DataTypestrings3_data_typestrs3DataTypeStringS3DataTypestringS3DataType*stringrequired#
Specifies the type of ML model data to deploy.
notes

If you choose S3Prefix , S3Uri identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix as part of the ML model data to deploy. A valid key name prefix identified by S3Uri always ends with a forward slash (/).

If you choose S3Object , S3Uri identifies an object that is the ML model data to deploy.

s3Uristrings3_uristrs3UriStringS3UristringS3Uri*stringrequired#
Specifies the S3 path of ML model data to deploy.