in lambdas/functions/auto_approval/lambda.py [0:0]
def process_sns_message(sns_message: SNSEvent.sns_message):
token = sns_message["approval"]["token"]
pipeline = sns_message["approval"]["pipelineName"]
stage = sns_message["approval"]["stageName"]
approval_action = sns_message["approval"]["actionName"]
logger.info(f"Processing approval for {pipeline}")
pipeline_name = "".join(
[k[2] for k in ndiff(f"sagemaker-{project_id}-", pipeline) if k[0] == "+"]
)
try:
flag = ssm_client.get_parameter(
Name=f"/sagemaker-{project_name}/{pipeline_name}/AutoApprovalFlag"
)["Parameter"]["Value"]
flag = bool(flag)
except:
logger.exception("Failed to read SSM parameter, default to Manual Approval")
return
if not flag:
logger.info(f"Automatic approval for {pipeline} disabled")
return
try:
cp_client.put_approval_result(
pipelineName=pipeline,
stageName=stage,
actionName=approval_action,
result={
"summary": "Automatically approved by Lambda.",
"status": "Approved",
},
token=token,
)
logger.info(f"Automatic approval for {pipeline} successful")
except:
logger.exception("Failed to Automatically approve the pipeline")
return