version: 0.2 phases: install: runtime-versions: python: 3.8 commands: # Upgrade AWS CLI to the latest version - pip install --upgrade --force-reinstall botocore boto3 awscli build: commands: # Create the Model Registry if needed. This code will run when the CodePipeline is provisioned first time on the creation of SageMake project - | python setup.py \ --sagemaker-project-id "$SAGEMAKER_PROJECT_ID" --sagemaker-project-name "$SAGEMAKER_PROJECT_NAME" \ --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME" \ --staging-accounts "$STAGING_ACCOUNT_LIST" \ --prod-accounts "$PROD_ACCOUNT_LIST" \ --env-name "$ENV_NAME" --env-type "$ENV_TYPE" \ --multi-account-deployment "$MULTI_ACCOUNT_DEPLOYMENT" # Setup the staging and production configuration files for CloufFormation template with the model endpoint - | python build.py \ --sagemaker-project-id "$SAGEMAKER_PROJECT_ID" --sagemaker-project-name "$SAGEMAKER_PROJECT_NAME" \ --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME" \ --staging-config-name "$STAGING_CONFIG_NAME" --prod-config-name "$PROD_CONFIG_NAME" \ --sagemaker-execution-role-staging-name "$SAGEMAKER_EXECUTION_ROLE_STAGING_NAME" \ --sagemaker-execution-role-prod-name "$SAGEMAKER_EXECUTION_ROLE_PROD_NAME" \ --staging-accounts "$STAGING_ACCOUNT_LIST" \ --prod-accounts "$PROD_ACCOUNT_LIST" \ --env-name "$ENV_NAME" \ --ebs-kms-key-arn "$SAGEMAKER_EBS_KMS_KEY_ARN" \ --env-type-staging-name "$ENV_TYPE_STAGING_NAME" \ --env-type-prod-name "$ENV_TYPE_PROD_NAME" \ --multi-account-deployment "$MULTI_ACCOUNT_DEPLOYMENT" # Package the CloudFormation template defined in cfn-sm-endpoint-template.yml in the seed source code repository. - aws cloudformation package --template ${CFN_TEMPLATE_NAME}-template.yaml --s3-bucket $ARTIFACT_BUCKET --output-template ${CFN_TEMPLATE_NAME}.yaml # Print the files to verify contents - cat ${STAGING_CONFIG_NAME}.json - cat ${PROD_CONFIG_NAME}.json artifacts: files: - ${CFN_TEMPLATE_NAME}.yaml - ${STAGING_CONFIG_NAME}.json - ${PROD_CONFIG_NAME}.json