View a markdown version of this page

Creación de una entrega de registros para los registros de ejecución de la API de REST - Amazon API Gateway

Creación de una entrega de registros para los registros de ejecución de la API de REST

Puede enrutar los registros de ejecución a los grupos de registros de Registros de CloudWatch propios, buckets de Amazon S3 o transmisiones de Firehose. Para ello, cree una entrega de Registros de Amazon CloudWatch. Esto implica tres pasos: creación de un origen de entrega, creación de un destino de entrega y vincularlos a una entrega.

Requisitos previos

Antes de crear una entrega de registros, asegúrese de disponer de lo siguiente:

  • El registro de ejecución está habilitado en la etapa de la API de REST. Establezca loggingLevel en ERROR o INFO. Si el registro no está habilitado, se produce un error en la creación del origen de entrega.

  • Un recurso de destino: un grupo de registro de Registros de CloudWatch, un bucket de Amazon S3 o una transmisión de Firehose de su propiedad.

  • Permisos para llamar a las API de entrega de Registros de Amazon CloudWatch. Para obtener más información, consulte Habilitación del registro de servicios de AWS en la Guía del usuario de Registros de Amazon CloudWatch.

Valores específicos de API Gateway para la entrega de Registros de Amazon CloudWatch

Al crear una entrega para los registros de ejecución de API Gateway, utilice los siguientes valores:

ARN de recurso

arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name}

Tipo de registro

EXECUTION_LOGS

Creación de una entrega de registros (AWS CLI)

En el siguiente ejemplo, se crea una entrega que envía los registros de ejecución desde una API de REST a un grupo de registros de Registros de CloudWatch que sea de su propiedad.

  1. Creación del origen de entrega

    Registre la API de REST como origen de entrega.

    aws logs put-delivery-source \ --name my-apigw-source \ --log-type EXECUTION_LOGS \ --resource-arn arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name}
  2. Creación del destino de la entrega

    Registre el grupo de registros como un destino de entrega.

    aws logs put-delivery-destination \ --name my-log-destination \ --delivery-destination-configuration "destinationResourceArn=arn:aws:logs:{region}:{account-id}:log-group:{log-group-name}"
  3. Creación de la entrega

    Enlace el origen al destino.

    aws logs create-delivery \ --delivery-source-name my-apigw-source \ --delivery-destination-arn arn:aws:logs:{region}:{account-id}:delivery-destination:my-log-destination

Para enviar registros a Amazon S3 o Firehose, especifique el ARN del recurso correspondiente en el comando put-delivery-destination. Para obtener más información acerca del flujo de trabajo de entrega de Registros de Amazon CloudWatch completo, consulte Habilitación de registros de servicios de AWS en la Guía del usuario de Registros de Amazon CloudWatch.

Para enviar registros a varios destinos, cree entregas adicionales con el mismo origen de entrega con destinos diferentes.

Campos de registro

Con la entrega de Registros de Amazon CloudWatch, los registros de ejecución incluyen campos estructurados que puede personalizar por destino. Están disponibles los siguientes campos:

  • resource_arn: el ARN de la etapa de la API

  • event_timestamp: la hora del evento de registro

  • api_id: el identificador de la API de REST

  • stage: el nombre de la etapa

  • resource_path: la ruta de recurso de la solicitud

  • http_method: el método HTTP

  • payload: el contenido del registro de ejecución (igual que el de los registros de ejecución estándar)

Puede seleccionar los campos que desea incluir y el formato de salida para cada destino mediante el parámetro --record-fields en create-delivery y el parámetro --output-format en put-delivery-destination.

Los formatos de salida disponibles dependen del destino:

  • Registros de CloudWatch: json, plain

  • Amazon S3: json, plain, w3c, parquet

  • Firehose: json, plain

Coincidencia con el resultado del registro de ejecución estándar

Si desea que el resultado de la entrega coincida con el registro de ejecución estándar (solo carga útil, sin campos adicionales), agregue --output-format "plain" a put-delivery-destination y --record-fields "payload" --field-delimiter "" a create-delivery.

Creación de una entrega de registros (CloudFormation)

Al ensamblar el ARN de la etapa para las plantillas de CloudFormation, use el siguiente patrón:

DeliverySource: Type: AWS::Logs::DeliverySource Properties: Name: my-apigw-source LogType: EXECUTION_LOGS ResourceArn: !Sub "arn:${AWS::Partition}:apigateway:${AWS::Region}:${AWS::AccountId}:/restapis/${MyApi}/stages/${MyStageName}"

Creación de una entrega de registros (consola de API Gateway)

Puede crear una entrega de registros desde la sección Registros y rastreo de la página de detalles de la etapa.

  1. Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway.

  2. Elija la API de REST y, a continuación, elija Etapas.

  3. Elegir una etapa.

  4. En la sección Registros y rastreo, en Destinos de entrega de registros, elija Agregar destino.

  5. Elija un tipo de destino (Registros de CloudWatch, Amazon S3 o Firehose) y especifique el recurso de destino.

  6. Seleccione Save.

importante

Debe habilitar el registro de ejecución en la etapa antes de poder agregar destinos de entrega. Si el registro está establecido en Desactivado, la configuración de entrega no genera registros.

nota

Para configurar los destinos de entrega entre cuentas, utilice la AWS CLI. Debe crear una política de destino de entrega en la cuenta de destino antes de crear la entrega en la cuenta de origen. Para obtener más información, consulte Ejemplo de entrega entre cuentas en la Guía del usuario de Registros de Amazon CloudWatch.