es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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'

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede pasar las variables extraídas al input del comando start_execution utilizando el método json.dumps() para convertir las variables en una cadena JSON válida. Por ejemplo:

    import json
    
    response = step_function.start_execution(
                        stateMachineArn=state_machine_zip_files_arn,
                        input=json.dumps({ "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"})     
                        ) 
    

Comments are closed.