Create or update Sagemaker Endpoint via CloudFormation

0

A wants to manage Sagemaker resources (such as models and endpoints) via CloudFormation. As part of their model deployment pipeline, they'd like to be able to create or update existing Sagemaker Endpoint with new model data. Customers wants to re-use the same endpoint name for a given workload.

Question:

How to express in CF a following logic:

  1. If Sagemaker endpoint with name "XYZ" doesn't exist in customer account, then create a new endpoint;
  2. If Sagemaker endpoint with name "XYZ" already exist, then update existing endpoint with new model data.
1개 답변
1
수락된 답변

This functionality of "UPSERT" type does not exist in CFn natively. You would need to use a Custom Resource to handle this logic. One alternative that is not exactly what you asked for but might be a decent compromise is to use a Parameter to supply the endpoint if it does exist. Then use a condition to check the value. If the paramter is blank then create an endpoint if not use the value supplied. I know this is not what you asked for but it allows you to avoid the custom resource solution.

Sample of similiar UPSERT example for a VPC:

Parameters :

  Vpc:
    Type: AWS::EC2::VPC::Id

Conditions:

  VpcNotSupplied: !Equals [!Ref Vpc, '']

Resources:

  NewVpc:
    Type: AWS::EC2::VPC
    Condition: VpcNotSupplied
    Properties:
      CidrBlock: 10.0.0.0/16

  SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Sample
      GroupName: Sample
      VpcId: !If [VpcNotSupplied, !Ref NewVpc, !Ref Vpc ]

Here the Vpc input parameter can be supplied if the VPC you wish to use already exists, left blank if you want to create a new one. The NewVPC resource uses the Condition to only create if the supplied Vpc parameter value is blank. The Security group then uses the same condition to decide whetehr to use and existing Vpc or the newly created one.

Hope this makes sense.

profile pictureAWS
danjhd
답변함 3년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인