Ausführen von X-Ray-Daemon auf Amazon ECs - AWS X-Ray

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ausführen von X-Ray-Daemon auf Amazon ECs

Erstellen Sie in Amazon ECS ein Docker-Image, das den X-Ray-Daemon ausführt, laden Sie es in ein Docker-Image-Repository hoch und stellen Sie es dann in Ihrem Amazon ECS-Cluster bereit. Sie können Ihrer Anwendung über Port-Zuordnungen und Netzwerkmodus-Einstellungen in Ihrer Aufgabendefinitionsdatei die Kommunikation mit dem Daemon-Container ermöglichen.

Verwenden des offiziellen -Docker-Image

X-Ray stellt ein Docker-Container-Image auf Amazon ECR bereit, das Sie zusammen mit Ihrer Anwendung bereitstellen können. Weitere Informationen finden Sie unter Herunterladen des Daemons.

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

Entwickeln und Erstellen eines Docker-Images

Bei einer benutzerdefinierten Konfiguration müssen Sie möglicherweise ein eigenes Docker-Image definieren.

Fügen Sie Ihrer Aufgabenrolle verwaltete Richtlinien zu X-Ray hinzu, um dem Daemon die Berechtigung zum Hochladen von Trace-Daten zu X-Ray. Weitere Informationen finden Sie unter Dem Daemon die Erlaubnis geben, Daten an X-Ray zu senden.

Erstellen Sie mit einer der folgenden Dockerfiles ein Abbild, mit dem der Daemon ausführt wird.

Beispiel Dockerfile-Datei — 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
Anmerkung

Die Flags -t und -b sind erforderlich, um eine Bindungsadresse anzugeben, die den Loopback einer Multi-Container-Umgebung überwacht.

Beispiel Dockerfile-Datei — Ubuntu

Für Debian-Derivate müssen Sie auch Zertifikate installieren, die von einer Zertifizierungsstelle (Certificate Authority, CA) ausgegeben wurden, um Probleme beim Herunterladen des Installationsprogramms zu vermeiden.

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

In Ihrer Aufgabendefinition hängt die Konfiguration von dem Netzwerkmodus ab, den Sie tatsächlich nutzen. Brückennetzwerke sind die Standardeinstellung und können in Ihrer Standard-VPC verwendet werden. Stellen Sie in einem Bridge-Netzwerk dieAWS_XRAY_DAEMON_ADDRESS Umgebungsvariable ein, um dem X-Ray SDK mitzuteilen, auf welchen Container-Port verwiesen werden soll, und legen Sie den Host-Port fest. Sie können beispielsweise UDP-Port 2000 veröffentlichen und einen Link von Ihrem Anwendungs-Container zum Daemon-Container erstellen.

Beispiel Aufgabendefinition
{ "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" ] }

Wenn Sie Ihren Cluster im privaten Subnetz einer VPC ausführen, können Sie Ihren Containern mit dem awsvpc-Netzwerkmodus einer Elastic Network-Schnittstelle (ENI) zuweisen. Auf diese Weise können Sie die Nutzung von Links vermeiden. Lassen Sie den Host-Port in den Port-Zuordnungen, dem Link und der Umgebungsvariable AWS_XRAY_DAEMON_ADDRESS weg.

Beispiel VPC-Aufgabendefinition
{ "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 } ] } ] }

Konfigurieren Sie die Befehlszeilenoptionen in der Amazon ECS-Konsole

Befehlszeilenoptionen überschreiben Konflikte in der Konfigurationsdatei Ihres Abbildes. Befehlszeilenoptionen werden normalerweise für lokale Tests verwendet, können aber auch aus praktischen Gründen beim Festlegen von Umgebungsvariablen oder zur Steuerung des Startvorgangs verwendet werden.

Durch Hinzufügen von Befehlszeilenoptionen aktualisieren Sie den Docker CMD, der an den Container übergeben wird. Weitere Informationen finden Sie in der Referenz zu docker run.

So legen Sie eine Befehlszeilenoption fest
  1. Öffnen Sie die klassische Amazon-EC-Amazon-EC-Amazon-EC-Amazon-EC https://console.aws.amazon.com/ecs/

  2. Wählen Sie auf der Navigationsleiste die Region aus, in der Ihre Aufgabendefinition enthalten ist.

  3. Wählen Sie im Navigationsbereich Task Definitions aus.

  4. Aktivieren Sie auf der Seite Task Definitions das Kontrollkästchen links neben der Aufgabendefinition, die Sie überarbeiten möchten, und wählen Sie dann Create new revision aus.

  5. Wählen Sie auf der Seite Create new revision of Task Definition (Neue Revision der Aufgabendefinition erstellen) den Container aus.

  6. Fügen Sie im Abschnitt ENVIRONMENT Ihre durch Komma getrennte Liste von Befehlszeilenoptionen zum Feld Command hinzu.

  7. Wählen Sie Update (Aktualisieren).

  8. Überprüfen Sie die Informationen und wählen Sie dann Create aus.

Das folgende Beispiel zeigt, wie eine durch Kommas getrennte Befehlszeilenoption für die Option RoleARN geschrieben wird. DieRoleARN Option nimmt die angegebene IAM-Rolle an, um Segmente auf ein anderes Konto hochzuladen.

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

Weitere Informationen zu den verfügbaren Befehlszeilenoptionen in X-Ray finden Sie unter Configuring theAWS X-Ray Daemon.