I have created a stepfunction, the definition for this statemachine below (step-function.json
) is used in terraform (using the syntax in this page:https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html)
The first time if I execute this statemachine, it will create a SageMaker batch transform job named example-jobname
, but I need to exeucute this statemachine everyday, then it will give me error "error": "SageMaker.ResourceInUseException", "cause": "Job name must be unique within an AWS account and region, and a job with this name already exists
.
The cause is because the job name is hard-coded as example-jobname
so if the state machine gets executed after the first time, since the job name needs to be unique, the task will fail, just wondering how I can add a string (something like ExecutionId at the end of the job name). Here's what I have tried:
I added
"executionId.$": "States.Format('somestring {}', $$.Execution.Id)"
in theParameters
section in the json file, but when I execute the task I got error"error": "States.Runtime", "cause": "An error occurred while executing the state 'SageMaker CreateTransformJob' (entered at the event id #2). The Parameters '{\"BatchStrategy\":\"SingleRecord\",..............\"executionId\":\"somestring arn:aws:states:us-east-1:xxxxx:execution:xxxxx-state-machine:xxxxxxxx72950\"}' could not be used to start the Task: [The field \"executionId\" is not supported by Step Functions]"}
I modified the jobname in the json file to
"TransformJobName": "example-jobname-States.Format('somestring {}', $$.Execution.Id)",
, when I execute the statemachine, it gave me error:"error": "SageMaker.AmazonSageMakerException", "cause": "2 validation errors detected: Value 'example-jobname-States.Format('somestring {}', $$.Execution.Id)' at 'transformJobName' failed to satisfy constraint: Member must satisfy regular expression pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}; Value 'example-jobname-States.Format('somestring {}', $$.Execution.Id)' at 'transformJobName' failed to satisfy constraint: Member must have length less than or equal to 63
I really run out of ideas, can someone help please? Many thanks.
"TransformJobName.$": "$$.Execution.Id",
but when I execute the statemachine, it gave me an error: ``` "error": "SageMaker.AmazonSageMakerException", "cause": "2 validation errors detected: Value 'arn:aws:states:us-east-1:xxx:execution:xxx-state-machine:070xxx3-xxxx-xxx-xxxx-xxxxxxxxx_xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx' at 'transformJobName' failed to satisfy constraint: Member must satisfy regular expression pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}; Value 'arn:xxxxxx' at 'transformJobName' failed to satisfy constraint: Member must have length less than or equal to 63``` – Jakie