

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.

# DevOps Agent über Webhook aufrufen
<a name="configuring-capabilities-for-aws-devops-agent-invoking-devops-agent-through-webhook"></a>

Webhooks ermöglichen es externen Systemen, automatisch Agentenuntersuchungen auszulösen AWS DevOps . Dies ermöglicht die Integration mit Ticketsystemen, Überwachungstools und anderen Plattformen, die HTTP-Anfragen senden können, wenn Vorfälle auftreten.

## Voraussetzungen
<a name="prerequisites"></a>

Bevor Sie den Webhook-Zugriff konfigurieren, stellen Sie sicher, dass Sie über Folgendes verfügen:
+ Ein im Agent konfigurierter Agent-Space AWS DevOps 
+ Zugriff auf die AWS DevOps Agent-Konsole
+ Das externe System, das Webhook-Anfragen sendet

## Webhook-Typen
<a name="webhook-types"></a>

AWS DevOps Agent unterstützt die folgenden Arten von Webhooks:
+ **Integrationsspezifische Webhooks** — Werden automatisch generiert, wenn Sie Integrationen von Drittanbietern wie Dynatrace, Splunk, Datadog, New Relic oder Slack konfigurieren. ServiceNow Diese Webhooks sind der spezifischen Integration zugeordnet und verwenden Authentifizierungsmethoden, die vom Integrationstyp bestimmt werden
+ **Generische Webhooks** — Können manuell erstellt werden, um Untersuchungen aus beliebigen Quellen auszulösen, die nicht durch eine bestimmte Integration abgedeckt sind. Generische Webhooks verwenden derzeit die **HMAC-Authentifizierung** (Bearer-Token derzeit nicht verfügbar).
+ **Grafana-Alert-Webhooks** — Grafana kann Warnmeldungen über Webhook-Kontaktpunkte direkt an den AWS DevOps Agenten senden. Anweisungen zur Einrichtung, einschließlich einer benutzerdefinierten Benachrichtigungsvorlage, finden Sie unter [Grafana verbinden](connecting-telemetry-sources-connecting-grafana.md).

## Webhook-Authentifizierungsmethoden
<a name="webhook-authentication-methods"></a>

Die Authentifizierungsmethode für Ihren Webhook hängt davon ab, mit welcher Integration er verknüpft ist:

**HMAC-Authentifizierung** — Wird verwendet von:
+ Webhooks zur Dynatrace-Integration
+ Generische Webhooks (nicht mit einer bestimmten Drittanbieter-Integration verknüpft)

**Bearer-Token-Authentifizierung** — Wird verwendet von:
+ Webhooks zur Splunk-Integration
+ Webhooks zur Datadog-Integration
+ Webhooks zur Integration von New Relic
+ ServiceNow Webhooks für die Integration
+ Webhooks zur Integration von Slack

## Webhook-Zugriff konfigurieren
<a name="configuring-webhook-access"></a>

### Schritt 1: Navigieren Sie zur Webhook-Konfiguration
<a name="step-1-navigate-to-the-webhook-configuration"></a>

1. Melden Sie sich bei der AWS Management Console an und navigieren Sie zur AWS DevOps Agent-Konsole

1. Wählen Sie Ihren Agent Space aus

1. Gehen Sie zur Registerkarte **Funktionen**

1. **Klicken Sie im Abschnitt **Webhook** auf Configure**

### Schritt 2: Generieren Sie Webhook-Anmeldeinformationen
<a name="step-2-generate-webhook-credentials"></a>

**Für integrationsspezifische Webhooks:**

Webhooks werden automatisch generiert, wenn Sie die Konfiguration einer Drittanbieter-Integration abschließen. Die Webhook-Endpunkt-URL und die Anmeldeinformationen werden am Ende des Integrations-Setup-Prozesses bereitgestellt.

**Für generische Webhooks:**

1. Klicken Sie auf **Webhook generieren**

1. Das System generiert ein HMAC-Schlüsselpaar

1. Speichern Sie den generierten Schlüssel und das Geheimnis sicher — Sie können sie nicht erneut abrufen

1. Kopieren Sie die angegebene Webhook-Endpunkt-URL

### Schritt 3: Konfigurieren Sie Ihr externes System
<a name="step-3-configure-your-external-system"></a>

Verwenden Sie die Webhook-Endpunkt-URL und die Anmeldeinformationen, um Ihr externes System so zu konfigurieren, dass Anfragen an den AWS DevOps Agenten gesendet werden. Die spezifischen Konfigurationsschritte hängen von Ihrem externen System ab.

## Verwaltung von Webhook-Anmeldeinformationen
<a name="managing-webhook-credentials"></a>

**Anmeldeinformationen entfernen** **— Um Webhook-Anmeldeinformationen zu löschen, gehen Sie zum Abschnitt Webhook-Konfiguration und klicken Sie auf Entfernen.** Nach dem Entfernen der Anmeldeinformationen akzeptiert der Webhook-Endpunkt keine Anfragen mehr, bis Sie neue Anmeldeinformationen generieren.

**Anmeldeinformationen neu generieren** — Um neue Anmeldeinformationen zu generieren, entfernen Sie zuerst die vorhandenen Anmeldeinformationen und generieren Sie dann ein neues key pair oder Token.

## Den Webhook verwenden
<a name="using-the-webhook"></a>

### Webhook-Anforderungsformat
<a name="webhook-request-format"></a>

Um eine Untersuchung auszulösen, sollte Ihr externes System eine HTTP-POST-Anfrage an die Webhook-Endpunkt-URL senden.

**Für Version 1 (HMAC-Authentifizierung):**

Kopfzeilen:
+ `Content-Type: application/json`
+ `x-amzn-event-signature: <HMAC signature>`
+ `x-amzn-event-timestamp: <+%Y-%m-%dT%H:%M:%S.000Z>`

Die HMAC-Signatur wird generiert, indem Sie den Anforderungstext mit Ihrem geheimen Schlüssel unter Verwendung von SHA-256 signieren.

**Für Version 2 (Bearer-Token-Authentifizierung):**

Kopfzeilen:
+ `Content-Type: application/json`
+ `Authorization: Bearer <your-token>`

**Hauptteil der Anfrage:**

Der Hauptteil der Anfrage sollte Informationen über den Vorfall enthalten:

```
json

{
  "title": "Incident title",
  "severity": "high",
  "affectedResources": ["resource-id-1", "resource-id-2"],
  "timestamp": "2025-11-23T18:00:00Z",
  "description": "Detailed incident description",
  "data": {
    "metadata": {
        "region": "us-east-1",
        "environment": "production"
    }
  }
}
```

### Beispiel-Code
<a name="example-code"></a>

**Version 1 (HMAC-Authentifizierung) -: JavaScript**

```
const crypto = require('crypto');

// Webhook configuration
const webhookUrl = 'https://your-webhook-endpoint.amazonaws.com/invoke';
const webhookSecret = 'your-webhook-secret-key';

// Incident data
const incidentData = {  
    eventType: 'incident',
    incidentId: 'incident-123',
    action: 'created',
    priority: "HIGH",
    title: 'High CPU usage on production server',
    description: 'High CPU usage on production server host ABC in AWS account 1234 region us-east-1',
    timestamp: new Date().toISOString(),
    service: 'MyTestService',
    data: {
      metadata: {
        region: 'us-east-1',
        environment: 'production'
      }
    }
};

// Convert data to JSON string
const payload = JSON.stringify(incidentData);
const timestamp = new Date().toISOString();
const hmac = crypto.createHmac("sha256", webhookSecret);
hmac.update(`${timestamp}:${payload}`, "utf8");
const signature = hmac.digest("base64");

// Send the request
fetch(webhookUrl, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-amzn-event-timestamp': timestamp,
    'x-amzn-event-signature': signature
  },
  body: payload
})
.then(res => {
  console.log(`Status Code: ${res.status}`);
  return res.text();
})
.then(data => {
  console.log('Response:', data);
})
.catch(error => {
  console.error('Error:', error);
});
```

**Version 1 (HMAC-Authentifizierung) — cURL:**

```
#!/bin/bash

# Configuration
WEBHOOK_URL="https://event-ai.us-east-1.api.aws/webhook/generic/YOUR_WEBHOOK_ID"
SECRET="YOUR_WEBHOOK_SECRET"

# Create payload
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)
INCIDENT_ID="test-alert-$(date +%s)"

PAYLOAD=$(cat <<EOF
{
"eventType": "incident",
"incidentId": "$INCIDENT_ID",
"action": "created",
"priority": "HIGH",
"title": "Test Alert",
"description": "Test alert description",
"service": "TestService",
"timestamp": "$TIMESTAMP"
}
EOF
)

# Generate HMAC signature
SIGNATURE=$(echo -n "${TIMESTAMP}:${PAYLOAD}" | openssl dgst -sha256 -hmac "$SECRET" -binary | base64)

# Send webhook
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "x-amzn-event-timestamp: $TIMESTAMP" \
-H "x-amzn-event-signature: $SIGNATURE" \
-d "$PAYLOAD"
```

**Version 2 (Bearer-Token-Authentifizierung) -: JavaScript**

```
function sendEventToWebhook(webhookUrl, secret) {
  const timestamp = new Date().toISOString();
  
  const payload = {
    eventType: 'incident',
    incidentId: 'incident-123',
    action: 'created',
    priority: "HIGH",
    title: 'Test Alert',
    description: 'Test description',
    timestamp: timestamp,
    service: 'TestService',
    data: {}
  };

  fetch(webhookUrl, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-amzn-event-timestamp": timestamp,
      "Authorization": `Bearer ${secret}`,  // Fixed: template literal
    },
    body: JSON.stringify(payload),
  });
}
```

**Version 2 (Bearer-Token-Authentifizierung) — cURL:**

```
#!/bin/bash

# Configuration
WEBHOOK_URL="https://event-ai.us-east-1.api.aws/webhook/generic/YOUR_WEBHOOK_ID"
SECRET="YOUR_WEBHOOK_SECRET"

# Create payload
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)
INCIDENT_ID="test-alert-$(date +%s)"

PAYLOAD=$(cat <<EOF
{
"eventType": "incident",
"incidentId": "$INCIDENT_ID",
"action": "created",
"priority": "HIGH",
"title": "Test Alert",
"description": "Test alert description",
"service": "TestService",
"timestamp": "$TIMESTAMP"
}
EOF
)

# Send webhook
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "x-amzn-event-timestamp: $TIMESTAMP" \
-H "Authorization: Bearer $SECRET" \
-d "$PAYLOAD"
```

## Fehlerbehebung bei Webhooks
<a name="troubleshooting-webhooks"></a>

### Wenn Sie keine 200 erhalten
<a name="if-you-do-not-receive-a-200"></a>

Eine 200 und eine Meldung wie Webhook erhalten bedeuten, dass die Authentifizierung bestanden wurde und die Nachricht in die Warteschlange gestellt wurde, damit das System sie überprüfen und verarbeiten kann. Wenn Sie keine 200, sondern eine 4xx erhalten, stimmt höchstwahrscheinlich etwas mit der Authentifizierung oder den Headern nicht. Versuchen Sie, manuell zu senden, indem Sie die Curl-Optionen verwenden, um die Authentifizierung zu debuggen.

### Wenn Sie eine 200 erhalten, aber eine Untersuchung nicht beginnt
<a name="if-you-receive-a-200-but-an-investigation-does-not-start"></a>

Die wahrscheinliche Ursache ist eine falsch formatierte Nutzlast.

1. Vergewissern Sie sich, dass sowohl der Zeitstempel als auch die Vorfall-ID aktualisiert und eindeutig sind. Doppelte Nachrichten werden dedupliziert.

1. Prüfen Sie, ob die Nachricht gültig ist (JSON)

1. Prüfen Sie, ob das Format korrekt ist

### Wenn Sie eine 200 erhalten und die Untersuchung sofort abgebrochen wird
<a name="if-you-receive-a-200-and-investigation-is-immediately-cancelled"></a>

Höchstwahrscheinlich haben Sie das Limit für den Monat erreicht. Bitte wenden Sie sich an Ihren AWS Ansprechpartner, um gegebenenfalls eine Änderung des Ratenlimits zu beantragen.

## Verwandte Themen
<a name="related-topics"></a>
+ [Einen Agentenbereich erstellen](getting-started-with-aws-devops-agent-creating-an-agent-space.md)
+ [Was ist eine DevOps Agent-Web-App?](about-aws-devops-agent-what-is-a-devops-agent-web-app.md)
+ [DevOps IAM-Berechtigungen für Agenten](aws-devops-agent-security-devops-agent-iam-permissions.md)