Class: AWSCDK::Sagemaker::CfnEndpointConfigProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
sagemaker/cfn_endpoint_config_props.rb

Overview

Properties for defining a CfnEndpointConfig.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(production_variants:, async_inference_config: nil, data_capture_config: nil, enable_network_isolation: nil, endpoint_config_name: nil, execution_role_arn: nil, explainer_config: nil, kms_key_id: nil, shadow_production_variants: nil, tags: nil, vpc_config: nil) ⇒ CfnEndpointConfigProps

Returns a new instance of CfnEndpointConfigProps.

Parameters:



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'sagemaker/cfn_endpoint_config_props.rb', line 20

def initialize(production_variants:, async_inference_config: nil, data_capture_config: nil, enable_network_isolation: nil, endpoint_config_name: nil, execution_role_arn: nil, explainer_config: nil, kms_key_id: nil, shadow_production_variants: nil, tags: nil, vpc_config: nil)
  @production_variants = production_variants
  Jsii::Type.check_type(@production_variants, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnLlByb2R1Y3Rpb25WYXJpYW50UHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "productionVariants")
  @async_inference_config = async_inference_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnEndpointConfig::AsyncInferenceConfigProperty.new(**async_inference_config.transform_keys(&:to_sym)) : async_inference_config
  Jsii::Type.check_type(@async_inference_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcuQXN5bmNJbmZlcmVuY2VDb25maWdQcm9wZXJ0eSJ9XX19")), "asyncInferenceConfig") unless @async_inference_config.nil?
  @data_capture_config = data_capture_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnEndpointConfig::DataCaptureConfigProperty.new(**data_capture_config.transform_keys(&:to_sym)) : data_capture_config
  Jsii::Type.check_type(@data_capture_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcuRGF0YUNhcHR1cmVDb25maWdQcm9wZXJ0eSJ9XX19")), "dataCaptureConfig") unless @data_capture_config.nil?
  @enable_network_isolation = enable_network_isolation
  Jsii::Type.check_type(@enable_network_isolation, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "enableNetworkIsolation") unless @enable_network_isolation.nil?
  @endpoint_config_name = endpoint_config_name
  Jsii::Type.check_type(@endpoint_config_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "endpointConfigName") unless @endpoint_config_name.nil?
  @execution_role_arn = execution_role_arn
  Jsii::Type.check_type(@execution_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "executionRoleArn") unless @execution_role_arn.nil?
  @explainer_config = explainer_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnEndpointConfig::ExplainerConfigProperty.new(**explainer_config.transform_keys(&:to_sym)) : explainer_config
  Jsii::Type.check_type(@explainer_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcuRXhwbGFpbmVyQ29uZmlnUHJvcGVydHkifV19fQ==")), "explainerConfig") unless @explainer_config.nil?
  @kms_key_id = kms_key_id
  Jsii::Type.check_type(@kms_key_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "kmsKeyId") unless @kms_key_id.nil?
  @shadow_production_variants = shadow_production_variants
  Jsii::Type.check_type(@shadow_production_variants, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnLlByb2R1Y3Rpb25WYXJpYW50UHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "shadowProductionVariants") unless @shadow_production_variants.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @vpc_config = vpc_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnEndpointConfig::VPCConfigProperty.new(**vpc_config.transform_keys(&:to_sym)) : vpc_config
  Jsii::Type.check_type(@vpc_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcuVnBjQ29uZmlnUHJvcGVydHkifV19fQ==")), "vpcConfig") unless @vpc_config.nil?
end

Instance Attribute Details

#async_inference_configAWSCDK::IResolvable, ... (readonly)

Specifies configuration for how an endpoint performs asynchronous inference.



54
55
56
# File 'sagemaker/cfn_endpoint_config_props.rb', line 54

def async_inference_config
  @async_inference_config
end

#data_capture_configAWSCDK::IResolvable, ... (readonly)

Specifies how to capture endpoint data for model monitor.

The data capture configuration applies to all production variants hosted at the endpoint.



61
62
63
# File 'sagemaker/cfn_endpoint_config_props.rb', line 61

def data_capture_config
  @data_capture_config
end

#enable_network_isolationBoolean, ... (readonly)



64
65
66
# File 'sagemaker/cfn_endpoint_config_props.rb', line 64

def enable_network_isolation
  @enable_network_isolation
end

#endpoint_config_nameString? (readonly)

The name of the endpoint configuration.



69
70
71
# File 'sagemaker/cfn_endpoint_config_props.rb', line 69

def endpoint_config_name
  @endpoint_config_name
end

#execution_role_arnString? (readonly)



72
73
74
# File 'sagemaker/cfn_endpoint_config_props.rb', line 72

def execution_role_arn
  @execution_role_arn
end

#explainer_configAWSCDK::IResolvable, ... (readonly)

A parameter to activate explainers.



77
78
79
# File 'sagemaker/cfn_endpoint_config_props.rb', line 77

def explainer_config
  @explainer_config
end

#kms_key_idString? (readonly)

The Amazon Resource Name (ARN) of an AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint.

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
  • Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  • Alias name: alias/ExampleAlias
  • Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

The KMS key policy must grant permission to the IAM role that you specify in your CreateEndpoint , UpdateEndpoint requests. For more information, refer to the AWS Key Management Service section Using Key Policies in AWS KMS

Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a KmsKeyId when using an instance type with local storage. If any of the models that you specify in the ProductionVariants parameter use nitro-based instances with local storage, do not specify a value for the KmsKeyId parameter. If you specify a value for KmsKeyId when using any nitro-based instances with local storage, the call to CreateEndpointConfig fails.

For a list of instance types that support local instance storage, see Instance Store Volumes .

For more information about local instance storage encryption, see SSD Instance Store Volumes .



95
96
97
# File 'sagemaker/cfn_endpoint_config_props.rb', line 95

def kms_key_id
  @kms_key_id
end

#production_variantsAWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::Sagemaker::CfnEndpointConfig::ProductionVariantProperty> (readonly)

A list of ProductionVariant objects, one for each model that you want to host at this endpoint.



49
50
51
# File 'sagemaker/cfn_endpoint_config_props.rb', line 49

def production_variants
  @production_variants
end

#shadow_production_variantsAWSCDK::IResolvable, ... (readonly)

Array of ProductionVariant objects.

There is one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants . If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants .



102
103
104
# File 'sagemaker/cfn_endpoint_config_props.rb', line 102

def shadow_production_variants
  @shadow_production_variants
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

A list of key-value pairs to apply to this resource.

For more information, see Resource Tag and Using Cost Allocation Tags .



109
110
111
# File 'sagemaker/cfn_endpoint_config_props.rb', line 109

def tags
  @tags
end

#vpc_configAWSCDK::IResolvable, ... (readonly)



112
113
114
# File 'sagemaker/cfn_endpoint_config_props.rb', line 112

def vpc_config
  @vpc_config
end

Class Method Details

.jsii_propertiesObject



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'sagemaker/cfn_endpoint_config_props.rb', line 114

def self.jsii_properties
  {
    :production_variants => "productionVariants",
    :async_inference_config => "asyncInferenceConfig",
    :data_capture_config => "dataCaptureConfig",
    :enable_network_isolation => "enableNetworkIsolation",
    :endpoint_config_name => "endpointConfigName",
    :execution_role_arn => "executionRoleArn",
    :explainer_config => "explainerConfig",
    :kms_key_id => "kmsKeyId",
    :shadow_production_variants => "shadowProductionVariants",
    :tags => "tags",
    :vpc_config => "vpcConfig",
  }
end

Instance Method Details

#to_jsiiObject



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'sagemaker/cfn_endpoint_config_props.rb', line 130

def to_jsii
  result = {}
  result.merge!({
    "productionVariants" => @production_variants,
    "asyncInferenceConfig" => @async_inference_config,
    "dataCaptureConfig" => @data_capture_config,
    "enableNetworkIsolation" => @enable_network_isolation,
    "endpointConfigName" => @endpoint_config_name,
    "executionRoleArn" => @execution_role_arn,
    "explainerConfig" => @explainer_config,
    "kmsKeyId" => @kms_key_id,
    "shadowProductionVariants" => @shadow_production_variants,
    "tags" => @tags,
    "vpcConfig" => @vpc_config,
  })
  result.compact
end