Tipo no válido para el parámetro de entrada (step_function.start_execution)
Tengo un comando start_execution para iniciar una función de paso a través de mi función lambda (Python):
if event['Records'][0]['eventName'] == 'INSERT':
filename, source, destination_bucket_name, filekey = parse_file_info_from_trigger(event)
response = client.start_execution(
stateMachineArn='aws:states:.......',
input = "{\"first_name\" : \"test\"}"
)
else:
logger.info(f'Esto no es un evento de inserción')
¿Cómo puedo pasar las variables extraídas anteriores (filename, source, etc.) en la entrada del comando start_execution?
Intenté esto:
response = step_function.start_execution(
stateMachineArn=state_machine_zip_files_arn,
input = str({ "filename": f"{filename}", "filetype": f"{filetype}", "unixtimestamp": f"{unixtimestamp}",
"masterclient": f"{masterclient}", "source_bucket_name": f"{source_bucket_name}" ,
"destination_bucket_name": f"{destination_bucket_name}", "filekey": f"{filekey}","this is a test string": f"teststring"})
)
Pero me da un error que dice:
No se puede iniciar la ejecución de la máquina de estado: se produjo un error (InvalidExecutionInput) al llamar a la operación StartExecution: Entrada de ejecución de máquina de estado no válida: 'Carácter inesperado (''' (código 39)): Se esperaba comillas dobles para comenzar el nombre del campo'
davy.ai
Puede pasar las variables extraídas al input del comando
start_execution
utilizando el métodojson.dumps()
para convertir las variables en una cadena JSON válida. Por ejemplo: