CDK — Как создать модель SageMaer с конфигурацией VPC

#amazon-sagemaker #aws-cdk

#amazon-sagemaker #aws-cdk

Вопрос:

Вопрос

Как создать модель SageMaker с конфигурацией VPC с помощью CDK?

У CfnModel CDK SageMaker SageMaker есть аргумент для защиты доступа к ресурсу. _ __________ Это требуется для того, чтобы не передавать трафик в Интернет. Ниже указан аргумент vpc_config, который ничего не говорит о том, как мы можем его настроить.

 vpc_config (Union[IResolvable, Forwardref, None]) 
AWS::SageMaker::Model.VpcConfig.
  

Фактическим классом является Conf-figproperty, и код находится в aws/cdk/libcdk_elasticsearch.py об установке CDK.

 class VpcConfigProperty:
    def __init__(
        self, *, security_group_ids: typing.List[str], subnets: typing.List[str]
    ) -> None:
        """
        :param security_group_ids: ``CfnModel.VpcConfigProperty.SecurityGroupIds``.
        :param subnets: ``CfnModel.VpcConfigProperty.Subnets``.
  

Ответ №1:

В настоящее время документация CDK и пример Github находятся на низком уровне. Им нужно очистить и предоставить лучшую документацию и примеры.

 from aws_cdk import (
    aws_ec2,
    aws_sagemaker,
    aws_iam,
    core
)

class HelloCdkStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        sagemaker_execution_role = aws_iam.Role(
            self,
            "SagemakerExecutionRole",
            assumed_by=aws_iam.ServicePrincipal("sagemaker.amazonaws.com")
        )

        sagemaker_vpc = aws_ec2.Vpc(
            self,
            "Vpc",
            cidr="192.168.0.0/16"
        )

        sagemaker_security_group = aws_ec2.SecurityGroup(
            self,
            "SG",
            vpc=sagemaker_vpc
        )

        subnet_selection = sagemaker_vpc.select_subnets(
            subnet_type=aws_ec2.SubnetType.PRIVATE
        )

        vpc_config = aws_sagemaker.CfnModel.VpcConfigProperty(
            security_group_ids=[
                sagemaker_security_group.security_group_id
            ],
            # This is how you set the subnets for the SageMaker model
            subnets=subnet_selection.subnet_ids
        )

        sagemaker_model = aws_sagemaker.CfnModel(
            self,
            "SagemakerModel",
            execution_role_arn=sagemaker_execution_role.role_arn,
            containers=[aws_sagemaker.CfnModel.ContainerDefinitionProperty(
                image="123456789012.dkr.ecr.us-west-2.amazonaws.com/mymodel:latest"
            )],
            # This is how you setup vpc_config here
            vpc_config=vpc_config
        )