Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save brevityinmotion/44e752c6c70c0afb5b51c3e0e68a596e to your computer and use it in GitHub Desktop.
Save brevityinmotion/44e752c6c70c0afb5b51c3e0e68a596e to your computer and use it in GitHub Desktop.
Example script to generate a callback script to run
def generateScriptStepFunctions(programName, taskToken, operationName):
secretName = 'exampleSecretsManager'
regionName = 'us-east-1'
secretRetrieved = brevitycore.core.get_secret(secretName,regionName)
secretjson = json.loads(secretRetrieved)
awsAccessKeyId = secretjson['AWS_ACCESS_KEY_ID']
awsSecretKey = secretjson['AWS_SECRET_ACCESS_KEY']
stateInput = '{"program":"' + programName + '","operation":"' + operationName + '","statusCode":200}'
fileBuffer = io.StringIO()
fileContents = f"""#!/bin/bash
export AWS_ACCESS_KEY_ID={awsAccessKeyId}
export AWS_SECRET_ACCESS_KEY={awsSecretKey}
export AWS_DEFAULT_REGION=us-east-1
aws stepfunctions send-task-success --task-token {taskToken} --task-output '{stateInput}'"""
fileBuffer.write(fileContents)
objectBuffer = io.BytesIO(fileBuffer.getvalue().encode())
# Upload file to S3
object_name = 'stepfunctions-' + programName + '.sh'
object_path = 'run/' + programName + '/' + object_name
status = brevitycore.core.upload_object(objectBuffer,inputBucketName,object_path)
fileBuffer.close()
objectBuffer.close()
return status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment