

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejecución del daemon de X-Ray en Amazon ECS
<a name="xray-daemon-ecs"></a>

**nota**  
Aviso de SDK/Daemon mantenimiento de X-Ray: el 25 de febrero de 2026, el AWS X-Ray SDKs/Daemon entrará en modo de mantenimiento, donde AWS se limitarán las versiones de X-Ray SDK y Daemon para abordar únicamente los problemas de seguridad. Para obtener más información sobre la cronología del soporte, consulte [Cronología de X-Ray SDK y Daemon Support](xray-sdk-daemon-timeline.md). Recomendamos migrar a. OpenTelemetry Para obtener más información sobre la migración a OpenTelemetry, consulte [Migración de una instrumentación de rayos X a una instrumentación](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html). OpenTelemetry 

En Amazon ECS, cree una imagen de Docker que ejecute el daemon de X-Ray, cárguelo en el repositorio de imágenes de Docker y luego impleméntelo en su clúster de Amazon ECS. Puede utilizar mapeos de puertos y la configuración del modo de red en el archivo de definición de tareas para permitir que la aplicación se comunique con el contenedor del demonio.

## Uso de la imagen de Docker oficial de la
<a name="xray-daemon-ecs-image"></a>

X-Ray proporciona una [imagen del contenedor](https://gallery.ecr.aws/xray/aws-xray-daemon) de Docker en Amazon ECR que puede implementar junto con la aplicación. Para obtener más información, consulte [Descarga del daemon](xray-daemon.md#xray-daemon-downloading).

**Example Definición de tarea**  

```
    {
      "name": "xray-daemon",
      "image": "amazon/aws-xray-daemon",
      "cpu": 32,
      "memoryReservation": 256,
      "portMappings" : [
          {
              "hostPort": 0,
              "containerPort": 2000,
              "protocol": "udp"
          }
       ]
    }
```

## Creación y compilación de una imagen de Docker
<a name="xray-daemon-ecs-build"></a>

Si desea realizar una configuración personalizada, es posible que tenga que definir su propia imagen de Docker.

Añada políticas administradas al rol de tarea para conceder permiso al daemon para cargar datos de rastro en X-Ray. Para obtener más información, consulte [Permiso para el envío de datos a X-Ray desde el daemon](xray-daemon.md#xray-daemon-permissions).

Utilice uno de los siguientes Dockerfiles para crear una imagen que ejecute el demonio.

**Example Dockerfile: Amazon Linux**  

```
FROM amazonlinux
RUN yum install -y unzip
RUN curl -o daemon.zip https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip
RUN unzip daemon.zip && cp xray /usr/bin/xray
ENTRYPOINT ["/usr/bin/xray", "-t", "0.0.0.0:2000", "-b", "0.0.0.0:2000"]
EXPOSE 2000/udp
EXPOSE 2000/tcp
```

**nota**  
Las marcas `-t` y `-b` son necesarias para especificar una dirección de enlace que escuche el bucle invertido de un entorno con varios contenedores.

**Example Dockerfile: Ubuntu**  
Para los derivados de Debian, tendrá que instalar certificados de una autoridad de certificación (CA) para evitar problemas al descargar el instalador.  

```
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y --force-yes --no-install-recommends apt-transport-https curl ca-certificates wget && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
RUN wget https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.deb
RUN dpkg -i aws-xray-daemon-3.x.deb
ENTRYPOINT ["/usr/bin/xray", "--bind=0.0.0.0:2000", "--bind-tcp=0.0.0.0:2000"]
EXPOSE 2000/udp
EXPOSE 2000/tcp
```

En la definición de tarea, la configuración depende del modo de red que se utilice. El modo de red puente es la opción predeterminada y se puede utilizar en la VPC predeterminada. En una red en modo puente, establezca la variable de entorno `AWS_XRAY_DAEMON_ADDRESS` para indicar al SDK de X-Ray a qué puerto del contenedor se ha de hacer referencia y establezca el puerto de host. Por ejemplo, podría publicar el puerto UDP 2000 y crear un enlace desde el contenedor de la aplicación hasta el contenedor del demonio. 

**Example Definición de tarea**  

```
    {
      "name": "xray-daemon",
      "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/xray-daemon",
      "cpu": 32,
      "memoryReservation": 256,
      "portMappings" : [
          {
              "hostPort": 0,
              "containerPort": 2000,
              "protocol": "udp"
          }
       ]
    },
    {
      "name": "scorekeep-api",
      "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/scorekeep-api",
      "cpu": 192,
      "memoryReservation": 512,
      "environment": [
          { "name" : "AWS_REGION", "value" : "us-east-2" },
          { "name" : "NOTIFICATION_TOPIC", "value" : "arn:aws:sns:us-east-2:123456789012:scorekeep-notifications" },
          { "name" : "AWS_XRAY_DAEMON_ADDRESS", "value" : "xray-daemon:2000" }
      ],
      "portMappings" : [
          {
              "hostPort": 5000,
              "containerPort": 5000
          }
      ],
      "links": [
        "xray-daemon"
      ]
    }
```

Si ejecuta el clúster en la subred privada de una VPC, puede utilizar el [modo de red `awsvpc`](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) para asociar una interfaz de red elástica (ENI) a los contenedores. De este modo, puede evitar utilizar enlaces. Omita el puerto de host en los mapeos de puertos, el enlace y la variable de entorno `AWS_XRAY_DAEMON_ADDRESS`.

**Example Definición de tarea de VPC**  

```
{
    "family": "scorekeep",
    "networkMode":"awsvpc",
    "containerDefinitions": [
        {
          "name": "xray-daemon",
          "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/xray-daemon",
          "cpu": 32,
          "memoryReservation": 256,
          "portMappings" : [
              {
                  "containerPort": 2000,
                  "protocol": "udp"
              }
          ]
        },
        {
            "name": "scorekeep-api",
            "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/scorekeep-api",
            "cpu": 192,
            "memoryReservation": 512,
            "environment": [
                { "name" : "AWS_REGION", "value" : "us-east-2" },
                { "name" : "NOTIFICATION_TOPIC", "value" : "arn:aws:sns:us-east-2:123456789012:scorekeep-notifications" }
            ],
            "portMappings" : [
                {
                    "containerPort": 5000
                }
            ]
        }
    ]
}
```

## Configuración de las opciones de línea de comandos en la consola de Amazon ECS
<a name="xray-daemon-ecs-cmdline"></a>

Las opciones de línea de comandos anulan cualquier valor que presente algún conflicto del archivo de configuración de la imagen. Las opciones de línea de comandos se suelen utilizar para pruebas locales, pero también se pueden utilizar para mayor comodidad al establecer variables de entorno o con el fin de controlar el proceso de inicio. 

Al añadir opciones de línea de comandos, se actualiza el `CMD` de Docker que se pasa al contenedor. Para obtener más información, consulte [Docker run reference](https://docs.docker.com/engine/reference/run/#overriding-dockerfile-image-defaults).

**Para establecer una opción de línea de comandos**

1. Abra la consola clásica de Amazon ECS en [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/).

1. En la barra de navegación, seleccione la región que contiene la definición de tarea.

1. En el panel de navegación, elija **Task Definitions**.

1. En la página **Task Definitions**, seleccione la casilla situada a la izquierda de la definición de tarea que revisar y seleccione **Create new revision**.

1. En la página **Create new revision of Task Definition (Crear nueva revisión de definición de tarea)**, seleccione el contenedor.

1. En la sección **ENVIRONMENT (ENTORNO)**, añada al campo **Command (Comando)** la lista de opciones de línea de comandos separadas por comas.

1. Elija **Actualizar**.

1. Verifique la información y seleccione **Create**.

En el ejemplo siguiente se muestra cómo escribir una opción de línea de comandos separada por comas para la opción `RoleARN`. La opción `RoleARN` asume el rol de IAM especificado para cargar segmentos en una cuenta diferente.

**Example**  

```
--role-arn, arn:aws:iam::123456789012:role/xray-cross-account
```

Para obtener más información sobre las opciones de línea de comandos disponibles en X-Ray, consulte [Configuración del AWS X-Ray Daemon](xray-daemon-configuration.md).