Class CfnDomainPropsMixin
Creates a Domain .
Implements
Inherited Members
Namespace: Amazon.CDK.CfnPropertyMixins.AWS.SageMaker
Assembly: Amazon.CDK.CfnPropertyMixins.dll
Syntax (csharp)
public class CfnDomainPropsMixin : Mixin, IMixin
Syntax (vb)
Public Class CfnDomainPropsMixin Inherits Mixin Implements IMixin
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.CfnPropertyMixins.AWS.SageMaker;
using Amazon.CDK;
IMergeStrategy mergeStrategy;
var cfnDomainPropsMixin = new CfnDomainPropsMixin(new CfnDomainMixinProps {
AppNetworkAccessType = "appNetworkAccessType",
AppSecurityGroupManagement = "appSecurityGroupManagement",
AuthMode = "authMode",
DefaultSpaceSettings = new DefaultSpaceSettingsProperty {
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
SecurityGroups = new [] { "securityGroups" },
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
}
},
DefaultUserSettings = new UserSettingsProperty {
AutoMountHomeEfs = "autoMountHomeEfs",
CodeEditorAppSettings = new CodeEditorAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
DefaultLandingUri = "defaultLandingUri",
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
RSessionAppSettings = new RSessionAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
}
},
RStudioServerProAppSettings = new RStudioServerProAppSettingsProperty {
AccessStatus = "accessStatus",
UserGroup = "userGroup"
},
SecurityGroups = new [] { "securityGroups" },
SharingSettings = new SharingSettingsProperty {
NotebookOutputOption = "notebookOutputOption",
S3KmsKeyId = "s3KmsKeyId",
S3OutputPath = "s3OutputPath"
},
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
},
StudioWebPortal = "studioWebPortal",
StudioWebPortalSettings = new StudioWebPortalSettingsProperty {
HiddenAppTypes = new [] { "hiddenAppTypes" },
HiddenInstanceTypes = new [] { "hiddenInstanceTypes" },
HiddenMlTools = new [] { "hiddenMlTools" },
HiddenSageMakerImageVersionAliases = new [] { new HiddenSageMakerImageProperty {
SageMakerImageName = "sageMakerImageName",
VersionAliases = new [] { "versionAliases" }
} }
}
},
DomainName = "domainName",
DomainSettings = new DomainSettingsProperty {
DockerSettings = new DockerSettingsProperty {
EnableDockerAccess = "enableDockerAccess",
VpcOnlyTrustedAccounts = new [] { "vpcOnlyTrustedAccounts" }
},
ExecutionRoleIdentityConfig = "executionRoleIdentityConfig",
IpAddressType = "ipAddressType",
RStudioServerProDomainSettings = new RStudioServerProDomainSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
DomainExecutionRoleArn = "domainExecutionRoleArn",
RStudioConnectUrl = "rStudioConnectUrl",
RStudioPackageManagerUrl = "rStudioPackageManagerUrl"
},
SecurityGroupIds = new [] { "securityGroupIds" },
UnifiedStudioSettings = new UnifiedStudioSettingsProperty {
DomainAccountId = "domainAccountId",
DomainId = "domainId",
DomainRegion = "domainRegion",
EnvironmentId = "environmentId",
ProjectId = "projectId",
ProjectS3Path = "projectS3Path",
StudioWebPortalAccess = "studioWebPortalAccess"
}
},
KmsKeyId = "kmsKeyId",
SubnetIds = new [] { "subnetIds" },
TagPropagation = "tagPropagation",
Tags = new [] { new CfnTag {
Key = "key",
Value = "value"
} },
VpcId = "vpcId"
}, new CfnPropertyMixinOptions {
Strategy = mergeStrategy
});
Synopsis
Constructors
| CfnDomainPropsMixin(ICfnDomainMixinProps, ICfnPropertyMixinOptions?) | Create a mixin to apply properties to |
Properties
| CFN_PROPERTY_KEYS | Creates a |
| Props | Creates a |
| Strategy | Creates a |
Methods
| ApplyTo(IConstruct) | Apply the mixin properties to the construct. |
| Supports(IConstruct) | Check if this mixin supports the given construct. |
Constructors
CfnDomainPropsMixin(ICfnDomainMixinProps, ICfnPropertyMixinOptions?)
Create a mixin to apply properties to AWS::SageMaker::Domain.
public CfnDomainPropsMixin(ICfnDomainMixinProps props, ICfnPropertyMixinOptions? options = null)
Parameters
- props ICfnDomainMixinProps
L1 properties to apply.
- options ICfnPropertyMixinOptions
Mixin options.
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated
Properties
CFN_PROPERTY_KEYS
Creates a Domain .
protected static string[] CFN_PROPERTY_KEYS { get; }
Property Value
string[]
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.CfnPropertyMixins.AWS.SageMaker;
using Amazon.CDK;
IMergeStrategy mergeStrategy;
var cfnDomainPropsMixin = new CfnDomainPropsMixin(new CfnDomainMixinProps {
AppNetworkAccessType = "appNetworkAccessType",
AppSecurityGroupManagement = "appSecurityGroupManagement",
AuthMode = "authMode",
DefaultSpaceSettings = new DefaultSpaceSettingsProperty {
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
SecurityGroups = new [] { "securityGroups" },
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
}
},
DefaultUserSettings = new UserSettingsProperty {
AutoMountHomeEfs = "autoMountHomeEfs",
CodeEditorAppSettings = new CodeEditorAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
DefaultLandingUri = "defaultLandingUri",
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
RSessionAppSettings = new RSessionAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
}
},
RStudioServerProAppSettings = new RStudioServerProAppSettingsProperty {
AccessStatus = "accessStatus",
UserGroup = "userGroup"
},
SecurityGroups = new [] { "securityGroups" },
SharingSettings = new SharingSettingsProperty {
NotebookOutputOption = "notebookOutputOption",
S3KmsKeyId = "s3KmsKeyId",
S3OutputPath = "s3OutputPath"
},
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
},
StudioWebPortal = "studioWebPortal",
StudioWebPortalSettings = new StudioWebPortalSettingsProperty {
HiddenAppTypes = new [] { "hiddenAppTypes" },
HiddenInstanceTypes = new [] { "hiddenInstanceTypes" },
HiddenMlTools = new [] { "hiddenMlTools" },
HiddenSageMakerImageVersionAliases = new [] { new HiddenSageMakerImageProperty {
SageMakerImageName = "sageMakerImageName",
VersionAliases = new [] { "versionAliases" }
} }
}
},
DomainName = "domainName",
DomainSettings = new DomainSettingsProperty {
DockerSettings = new DockerSettingsProperty {
EnableDockerAccess = "enableDockerAccess",
VpcOnlyTrustedAccounts = new [] { "vpcOnlyTrustedAccounts" }
},
ExecutionRoleIdentityConfig = "executionRoleIdentityConfig",
IpAddressType = "ipAddressType",
RStudioServerProDomainSettings = new RStudioServerProDomainSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
DomainExecutionRoleArn = "domainExecutionRoleArn",
RStudioConnectUrl = "rStudioConnectUrl",
RStudioPackageManagerUrl = "rStudioPackageManagerUrl"
},
SecurityGroupIds = new [] { "securityGroupIds" },
UnifiedStudioSettings = new UnifiedStudioSettingsProperty {
DomainAccountId = "domainAccountId",
DomainId = "domainId",
DomainRegion = "domainRegion",
EnvironmentId = "environmentId",
ProjectId = "projectId",
ProjectS3Path = "projectS3Path",
StudioWebPortalAccess = "studioWebPortalAccess"
}
},
KmsKeyId = "kmsKeyId",
SubnetIds = new [] { "subnetIds" },
TagPropagation = "tagPropagation",
Tags = new [] { new CfnTag {
Key = "key",
Value = "value"
} },
VpcId = "vpcId"
}, new CfnPropertyMixinOptions {
Strategy = mergeStrategy
});
Props
Creates a Domain .
protected virtual ICfnDomainMixinProps Props { get; }
Property Value
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.CfnPropertyMixins.AWS.SageMaker;
using Amazon.CDK;
IMergeStrategy mergeStrategy;
var cfnDomainPropsMixin = new CfnDomainPropsMixin(new CfnDomainMixinProps {
AppNetworkAccessType = "appNetworkAccessType",
AppSecurityGroupManagement = "appSecurityGroupManagement",
AuthMode = "authMode",
DefaultSpaceSettings = new DefaultSpaceSettingsProperty {
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
SecurityGroups = new [] { "securityGroups" },
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
}
},
DefaultUserSettings = new UserSettingsProperty {
AutoMountHomeEfs = "autoMountHomeEfs",
CodeEditorAppSettings = new CodeEditorAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
DefaultLandingUri = "defaultLandingUri",
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
RSessionAppSettings = new RSessionAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
}
},
RStudioServerProAppSettings = new RStudioServerProAppSettingsProperty {
AccessStatus = "accessStatus",
UserGroup = "userGroup"
},
SecurityGroups = new [] { "securityGroups" },
SharingSettings = new SharingSettingsProperty {
NotebookOutputOption = "notebookOutputOption",
S3KmsKeyId = "s3KmsKeyId",
S3OutputPath = "s3OutputPath"
},
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
},
StudioWebPortal = "studioWebPortal",
StudioWebPortalSettings = new StudioWebPortalSettingsProperty {
HiddenAppTypes = new [] { "hiddenAppTypes" },
HiddenInstanceTypes = new [] { "hiddenInstanceTypes" },
HiddenMlTools = new [] { "hiddenMlTools" },
HiddenSageMakerImageVersionAliases = new [] { new HiddenSageMakerImageProperty {
SageMakerImageName = "sageMakerImageName",
VersionAliases = new [] { "versionAliases" }
} }
}
},
DomainName = "domainName",
DomainSettings = new DomainSettingsProperty {
DockerSettings = new DockerSettingsProperty {
EnableDockerAccess = "enableDockerAccess",
VpcOnlyTrustedAccounts = new [] { "vpcOnlyTrustedAccounts" }
},
ExecutionRoleIdentityConfig = "executionRoleIdentityConfig",
IpAddressType = "ipAddressType",
RStudioServerProDomainSettings = new RStudioServerProDomainSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
DomainExecutionRoleArn = "domainExecutionRoleArn",
RStudioConnectUrl = "rStudioConnectUrl",
RStudioPackageManagerUrl = "rStudioPackageManagerUrl"
},
SecurityGroupIds = new [] { "securityGroupIds" },
UnifiedStudioSettings = new UnifiedStudioSettingsProperty {
DomainAccountId = "domainAccountId",
DomainId = "domainId",
DomainRegion = "domainRegion",
EnvironmentId = "environmentId",
ProjectId = "projectId",
ProjectS3Path = "projectS3Path",
StudioWebPortalAccess = "studioWebPortalAccess"
}
},
KmsKeyId = "kmsKeyId",
SubnetIds = new [] { "subnetIds" },
TagPropagation = "tagPropagation",
Tags = new [] { new CfnTag {
Key = "key",
Value = "value"
} },
VpcId = "vpcId"
}, new CfnPropertyMixinOptions {
Strategy = mergeStrategy
});
Strategy
Creates a Domain .
protected virtual IMergeStrategy Strategy { get; }
Property Value
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.CfnPropertyMixins.AWS.SageMaker;
using Amazon.CDK;
IMergeStrategy mergeStrategy;
var cfnDomainPropsMixin = new CfnDomainPropsMixin(new CfnDomainMixinProps {
AppNetworkAccessType = "appNetworkAccessType",
AppSecurityGroupManagement = "appSecurityGroupManagement",
AuthMode = "authMode",
DefaultSpaceSettings = new DefaultSpaceSettingsProperty {
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
SecurityGroups = new [] { "securityGroups" },
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
}
},
DefaultUserSettings = new UserSettingsProperty {
AutoMountHomeEfs = "autoMountHomeEfs",
CodeEditorAppSettings = new CodeEditorAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
CustomFileSystemConfigs = new [] { new CustomFileSystemConfigProperty {
EfsFileSystemConfig = new EFSFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
FSxLustreFileSystemConfig = new FSxLustreFileSystemConfigProperty {
FileSystemId = "fileSystemId",
FileSystemPath = "fileSystemPath"
},
S3FileSystemConfig = new S3FileSystemConfigProperty {
MountPath = "mountPath",
S3Uri = "s3Uri"
}
} },
CustomPosixUserConfig = new CustomPosixUserConfigProperty {
Gid = 123,
Uid = 123
},
DefaultLandingUri = "defaultLandingUri",
ExecutionRole = "executionRole",
JupyterLabAppSettings = new JupyterLabAppSettingsProperty {
AppLifecycleManagement = new AppLifecycleManagementProperty {
IdleSettings = new IdleSettingsProperty {
IdleTimeoutInMinutes = 123,
LifecycleManagement = "lifecycleManagement",
MaxIdleTimeoutInMinutes = 123,
MinIdleTimeoutInMinutes = 123
}
},
BuiltInLifecycleConfigArn = "builtInLifecycleConfigArn",
CodeRepositories = new [] { new CodeRepositoryProperty {
RepositoryUrl = "repositoryUrl"
} },
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
JupyterServerAppSettings = new JupyterServerAppSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
KernelGatewayAppSettings = new KernelGatewayAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
LifecycleConfigArns = new [] { "lifecycleConfigArns" }
},
RSessionAppSettings = new RSessionAppSettingsProperty {
CustomImages = new [] { new CustomImageProperty {
AppImageConfigName = "appImageConfigName",
ImageName = "imageName",
ImageVersionNumber = 123
} },
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
}
},
RStudioServerProAppSettings = new RStudioServerProAppSettingsProperty {
AccessStatus = "accessStatus",
UserGroup = "userGroup"
},
SecurityGroups = new [] { "securityGroups" },
SharingSettings = new SharingSettingsProperty {
NotebookOutputOption = "notebookOutputOption",
S3KmsKeyId = "s3KmsKeyId",
S3OutputPath = "s3OutputPath"
},
SpaceStorageSettings = new DefaultSpaceStorageSettingsProperty {
DefaultEbsStorageSettings = new DefaultEbsStorageSettingsProperty {
DefaultEbsVolumeSizeInGb = 123,
MaximumEbsVolumeSizeInGb = 123
}
},
StudioWebPortal = "studioWebPortal",
StudioWebPortalSettings = new StudioWebPortalSettingsProperty {
HiddenAppTypes = new [] { "hiddenAppTypes" },
HiddenInstanceTypes = new [] { "hiddenInstanceTypes" },
HiddenMlTools = new [] { "hiddenMlTools" },
HiddenSageMakerImageVersionAliases = new [] { new HiddenSageMakerImageProperty {
SageMakerImageName = "sageMakerImageName",
VersionAliases = new [] { "versionAliases" }
} }
}
},
DomainName = "domainName",
DomainSettings = new DomainSettingsProperty {
DockerSettings = new DockerSettingsProperty {
EnableDockerAccess = "enableDockerAccess",
VpcOnlyTrustedAccounts = new [] { "vpcOnlyTrustedAccounts" }
},
ExecutionRoleIdentityConfig = "executionRoleIdentityConfig",
IpAddressType = "ipAddressType",
RStudioServerProDomainSettings = new RStudioServerProDomainSettingsProperty {
DefaultResourceSpec = new ResourceSpecProperty {
InstanceType = "instanceType",
LifecycleConfigArn = "lifecycleConfigArn",
SageMakerImageArn = "sageMakerImageArn",
SageMakerImageVersionArn = "sageMakerImageVersionArn"
},
DomainExecutionRoleArn = "domainExecutionRoleArn",
RStudioConnectUrl = "rStudioConnectUrl",
RStudioPackageManagerUrl = "rStudioPackageManagerUrl"
},
SecurityGroupIds = new [] { "securityGroupIds" },
UnifiedStudioSettings = new UnifiedStudioSettingsProperty {
DomainAccountId = "domainAccountId",
DomainId = "domainId",
DomainRegion = "domainRegion",
EnvironmentId = "environmentId",
ProjectId = "projectId",
ProjectS3Path = "projectS3Path",
StudioWebPortalAccess = "studioWebPortalAccess"
}
},
KmsKeyId = "kmsKeyId",
SubnetIds = new [] { "subnetIds" },
TagPropagation = "tagPropagation",
Tags = new [] { new CfnTag {
Key = "key",
Value = "value"
} },
VpcId = "vpcId"
}, new CfnPropertyMixinOptions {
Strategy = mergeStrategy
});
Methods
ApplyTo(IConstruct)
Apply the mixin properties to the construct.
public override void ApplyTo(IConstruct construct)
Parameters
- construct IConstruct
Overrides
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated
Supports(IConstruct)
Check if this mixin supports the given construct.
public override bool Supports(IConstruct construct)
Parameters
- construct IConstruct
Returns
Overrides
Remarks
A domain consists of an associated Amazon Elastic File System volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. Users within a domain can share notebook files and other artifacts with each other.
EFS storage
When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.
SageMaker AI uses the AWS Key Management Service ( AWS KMS) to encrypt the EFS volume attached to the domain with an AWS managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .
VPC configuration
All traffic between the domain and the Amazon EFS volume is through the specified VPC and subnets. For other traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to the domain. The following options are available:
When internet access is disabled, you won't be able to run a Amazon SageMaker AI Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker AI API and runtime or a NAT gateway and your security groups allow outbound connections.
NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a Amazon SageMaker AI Studio app successfully.
For more information, see Connect Amazon SageMaker AI Studio Notebooks to Resources in a VPC .
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html
CloudformationResource: AWS::SageMaker::Domain
Mixin: true
ExampleMetadata: fixture=_generated