get_data_pipeline_node_logs

DataPipelinesApi.get_data_pipeline_node_logs(id, executionid, node_name, servicename, role_id, logtype=None, action=None, logs=None, _request_timeout=None, _request_auth=None, _content_type=None, _headers=None, _host_index=0)

Trigger or fetch generated node log files

Primary integration is v2-downloadLogs. The working GET branch is logs=all (requires servicename=data-pipelines and logtype). It starts log file generation (Message “Triggered log file creation”) or returns PresignedURL when a file already exists. Execution must be in a terminal state (LOG-1006). logs=latest is declared in the spec but is not a working GET unless action is also a POST action (view-logs|generate-logs|download-logs), which then expects a POST body. Prefer POST for view/generate/download.

Parameters:
  • id (str) – DataPipelineId. (required)

  • executionid (str) – DataPipelineExecutionId (Glue workflow run id or AI flow execution id). (required)

  • node_name (str) – NodeName of the pipeline node. (required)

  • servicename (str) – Must be data-pipelines. (required)

  • role_id (str) – Amorphic role ID the request is authorized against. Must be a role the user belongs to. Lambda returns AUTH-1001 (HTTP 403 on v2-dataPipelines, HTTP 400 on v2-downloadLogs) if missing after gateway validation. (required)

  • logtype (str) – Required when logs=all. Glue nodes that are not etl_job/datasource typically need error.

  • action (str) – Not used for logs=all. If logs is not all, must be view-logs, generate-logs, or download-logs (IPV-1041).

  • logs (str) – all triggers/fetches generated files. latest is not implemented as a standalone GET.

  • _request_timeout (int, tuple(int, int), optional) – timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts.

  • _request_auth (dict, optional) – set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request.

  • _content_type (str, Optional) – force content-type for the request.

  • _headers (dict, optional) – set to override the headers for a single request; this effectively ignores the headers in the spec for a single request.

  • _host_index (int, optional) – set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request.

Return type:

GetDataPipelineNodeLogs200Response

Returns:

Returns the result object.

Request and Response Examples

HTTP: GET /data-pipelines/{id}/executions/{executionid}/nodes/{node_name}/logs

Success (HTTP 200)

Trigger message or PresignedURL for logs=all.

Log file creation started

{
  "Message": "Triggered log file creation"
}

Existing generated file

{
  "Message": "Presigned url returned",
  "PresignedURL": "https://s3.amazonaws.com/bucket/logs.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256"
}

Errors

Documented error codes: IPV-1052, IPV-1041, IPV-1008, DP-1021, AUTH-1010, LOG-1007.

HTTP 400

Invalid input. downloadLogs maps InvalidInputException and UnauthorizedUserException to HTTP 400.

Missing servicename

{
  "Message": "IPV-1052 - Missing mandatory parameter(s) servicename in queryStringParameters/pathParameters"
}

GET without logs=all and invalid action

{
  "Message": "IPV-1041 - Invalid parameter - action, allowed values/keys are [view-logs, generate-logs, download-logs]"
}

POST missing startTime/endTime

{
  "Message": "IPV-1008 - Invalid request body, missing key(s) - startTime/endTime"
}

Execution has not reached the node

{
  "Message": "DP-1021 - Data pipeline execution exec-1 is in running state and hasn't reached the node etl_orders yet."
}

No permission on the pipeline

{
  "Message": "AUTH-1010 - User user1 is not authorized to perform this operation"
}

HTTP 500

Log retrieval failed (LOG-1007 or other GenericFailureException).

Unhandled downloadLogs error

{
  "Message": "LOG-1007 - Unable to download log files, please try again later."
}