Tarea de HTTP
Durante la ejecución de tu plan, puedes crear una tarea para enviar solicitudes HTTP a un punto de conexión de aplicaciones de terceros. Por ejemplo, cuando se ejecuta correctamente una tarea anterior, puedes enviar un mensaje HTTP a un punto de conexión designado con información de esa tarea.
En la Vista del plan, puedes crear tareas de HTTP para enviar una solicitud a los puntos de conexión antes o después de la ejecución de otras tareas. Además, puedes usar la tarea de HTTP para generar un conjunto de datos con respuesta de llamada de API que se pueda usar en el flujo de trabajo de Designer Cloud. Estas tareas se especifican en el panel de contexto derecho.
Una tarea HTTP es una solicitud entre Alteryx One Platform y otra aplicación. Estas solicitudes se entregan a través de HTTP y la aplicación receptora puede interpretarlas para adoptar medidas.
Nota
Tu aplicación receptora puede requerir que incluyas en la lista de aprobación el host y el número de puerto o la dirección IP de la plataforma. Consulta la documentación respecto de tu solicitud.
Una tarea HTTP es uno de los tipos de tareas disponibles en un plan. Para obtener más información, consulta la página Vista del plan.
Limitaciones
Para el conjunto de datos de entrada (Cargar configuración desde un conjunto de datos):
Filas: 10 000.
Tamaño de archivo: 1 GB.
Tamaño de fila: 100 MB.
Las solicitudes de HTTP tienen un límite de tiempo de espera de 30 segundos.
No se pueden utilizar certificados de seguridad personalizados.
Prerrequisitos
Requisitos de la aplicación receptora
Para enviar una solicitud HTTP a una aplicación objetivo, esta debe estar configurada a fin de recibir la solicitud:
Las solicitudes externas al dominio de la aplicación deben estar habilitadas.
Nota
Tu aplicación receptora puede requerir que incluyas en la lista de aprobación el host y el número de puerto o la dirección IP de la plataforma. Consulta la documentación respecto de tu solicitud.
Debes adquirir la URL del punto de conexión al que deseas enviar la solicitud HTTP.
Debes adquirir todos los encabezados HTTP que se deban insertar en cada solicitud HTTP.
Si se debe firmar la solicitud, se requiere una configuración adicional. Los detalles aparecen más adelante.
Crear una tarea
Arrastra y suelta la tarea HTTP desde el panel izquierdo hacia el lienzo del plan.
En el panel derecho, selecciona Tarea HTTP. Se muestra el panel de tareas HTTP.

Figura: Tarea HTTP
Campo | Descripción |
|---|---|
Método | Selecciona el método HTTP que se usará para entregar el mensaje. El método adecuado depende de la aplicación receptora. La mayoría de los casos prácticos requieren el método |
URL | URL donde la otra aplicación recibe la solicitud HTTP. |
Encabezados | Inserta encabezados de contenido HTTP como pares de clave-valor. Por ejemplo, si tu cuerpo está en formato JSON, debes incluir el siguiente encabezado: key: Content-Type value: application/json Nota Es posible que debas enviar un token de autenticación como el valor de la clave de |
Cuerpo | (Métodos de {"text":"My text message to the receiving application."}Sugerencia Como parte de los campos Cuerpo de la solicitud o Encabezado, puedes insertar referencias de metadatos a la definición del plan, la ejecución actual, las tareas ya ejecutadas en la ejecución y las fuentes de datos y datos de columna. Para obtener más información sobre los metadatos disponibles, consulta Referencias de metadatos del plan. |
Clave secreta | (Opcional) Se puede usar una clave secreta para verificar la carga útil de la solicitud. Este valor secreto se debe insertar en esta ubicación y se debe incluir como parte del código utilizado para procesar las solicitudes en la aplicación receptora. Inserta el valor secreto aquí como una cadena sin comillas. |
Validar certificado SSL | Cuando se establece en Nota Si debes enviar una solicitud a un punto de conexión que tenga un certificado vencido o no válido, debes deshabilitar la verificación SSL. |
Reintentar | Si el código de estado devuelto está fuera del rango 200-299, se considera que la tarea de HTTP falló. Cuando esta opción está habilitada, se vuelve a intentar la solicitud. Si la solicitud falla, este valor define la cantidad de veces que se debe volver a intentar la solicitud. Si se alcanza este número de reintentos sin éxito, la tarea falla. |
Crear un conjunto de datos a partir de respuesta | Cuando se establece en |
Configurar la tarea
Establece los parámetros obligatorios. Para obtener más información sobre los parámetros, consulta Vista del plan para tareas HTTP.
Puedes especificar la información de metadatos del plan en los valores de encabezado y en el cuerpo de la solicitud. Para obtener más información, consulta las Referencias de metadatos del plan.
Para probar la conexión, haz clic en Probar. Se muestra un mensaje de éxito.
Sugerencia
El código de estado
200indica que la prueba se realizó correctamente.Sugerencia
Puedes utilizar el método GET con fines de prueba. Una solicitud GET no cambia los datos en la plataforma objetivo; sin embargo, puede permitirte especificar elementos en el cuerpo de la solicitud.
Para agregar la tarea, haz clic en Guardar.
Cambiar nombre de tarea
Para cambiar el nombre de la tarea, haz clic en el menú Más > Editar en el panel derecho.
Sugerencia
Un nombre apropiado puede incluir el punto de conexión de la plataforma objetivo y el método, como también los propósitos de la tarea en tu plan.
Eliminar tarea
Para eliminar la tarea, haz clic en el menú Más > Eliminar. Confirma que deseas eliminar la tarea.
Aviso
No se puede deshacer este paso.
Referencias de metadatos del plan
En el mensaje de tus otras tareas, puedes consultar los metadatos sobre el plan, sus tareas y la ejecución. Para obtener más información, consulta las Referencias de metadatos del plan.
Ejemplos
Mensaje en el canal de Slack
Sugerencia
En la actualidad, las tareas de Slack son una característica del producto compatible.
Puedes crear una tarea HTTP para enviar un mensaje de texto al canal de Slack que elijas.
Configura la instalación de Slack para recibir mensajes HTTP:
Si es necesario, crea un canal de Slack para recibir los mensajes.
Crea una aplicación.
Activa los mensajes HTTP entrantes en tu aplicación.
Especifica el canal en el que recibirás los mensajes entrantes.
Copia la URL de la solicitud HTTP entrante desde la instrucción cURL.
Parámetro | Descripción |
|---|---|
Nombre | Este nombre solo aparece en Alteryx One. |
Método | Selecciona el método |
URL | Pega la URL que copiaste de Slack. |
Encabezados | Copia los encabezados de contenido del comando cURL de Slack: key: Content-Type value: application/json |
Cuerpo | {"text":"Your job has completed."} |
Haz clic en Probar para validar que esta tarea funciona.
Ejecuta una tarea y revisa el canal de Slack para ver si aparece un mensaje.
Planificar ejemplos de metadatos
Puedes consultar la información de los metadatos desde la definición del plan y la ejecución actual del plan como parte de la solicitud de la tarea HTTP.
Notas:
Solo puedes insertar referencias de metadatos en las tareas que ya se realizaron en la ejecución del plan antes de que comience la tarea HTTP.
Se hace referencia a cada tarea en la ejecución actual mediante un código de dos letras. Ejemplo:
{{$http_xx.name}}
Una referencia de metadatos del plan se crea mediante la siguiente sintaxis. En el cuadro de texto apropiado, ingresa uno de los siguientes valores:
Sugerencia
Comienza escribiendo $, que proporciona acceso a un árbol de menú de referencias de metadatos por cada uno de los tipos de referencia de metadatos. La sintaxis final aparece arriba.
Planes:
Información sobre los metadatos de la definición del plan o de la ejecución actual del plan:
{{$planEl siguiente cuerpo de solicitud contiene referencias al nombre del plan, al identificador de ejecución del plan y al flujo que se acaba de ejecutar:
{"text":"Plan: {{$plan.name}}
RunId: {{$plan.runId}}
Flow: {{$flow_7p.name}}
Success."}El siguiente cuerpo de solicitud contiene información sobre la ejecución del plan en la forma de marcas de tiempo:
{"text":"Plan: {{$plan.name}}
RunId: {{$plan.runId}}
- plan start: {{$plan.startTime}}
Running time: {{$plan.duration}}
Times:
- last task start: {{$flow_7p.startTime}}
- last task end: {{$flow_7p.endTime}}
"}Puedes consultar la información de una tarea HTTP que ya se realizó:
{"text":"{{$http_qg.name}} returned {{$http_qg.statusCode}}."} Para obtener más información, consulta Referencias de metadatos del plan.
Ingresar entradas de metadatos a la función en la nube
En este ejemplo, se muestra cómo puedes utilizar una tarea de HTTP para entregar metadatos del plan a las funciones de AWS Lambda. Se podría utilizar un enfoque similar en cuanto a las funciones de Google Cloud.
En este caso, el valor rowCount de la ejecución de la tarea de flujo se entrega mediante la tarea de HTTP a una función de AWS Lambda.
Pasos generales:
Define el plan.
Tarea de flujo: ejecuta el flujo a fin de generar las salidas necesarias para la función Lambda.
Tarea HTTP: genera una solicitud HTTP cuyo cuerpo incluye una referencia a la variable de metadatos rowCount. Cuerpo de la solicitud:
{ "rowCount": "{{$flow_7p['My Flow Name'].output['My output name'].rowCount}}" }Funciones AWS Lambda: el siguiente es un pseudocódigo para Lambda:
import json def lambda_handler(event, context): httpTaskBody = json.loads(event["body"]) rowCount = httpTaskBody["rowCount"] return { 'statusCode': 200, 'body': json.dumps(rowCount) }Funciones de Google Cloud: el siguiente es un pseudocódigo para las funciones de Google Cloud:
def get_row_count(request): request_json = request.get_json() if request_json and 'rowCount' in request_json: rowCount = request_json['rowCount'] return rowCount return 'No rowCount attribute provided'
Crear un conjunto de datos con respuesta de la API para el flujo de trabajo de Designer Cloud
Usa la tarea de HTTP en Plans para leer y producir conjuntos de datos con respuestas de llamadas de API que se puedan usar de forma natural en el flujo de trabajo de Designer Cloud.
Parámetro | Descripción |
|---|---|
Nombre | Este nombre solo aparece en Alteryx One. |
Método | Campo obligatorio. Selecciona el método |
URL | Campo obligatorio. URL donde la otra aplicación recibe la solicitud HTTP. Ejemplo: |
Encabezados | Encabezados de contenido HTTP como pares clave-valor en formato JSON. {
"X-Custom-Header": "value",
"X-Parametrized-Header": "${wf1.id}"
} |
Cuerpo | El cuerpo de la solicitud presentada a la solicitud receptora. Puede contener {"text":"My text message to the receiving application."} |
Pasos generales:
Crea un flujo de trabajo con tu entrada.
Crea y ejecuta un plan con una tarea de HTTP para generar un conjunto de datos.
Asegúrate de deseleccionar la casilla de verificación Eliminar conjunto de datos con respuesta de llamada de la API y establece la tarea para conservar el conjunto de datos.
En Designer Cloud, usa el conjunto de datos generado en el paso anterior para crear un flujo de trabajo a partir de la respuesta de la API.
Al seleccionar la casilla de verificación Cargar configuración desde un conjunto de datos, puedes cargar una configuración (con todos los parámetros) desde el conjunto de datos de salida de la tarea del flujo de trabajo anterior.
Atención
Consulta la sección Limitaciones para los límites del Conjunto de datos de entrada.
En Plan, agrega el flujo de trabajo como una tarea posterior para una tarea de HTTP ya existente. Modifica el Plan para usar la salida de la tarea de HTTP (especificada en el paso 1) como entrada del flujo de trabajo de Designer Cloud.
Puedes programar el Plan ahora mismo. Esta configuración realiza una llamada a la API, la respuesta se pasa al flujo de trabajo de Designer Cloud y se ejecuta. El resultado final está disponible como de costumbre.
Verificar firmas
Aviso
Según la aplicación objetivo, la implementación de la verificación de firmas puede requerir las habilidades de un desarrollador.
De forma opcional, puedes configurar la plataforma para firmar las solicitudes HTTP. Las solicitudes firmadas garantizan que se envíen las solicitudes desde la plataforma, en lugar de un tercero.
A continuación, puedes revisar cómo se crea la firma para que puedas configurar la aplicación receptora a fin de procesar correctamente la firma y la solicitud relacionada.
Encabezado de la firma
Las solicitudes HTTP se firman insertando el encabezado X-Webhook-Signature en ella. Estas firmas tienen el siguiente formato:
X-Webhook-Signature: t=<timestamp>,sha256=<signature>
en el que:
<timestamp>: marca de tiempo cuando se envió la firma. El valor está en tiempo UNIX.<signature>: firma SHA256. La plataforma genera esta firma utilizando un código de autenticación de mensajes basado en hash (HMAC) con SHA-256.
Puedes encontrar más información sobre estos valores a continuación.
Ejemplo:
X-Webhook-Signature: t=1568818215724,sha256=55fa71b2e391cd3ccba8413fb51ad16984a38edb3cccfe81f381c4b8197ee07a
Comprobar herramientas de la aplicación
Según la aplicación, es posible que debas completar uno de los siguientes conjuntos de tareas para verificar las firmas de las tareas:
Nota
Podría ser necesario incluir la plataforma en la lista de aprobación de la aplicación. Consulta la documentación de la aplicación para conocer más detalles.
Es posible que debas crear una codificación personalizada para la aplicación. A continuación, puedes revisar los detalles sobre cómo hacerlo, incluido un ejemplo de JavaScript.
Procesar solicitudes firmadas
El valor de marca de tiempo (t=<timestamp>) aparece al principio del valor del encabezado para evitar los ataques de repetición, en los que un atacante podría interceptar una carga válida y su firma, y volver a transmitirlos.
Para evitar esos ataques, se incluye una marca de fecha y hora en el encabezado de la firma y también se incrusta en la carga firmada.
Ya que la marca de tiempo es parte de la carga firmada, un atacante no puede cambiar el valor de la marca de tiempo sin invalidar la firma.
Si la firma es válida, pero la marca de fecha y hora es demasiado antigua, puedes rechazar la solicitud.
Por ejemplo, si recibes una solicitud con una marca de tiempo que corresponde a una fecha de hace una hora, probablemente deberías rechazar la solicitud.
Para obtener más información sobre los ataques de repetición, consulta https://en.wikipedia.org/wiki/Replay_attack.
La firma de la tarea incluye, como parte de su valor hash, los siguientes elementos:
La clave secreta (ingresada arriba)
El valor de la marca de tiempo
La solicitud de datos:
(POST/PUT/PATCH): el cuerpo de la solicitud
(GET/DELETE): URL de la solicitud
Divide el encabezado X-Webhook-Signature:
Divide los valores usando el carácter , como separador.
Divide cada una de las partes usando el carácter =.
Extrae los valores de la marca de tiempo y la firma. Del ejemplo anterior:
marca de tiempo:
1568818215724firma:
55fa71b2e391cd3ccba8413fb51ad16984a38edb3cccfe81f381c4b8197ee07a
En la aplicación receptora, puedes volver a computar la firma para verificar que la solicitud se envió desde la plataforma.
Concatenar la marca de fecha y hora, el carácter de punto . y el cuerpo de la solicitud (métodos POST/PUT/PATCH) o la URL (métodos GET/DELETE).
Supongamos que el ejemplo anterior es la firma de una solicitud
POSTy el cuerpo de la solicitud estest. El valor concatenado es el siguiente:1568818215724.test
Ahora puedes computar el código de autenticación HMAC en la aplicación receptora. En el siguiente ejemplo de JavaScript, el valor de la clave secreta es
mySecret:const crypto = require('crypto'); const message = '1568818215724.test'; // as defined above const hmac = crypto.createHmac('sha256', 'mySecret'); hmac.update(message) const expectedSignature = hmac.digest('hex');
Se deben comparar el valor devuelto por el código con el valor incluido como la firma en el encabezado X-Webhook-Signature:
Si los valores no coinciden, rechaza la solicitud.
Si los valores coinciden, calcula la diferencia entre la marca de tiempo actual y la del encabezado. Si la diferencia está fuera de tu límite permitido, rechaza la solicitud.
De lo contrario, procesa la solicitud con normalidad en tu aplicación.
Cargar configuración de HTTP desde un conjunto de datos
En caso de que necesites crear una solicitud de API dinámica o varias solicitudes, puedes usar Designer Cloud para definir una salida con la configuración y pasar esta salida a la tarea de HTTP en Plans.
Para definir una salida con la configuración y usarla para la tarea de HTTP, sigue estos pasos:
Crea un flujo de trabajo en Designer Cloud. Para obtener más información, consulta Crear flujos de trabajo.
En el flujo de trabajo, establece un formato de archivo de salida como CSV que contenga las siguientes columnas (los nombres no distinguen entre mayúsculas y minúsculas):
Método (cadena, valores: GET|POST|DELETE|PUT),
URL (cadena, la URL de solicitud),
Encabezados (cadena, la lista de encabezados con valores en un formato {“Name”: “Value”, “Name”: “Value”,...}),
Cuerpo (cadena).
Ve a Plans y crea un plan.
Agrega una tarea de Designer Cloud y selecciona el flujo de trabajo recién creado.
Agrega una tarea de HTTP después de la tarea de Designer Cloud y conéctala con una línea de conector.
En la configuración de HTTP, selecciona la casilla de verificación Cargar configuración desde un conjunto de datos y la casilla de verificación Cargar configuración desde un conjunto de datos.
Pulsa el botón Seleccionar conjunto de datos de entrada.
Elige la tarea de Designer Cloud y sus datos de salida con la configuración HTTP.
Selecciona Confirmar.
La casilla de verificación Crear un conjunto de datos a partir de respuesta se seleccionará automáticamente. Puedes personalizar el nombre del conjunto de datos y ejecutar el Plan.
Nota
Cada fila del archivo de salida de configuración lleva a una solicitud separada. La respuesta de cada solicitud se agregará como una fila en el conjunto de datos de salida.
Usar la herramienta Respuesta HTTP como entrada para la tarea posterior
Una vez que hayas configurado la tarea de HTTP para crear un conjunto de datos a partir de una respuesta, puedes usar este conjunto de datos como entrada para las tareas posteriores.
Para usar el conjunto de datos como entrada a una tarea posterior, sigue estos pasos:
En la configuración de HTTP, selecciona la casilla de verificación Crear un conjunto de datos a partir de respuesta.
Agrega una tarea de Designer Cloud después de la tarea de HTTP y conéctala con una línea de conector.
En la tarea de Designer Cloud, selecciona el flujo de trabajo deseado.
En la lista de entradas de flujo de trabajo, selecciona Anular en la entrada que deseas anular con la respuesta HTTP.
Selecciona la tarea de HTTP y su salida.
Selecciona Confirmar y ejecuta el Plan.