pipelines/components/aws/sagemaker/deploy/component.yaml

127 lines
5.7 KiB
YAML

name: SageMaker - Deploy Model
description: Deploy Machine Learning Model Endpoint in SageMaker
inputs:
- {name: region, type: String, description: The region for the SageMaker resource.}
- {name: endpoint_url, type: String, description: The URL to use when communicating
with the SageMaker service., default: ''}
- {name: assume_role, type: String, description: The ARN of an IAM role to assume
when connecting to SageMaker., default: ''}
- {name: tags, type: JsonObject, description: 'An array of key-value pairs, to categorize
AWS resources.', default: '{}'}
- {name: endpoint_name, type: String, description: The name of the endpoint., default: ''}
- {name: endpoint_config_name, type: String, description: 'The name of the endpoint
configuration. If an existing endpoint is being updated, a suffix is automatically
added if this config name exists.', default: ''}
- {name: endpoint_config_tags, type: JsonObject, description: 'An array of key-value
pairs, to categorize AWS resources.', default: '{}'}
- {name: resource_encryption_key, type: String, description: The AWS KMS key that
Amazon SageMaker uses to encrypt data on the storage volume attached to the ML
compute instance(s)., default: ''}
- name: update_endpoint
type: Bool
description: Update endpoint if it exists.
default: "False"
- {name: variant_name_1, type: String, description: The name of the production variant.,
default: variant-name-1}
- {name: model_name_1, type: String, description: The model name used for endpoint
deployment.}
- {name: initial_instance_count_1, type: Integer, description: Number of instances
to launch initially., default: '1'}
- {name: instance_type_1, type: String, description: The ML compute instance type.,
default: ml.m4.xlarge}
- {name: initial_variant_weight_1, type: String, description: Determines initial traffic
distribution among all of the models that you specify in the endpoint configuration.,
default: '1.0'}
- {name: accelerator_type_1, type: String, description: The size of the Elastic Inference
(EI) instance to use for the production variant., default: ''}
- {name: variant_name_2, type: String, description: The name of the production variant.,
default: variant-name-2}
- {name: model_name_2, type: String, description: The model name used for endpoint
deployment., default: ''}
- {name: initial_instance_count_2, type: Integer, description: Number of instances
to launch initially., default: '1'}
- {name: instance_type_2, type: String, description: The ML compute instance type.,
default: ml.m4.xlarge}
- {name: initial_variant_weight_2, type: String, description: Determines initial traffic
distribution among all of the models that you specify in the endpoint configuration.,
default: '1.0'}
- {name: accelerator_type_2, type: String, description: The size of the Elastic Inference
(EI) instance to use for the production variant., default: ''}
- {name: variant_name_3, type: String, description: The name of the production variant.,
default: variant-name-3}
- {name: model_name_3, type: String, description: The model name used for endpoint
deployment., default: ''}
- {name: initial_instance_count_3, type: Integer, description: Number of instances
to launch initially., default: '1'}
- {name: instance_type_3, type: String, description: The ML compute instance type.,
default: ml.m4.xlarge}
- {name: initial_variant_weight_3, type: String, description: Determines initial traffic
distribution among all of the models that you specify in the endpoint configuration.,
default: '1.0'}
- {name: accelerator_type_3, type: String, description: The size of the Elastic Inference
(EI) instance to use for the production variant., default: ''}
outputs:
- {name: endpoint_name, description: The created endpoint name.}
implementation:
container:
image: public.ecr.aws/kubeflow-on-aws/aws-sagemaker-kfp-components:1.1.2
command: [python3]
args:
- deploy/src/sagemaker_deploy_component.py
- --region
- {inputValue: region}
- --endpoint_url
- {inputValue: endpoint_url}
- --assume_role
- {inputValue: assume_role}
- --tags
- {inputValue: tags}
- --endpoint_name
- {inputValue: endpoint_name}
- --endpoint_config_name
- {inputValue: endpoint_config_name}
- --endpoint_config_tags
- {inputValue: endpoint_config_tags}
- --resource_encryption_key
- {inputValue: resource_encryption_key}
- --update_endpoint
- {inputValue: update_endpoint}
- --variant_name_1
- {inputValue: variant_name_1}
- --model_name_1
- {inputValue: model_name_1}
- --initial_instance_count_1
- {inputValue: initial_instance_count_1}
- --instance_type_1
- {inputValue: instance_type_1}
- --initial_variant_weight_1
- {inputValue: initial_variant_weight_1}
- --accelerator_type_1
- {inputValue: accelerator_type_1}
- --variant_name_2
- {inputValue: variant_name_2}
- --model_name_2
- {inputValue: model_name_2}
- --initial_instance_count_2
- {inputValue: initial_instance_count_2}
- --instance_type_2
- {inputValue: instance_type_2}
- --initial_variant_weight_2
- {inputValue: initial_variant_weight_2}
- --accelerator_type_2
- {inputValue: accelerator_type_2}
- --variant_name_3
- {inputValue: variant_name_3}
- --model_name_3
- {inputValue: model_name_3}
- --initial_instance_count_3
- {inputValue: initial_instance_count_3}
- --instance_type_3
- {inputValue: instance_type_3}
- --initial_variant_weight_3
- {inputValue: initial_variant_weight_3}
- --accelerator_type_3
- {inputValue: accelerator_type_3}
- --endpoint_name_output_path
- {outputPath: endpoint_name}