

Hinweis zum Ende des Supports: Am 20. Mai 2026 AWS endet der Support für AWS IoT Events. Nach dem 20. Mai 2026 können Sie nicht mehr auf die AWS IoT Events Konsole oder AWS IoT Events die Ressourcen zugreifen. Weitere Informationen finden Sie unter [AWS IoT Events Ende des Supports](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

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.

# Überwachung mit Alarmen in AWS IoT Events
<a name="iotevents-alarms"></a>

AWS IoT Events Mithilfe von Alarmen können Sie Ihre Daten auf Änderungen überwachen. Bei den Daten kann es sich um Kennzahlen handeln, die Sie für Ihre Ausrüstung und Prozesse messen. Sie können Alarme erstellen, die Benachrichtigungen senden, wenn ein Schwellenwert überschritten wird. Alarme helfen Ihnen dabei, Probleme zu erkennen, die Wartung zu rationalisieren und die Leistung Ihrer Geräte und Prozesse zu optimieren.

Alarme sind Beispiele von Alarmmodellen. Das Alarmmodell legt fest, was erkannt werden soll, wann Benachrichtigungen gesendet werden sollen, wer benachrichtigt wird und vieles mehr. Sie können auch eine oder mehrere [unterstützte Aktionen angeben, die ausgeführt werden](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-supported-actions.html), wenn sich der Alarmstatus ändert. AWS IoT Events leitet aus Ihren Daten abgeleitete [Eingabeattribute](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-detector-input.html) an die entsprechenden Alarme weiter. Wenn die Daten, die Sie überwachen, außerhalb des angegebenen Bereichs liegen, wird der Alarm ausgelöst. Sie können die Alarme auch bestätigen oder sie in den Schlummermodus versetzen.

## Arbeitet mit AWS IoT SiteWise
<a name="alarms-collaborations.title"></a>

Sie können AWS IoT Events Alarme verwenden, um die Eigenschaften von Vermögenswerten in zu überwachen AWS IoT SiteWise. AWS IoT SiteWise sendet Eigenschaftswerte von Vermögenswerten an AWS IoT Events Alarme. AWS IoT Events sendet den Alarmstatus an AWS IoT SiteWise.

AWS IoT SiteWise unterstützt auch externe Alarme. Sie können externe Alarme wählen, wenn Sie Alarme außerhalb von verwenden AWS IoT SiteWise und über eine Lösung verfügen, die Alarmstatusdaten zurückgibt. Der externe Alarm enthält eine Messeigenschaft, die die Alarmzustandsdaten aufnimmt.

AWS IoT SiteWise wertet den Status externer Alarme nicht aus. Außerdem können Sie einen externen Alarm nicht bestätigen oder deaktivieren, wenn sich der Alarmstatus ändert.

Sie können die SiteWise Überwachungsfunktion verwenden, um den Status externer Alarme in SiteWise Monitor-Portalen einzusehen.

Weitere Informationen finden Sie unter [Überwachen von Daten mit Alarmen](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/industrial-alarms.html) im *AWS IoT SiteWise Benutzerhandbuch* und [Überwachen mit Alarmen](https://docs.aws.amazon.com//iot-sitewise/latest/appguide/monitor-alarms.html) im *SiteWise Monitor-Anwendungshandbuch*.

## Bestätigen Sie den Ablauf
<a name="acknowledge-flow"></a>

Wenn Sie ein Alarmmodell erstellen, wählen Sie aus, ob der Bestätigungsfluss aktiviert werden soll. Wenn Sie den Bestätigungsfluss aktivieren, wird Ihr Team benachrichtigt, wenn sich der Alarmstatus ändert. Ihr Team kann den Alarm bestätigen und eine Notiz hinterlassen. Sie können beispielsweise die Informationen zum Alarm und die Maßnahmen, die Sie ergreifen werden, um das Problem zu beheben, angeben. Wenn die Daten, die Sie überwachen, außerhalb des angegebenen Bereichs liegen, wird der Alarm ausgelöst.

Alarme haben die folgenden Status:

`DISABLED`  
Wenn sich der Alarm im `DISABLED` Status befindet, ist er nicht bereit, Daten auszuwerten. Um den Alarm zu aktivieren, müssen Sie den Alarm in den `NORMAL` Status ändern.

`NORMAL`  
Wenn sich der Alarm im `NORMAL` Status befindet, ist er bereit, Daten auszuwerten.

`ACTIVE`  
Befindet sich der Alarm im `ACTIVE` Status, wird der Alarm ausgelöst. Die Daten, die Sie überwachen, liegen außerhalb des angegebenen Bereichs.

`ACKNOWLEDGED`  
Wenn sich der Alarm im `ACKNOWLEDGED` Status befindet, wurde der Alarm ausgelöst und Sie haben den Alarm bestätigt.

`LATCHED`  
Der Alarm wurde ausgelöst, aber Sie haben den Alarm nach einer gewissen Zeit nicht bestätigt. Der Alarm wechselt automatisch in den `NORMAL` Status.

`SNOOZE_DISABLED`  
Wenn sich der Alarm im `SNOOZE_DISABLED` Status befindet, ist der Alarm für einen bestimmten Zeitraum deaktiviert. Nach Ablauf der Schlummerzeit wechselt der Alarm automatisch in den `NORMAL` Status.

# Erstellen eines Alarmmodells in AWS IoT Events
<a name="create-alarm-model"></a>

Sie können AWS IoT Events Alarme verwenden, um Ihre Daten zu überwachen und sich benachrichtigen zu lassen, wenn ein Schwellenwert überschritten wird. Alarme stellen Parameter bereit, die Sie verwenden, um ein Alarmmodell zu erstellen oder zu konfigurieren. Sie können die AWS IoT Events Konsole oder AWS IoT Events API verwenden, um das Alarmmodell zu erstellen oder zu konfigurieren. Wenn Sie das Alarmmodell konfigurieren, werden Änderungen wirksam, sobald neue Daten eintreffen.

## Voraussetzungen
<a name="create-alarm-model-requirements"></a>

Die folgenden Anforderungen gelten, wenn Sie ein Alarmmodell erstellen.
+ Sie können ein Alarmmodell erstellen, um ein Eingabeattribut AWS IoT Events oder eine Anlageneigenschaft in zu überwachen AWS IoT SiteWise.
  + Wenn Sie ein Eingabeattribut in überwachen möchten AWS IoT Events, [Erstellen Sie eine Eingabe für Modelle in AWS IoT Events](create-input-overview.md) bevor Sie das Alarmmodell erstellen.
  + Wenn Sie sich dafür entscheiden, eine Anlageneigenschaft zu überwachen, müssen Sie AWS IoT SiteWise vor der [Erstellung des Alarmmodells ein Asset-Modell](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-asset-models.html) in erstellen.
+ Sie müssen über eine IAM-Rolle verfügen, die es Ihrem Alarm ermöglicht, Aktionen auszuführen und auf AWS Ressourcen zuzugreifen. Weitere Informationen finden Sie unter [Berechtigungen einrichten für AWS IoT Events](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-start.html).
+ Alle AWS Ressourcen, die in diesem Tutorial verwendet werden, müssen sich in derselben AWS Region befinden.

## Ein Alarmmodell (Konsole) erstellen
<a name="create-alarm-model-console"></a>

Im Folgenden wird gezeigt, wie Sie ein Alarmmodell zur Überwachung eines AWS IoT Events Attributs in der AWS IoT Events Konsole erstellen.

1. Melden Sie sich bei der [AWS IoT Events -Konsole](https://console.aws.amazon.com/iotevents/) an.

1. Wählen Sie im Navigationsbereich die Option **Alarmmodelle** aus.

1. Wählen Sie auf der Seite **Alarmmodelle** die Option **Alarmmodell erstellen** aus.

1. Gehen Sie im Abschnitt **Details zum Alarmmodell** wie folgt vor:

   1. Geben Sie einen eindeutigen Namen ein.

   1. (Optional) Geben Sie eine Beschreibung ein.

1. Gehen Sie im Abschnitt **Alarmziel** wie folgt vor:
**Wichtig**  
Wenn Sie sich für eine **AWS IoT SiteWise Anlageneigenschaft** entscheiden, müssen Sie in ein Asset-Modell erstellt haben AWS IoT SiteWise.

   1. Wählen Sie **das AWS IoT Events Eingabeattribut**.

   1. Wählen Sie die Eingabe aus.

   1. Wählen Sie den Eingabeattributschlüssel aus. Dieses Eingabeattribut wird als Schlüssel zum Erstellen des Alarms verwendet. AWS IoT Events leitet die mit diesem Schlüssel verknüpften Eingaben an den Alarm weiter.
**Wichtig**  
Wenn die Nutzlast der Eingabenachricht diesen Eingabeattributschlüssel nicht enthält oder wenn sich der Schlüssel nicht in demselben JSON-Pfad befindet, der im Schlüssel angegeben ist, schlägt die Eingabe in der Nachricht fehl. AWS IoT Events

1. Im Abschnitt **Schwellenwertdefinitionen** definieren Sie das Eingabeattribut, den Schwellenwert und den Vergleichsoperator, AWS IoT Events mit dem der Status des Alarms geändert wird.

   1. Wählen Sie **unter Eingabeattribut** das Attribut aus, das Sie überwachen möchten.

      Jedes Mal, wenn dieses Eingabeattribut neue Daten empfängt, werden diese ausgewertet, um den Status des Alarms zu bestimmen.

   1. Wählen Sie **unter Operator** den Vergleichsoperator aus. Der Operator vergleicht Ihr Eingabeattribut mit dem Schwellenwert für Ihr Attribut.

      Sie können aus diesen Optionen wählen: 
      + **> größer als**
      + **>= größer als oder gleich**
      + **< kleiner als**
      + **<= kleiner als oder gleich**
      + **= gleich**
      + **\$1 = nicht gleich**

   1. Geben Sie für den **Schwellenwert** eine Zahl ein, oder wählen Sie ein Attribut in den AWS IoT Events Eingaben aus. AWS IoT Events vergleicht diesen Wert mit dem Wert des von Ihnen ausgewählten Eingabeattributs. 

   1. (Optional) Verwenden Sie für **Schweregrad** eine Zahl, von der Ihr Team weiß, dass sie den Schweregrad dieses Alarms wiedergibt.

1. (Optional) Konfigurieren Sie im Abschnitt **Benachrichtigungseinstellungen** die Benachrichtigungseinstellungen für den Alarm.

   Sie können bis zu 10 Benachrichtigungen hinzufügen. Gehen Sie für **Benachrichtigung 1** wie folgt vor:

   1. Wählen Sie für **Protokoll** eine der folgenden Optionen aus:
      + **E-Mail und Text** — Der Alarm sendet eine SMS-Benachrichtigung und eine E-Mail-Benachrichtigung.
      + **E-Mail** — Der Alarm sendet eine E-Mail-Benachrichtigung.
      + **Text** — Der Alarm sendet eine SMS-Benachrichtigung.

   1. Geben Sie als **Absender** die E-Mail-Adresse an, an die Benachrichtigungen zu diesem Alarm gesendet werden können.

      Um Ihrer Absenderliste weitere E-Mail-Adressen hinzuzufügen, wählen Sie **Absender hinzufügen**. 

   1. (Optional) Wählen Sie **unter Empfänger** den Empfänger aus.

      Um Ihrer Empfängerliste weitere Benutzer hinzuzufügen, wählen Sie **Neuen Benutzer hinzufügen**. Sie müssen Ihrem IAM Identity Center-Shop neue Benutzer hinzufügen, bevor Sie sie zu Ihrem Alarmmodell hinzufügen können. Weitere Informationen finden Sie unter [Verwalten Sie den Zugriff von Alarmempfängern auf das IAM Identity Center in AWS IoT Events](sso-authorization-recipients.md).

   1. (Optional) Geben Sie **unter Zusätzliche benutzerdefinierte Nachricht** eine Nachricht ein, die beschreibt, was der Alarm erkennt und welche Maßnahmen die Empfänger ergreifen sollten.

1. Im Abschnitt **Instanz** können Sie alle Alarminstanzen aktivieren oder deaktivieren, die auf der Grundlage dieses Alarmmodells erstellt wurden.

1. Gehen Sie im Abschnitt **Erweiterte Einstellungen** wie folgt vor:

   1. Für den **Acknowledge-Flow** können Sie Benachrichtigungen aktivieren oder deaktivieren.
      + Wenn Sie **Aktiviert** wählen, erhalten Sie eine Benachrichtigung, wenn sich der Alarmstatus ändert. Sie müssen die Benachrichtigung bestätigen, bevor der Alarmstatus wieder normal werden kann.
      + Wenn Sie **Deaktiviert** wählen, ist keine Aktion erforderlich. Der Alarm wechselt automatisch in den Normalzustand, wenn die Messung in den angegebenen Bereich zurückkehrt.

      Weitere Informationen finden Sie unter [Bestätigen Sie den Ablauf](iotevents-alarms.md#acknowledge-flow).

   1. Wählen Sie für **Berechtigungen** eine der folgenden Optionen aus:
      + Sie können **eine neue Rolle anhand von AWS Richtlinienvorlagen erstellen** und AWS IoT Events automatisch eine IAM-Rolle für Sie erstellen. 
      + Sie können **eine vorhandene IAM-Rolle verwenden**, die es diesem Alarmmodell ermöglicht, Aktionen auszuführen und auf andere AWS Ressourcen zuzugreifen.

      Weitere Informationen finden Sie unter [Identitäts- und Zugriffsverwaltung für AWS IoT Events](https://docs.aws.amazon.com/iotevents/latest/developerguide/security-iam.html).

   1. Für **zusätzliche Benachrichtigungseinstellungen** können Sie Ihre AWS Lambda Funktion zur Verwaltung von Alarmbenachrichtigungen bearbeiten. Wählen Sie eine der folgenden Optionen für Ihre AWS Lambda Funktion:
      + **Neue AWS Lambda Funktion erstellen** — AWS IoT Events erstellt eine neue AWS Lambda Funktion für Sie.
      + **Eine bestehende AWS Lambda Funktion verwenden** — Verwenden Sie eine bestehende AWS Lambda Funktion, indem Sie einen AWS Lambda Funktionsnamen wählen. 

      Weitere Hinweise zu den möglichen Aktionen finden Sie unter[AWS IoT Events mit anderen AWS Diensten arbeiten](iotevents-other-aws-services.md).

   1. (Optional) Für die **Aktion Status festlegen** können Sie eine oder mehrere AWS IoT Events Aktionen hinzufügen, die ausgeführt werden sollen, wenn sich der Alarmstatus ändert.

1. (Optional) Sie können **Tags** hinzufügen, um Ihre Alarme zu verwalten. Weitere Informationen finden Sie unter [Markieren Ihrer AWS IoT Events -Ressourcen](https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html).

1. Wählen Sie **Erstellen** aus.

# Reagieren auf Alarme in AWS IoT Events
<a name="respond-to-alarms"></a>

Die effektive Reaktion auf Alarme ist ein wichtiger Aspekt der Verwaltung von IoT-Systemen mit AWS IoT Events. Erkunden Sie verschiedene Möglichkeiten zur Konfiguration und Handhabung von Alarmen, darunter die Einrichtung von Benachrichtigungskanälen, die Definition von Eskalationsverfahren und die Implementierung automatisierter Reaktionsmaßnahmen. Erfahren Sie, wie Sie differenzierte Alarmbedingungen erstellen, Warnmeldungen priorisieren und andere AWS Dienste integrieren, um ein reaktionsschnelles Alarmmanagementsystem für Ihre IoT-Anwendungen aufzubauen.

Wenn Sie den [Bestätigungsfluss aktiviert](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-alarms.html#acknowledge-flow) haben, erhalten Sie Benachrichtigungen, wenn sich der Alarmstatus ändert. Um auf den Alarm zu reagieren, können Sie den Alarm bestätigen, deaktivieren, aktivieren, zurücksetzen oder die Schlummerfunktion aktivieren.

------
#### [ Console ]

Im Folgenden wird gezeigt, wie Sie auf einen Alarm in der AWS IoT Events Konsole reagieren.

1. Melden Sie sich bei der [AWS IoT Events -Konsole](https://console.aws.amazon.com/iotevents/) an.

1. Wählen Sie im Navigationsbereich die Option **Alarmmodelle** aus.

1. Wählen Sie das Zielalarmmodell aus.

1. Wählen Sie im Bereich **Liste der Alarme** den Zielalarm aus.

1. Sie können unter **Aktionen** eine der folgenden Optionen wählen:
   + **Bestätigen** — Der Alarm wechselt in den `ACKNOWLEDGED` Status.
   + **Deaktivieren** — Der Alarm wechselt in den `DISABLED` Status.
   + **Aktivieren** — Der Alarm wechselt in den `NORMAL` Status.
   + **Reset** — Der Alarm wechselt in den `NORMAL` Status.
   + Schalten Sie die **Schlummerfunktion** ein und gehen Sie dann wie folgt vor:

     1. **Wählen Sie die **Schlummerlänge oder geben Sie eine benutzerdefinierte Schlummerlänge** ein.**

     1. Wählen Sie **Speichern**.

     Der Alarm wechselt in den Status `SNOOZE_DISABLED`

   Weitere Informationen zu den Alarmzuständen finden Sie unter[Bestätigen Sie den Ablauf](iotevents-alarms.md#acknowledge-flow).

------
#### [ API ]

Um auf einen oder mehrere Alarme zu reagieren, können Sie die folgenden AWS IoT Events API-Operationen verwenden:
+ [BatchAcknowledgeAlarm](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchAcknowledgeAlarm.html)
+ [BatchDisableAlarm](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchDisableAlarm.html)
+ [BatchEnableAlarm](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchEnableAlarm.html)
+ [BatchResetAlarm](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchResetAlarm.html)
+ [BatchSnoozeAlarm](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchSnoozeAlarm.html)

------

# Verwaltung von Alarmbenachrichtigungen in AWS IoT Events
<a name="lambda-support"></a>

AWS IoT Events lässt sich in Lambda integrieren und bietet benutzerdefinierte Funktionen zur Ereignisverarbeitung. In diesem Abschnitt wird untersucht, wie Sie Lambda-Funktionen in Ihren AWS IoT Events Detektormodellen verwenden, sodass Sie komplexe Logik ausführen, mit externen Diensten interagieren und eine ausgefeilte Ereignisbehandlung implementieren können.

AWS IoT Events verwendet eine Lambda-Funktion zur Verwaltung von Alarmbenachrichtigungen. Sie können die von bereitgestellte Lambda-Funktion verwenden AWS IoT Events oder eine neue erstellen.

**Topics**
+ [Erstellen einer Lambda-Funktion in AWS IoT Events](alarms-create-lambda.md)
+ [Verwenden der Lambda-Funktion von AWS IoT Events](use-alarm-notifications.md)
+ [Verwalten Sie den Zugriff von Alarmempfängern auf das IAM Identity Center in AWS IoT Events](sso-authorization-recipients.md)

# Erstellen einer Lambda-Funktion in AWS IoT Events
<a name="alarms-create-lambda"></a>

AWS IoT Events bietet eine Lambda-Funktion, die es Alarmen ermöglicht, E-Mail- und SMS-Benachrichtigungen zu senden und zu empfangen.

## Voraussetzungen
<a name="alarms-lambda-requirements"></a>

Die folgenden Anforderungen gelten, wenn Sie eine Lambda-Funktion für Alarme erstellen:
+ Wenn Ihr Alarm SMS-Benachrichtigungen sendet, stellen Sie sicher, dass Amazon SNS für die Zustellung von SMS-Nachrichten konfiguriert ist.
  + Weitere Informationen finden Sie in der folgenden Dokumentation:
    + [Mobiles Textnachrichten mit Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html) und [Originationsidentitäten für Amazon SNS SNS-SMS-Nachrichten im Amazon](https://docs.aws.amazon.com/sns/latest/dg/channels-sms-originating-identities.html) *Simple Notification* Service Developer Guide.
    + [Was ist AWS End User Messaging SMS?](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-sms-mms.html) im *AWS SMS Benutzerhandbuch*.
+ Wenn Ihr Alarm E-Mail- oder SMS-Benachrichtigungen sendet, benötigen Sie eine IAM-Rolle, die die Arbeit mit Amazon SES und Amazon SNS ermöglicht AWS Lambda .

  

  Beispiel für eine Richtlinie:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ses:GetIdentityVerificationAttributes",
                  "ses:SendEmail",
                  "ses:VerifyEmailIdentity"
              ],
              "Resource": "*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "sns:Publish",
                  "sns:OptInPhoneNumber",
                  "sns:CheckIfPhoneNumberIsOptedOut",
                  "sms-voice:DescribeOptedOutNumbers"
              ],
              "Resource": "*"
          },
          {
              "Effect": "Deny",
              "Action": "sns:Publish",
              "Resource": "arn:aws:sns:*:*:*"
          },
          {
            "Effect" : "Allow",
            "Action" : [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents"
            ],
            "Resource" : "*"
          }
      ]
  }
  ```

------
+ Sie müssen dieselbe AWS Region für AWS IoT Events sowohl als auch wählen AWS Lambda. Eine Liste der unterstützten Regionen finden Sie unter [AWS IoT Events Endpunkte und Kontingente und [AWS Lambda Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/lambda-service.html)](https://docs.aws.amazon.com/general/latest/gr/iot-events.html) in der. *Allgemeine Amazon Web Services-Referenz*

# Stellen Sie eine Lambda-Funktion für AWS IoT Events die Verwendung bereit CloudFormation
<a name="alarms-create-lambda-cfn"></a>

In diesem Tutorial wird eine CloudFormation Vorlage verwendet, um eine Lambda-Funktion bereitzustellen. Diese Vorlage erstellt automatisch eine IAM-Rolle, die es der Lambda-Funktion ermöglicht, mit Amazon SES und Amazon SNS zu arbeiten.

Im Folgenden wird gezeigt, wie Sie AWS Command Line Interface (AWS CLI) verwenden, um einen Stack zu erstellen. CloudFormation 

1. <a name="install-cli"></a>Führen Sie im Terminal Ihres Geräts den Befehl aus, `aws --version` um zu überprüfen, ob Sie den installiert haben AWS CLI. Weitere Informationen finden Sie unter [Installieren oder Aktualisieren auf die neueste Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) im *Benutzerhandbuch für AWS Command Line Interface *.

1. <a name="configure-cli"></a>Führen Sie den Vorgang aus`aws configure list`, um zu überprüfen, ob Sie das AWS CLI in der AWS Region konfiguriert haben, die alle Ihre AWS Ressourcen für dieses Tutorial enthält. Weitere Informationen finden Sie im *AWS Command Line Interface Benutzerhandbuch* unter [Einrichten und Anzeigen von Konfigurationseinstellungen mithilfe von Befehlen](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-methods)

1. Laden Sie die CloudFormation Vorlage [NotificationLambda.Template.Yaml.zip](samples/notificationLambda.template.yaml.zip) herunter.
**Anmerkung**  
Wenn Sie Schwierigkeiten beim Herunterladen der Datei haben, finden Sie die Vorlage auch im. [CloudFormation Vorlage](alarms-create-lambda.md#cfn-template)

1. Entpacken Sie den Inhalt und speichern Sie die Datei lokal als `notificationLambda.template.yaml`.

1. Öffnen Sie ein Terminal auf Ihrem Gerät und navigieren Sie zu dem Verzeichnis, in das Sie die `notificationLambda.template.yaml` Datei heruntergeladen haben.

1. Führen Sie den folgenden Befehl aus, um einen CloudFormation Stack zu erstellen:

   ```
   aws cloudformation create-stack --stack-name notificationLambda-stack --template-body file://notificationLambda.template.yaml --capabilities CAPABILITY_IAM
   ```

Sie können diese CloudFormation Vorlage ändern, um die Lambda-Funktion und ihr Verhalten anzupassen.

**Anmerkung**  
AWS Lambda wiederholt Funktionsfehler zweimal. Wenn die Kapazität der Funktion nicht für die Verarbeitung aller eingehenden Anforderungen ausreicht, verbleiben die an die Funktion zu sendenden Ereignisse möglicherweise stunden- oder tagelang in der Warteschlange. Sie können für die Funktion eine Warteschlange für unzugestellte Nachrichten (DLQ) konfigurieren, um Ereignisse aufzuzeichnen, die nicht erfolgreich verarbeitet wurden. Weitere Informationen finden Sie unter [Asynchroner Aufruf](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) im *AWS Lambda Entwicklerhandbuch*.

Sie können den Stack auch in der Konsole erstellen oder konfigurieren. CloudFormation Weitere Informationen finden Sie im *AWS CloudFormation Benutzerhandbuch* unter [Arbeiten mit Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html).

# Erstellen einer benutzerdefinierten Lambda-Funktion für AWS IoT Events
<a name="alarms-create-custom-lambda"></a>

Sie können eine Lambda-Funktion erstellen oder die von AWS IoT Events bereitgestellte ändern.

Die folgenden Anforderungen gelten, wenn Sie eine benutzerdefinierte Lambda-Funktion erstellen.
+ Fügen Sie Berechtigungen hinzu, die es Ihrer Lambda-Funktion ermöglichen, bestimmte Aktionen auszuführen und auf AWS Ressourcen zuzugreifen.
+ Wenn Sie die von bereitgestellte Lambda-Funktion verwenden AWS IoT Events, stellen Sie sicher, dass Sie die Python 3.7-Laufzeit wählen.

Beispiel für eine Lambda-Funktion:

```
import boto3
import json
import logging
import datetime
logger = logging.getLogger()
logger.setLevel(logging.INFO)
ses = boto3.client('ses')
sns = boto3.client('sns')
def check_value(target):
  if target:
    return True
  return False

# Check whether email is verified. Only verified emails are allowed to send emails to or from.
def check_email(email):
  if not check_value(email):
    return False
  result = ses.get_identity_verification_attributes(Identities=[email])
  attr = result['VerificationAttributes']
  if (email not in attr or attr[email]['VerificationStatus'] != 'Success'):
      logging.info('Verification email for {} sent. You must have all the emails verified before sending email.'.format(email))
      ses.verify_email_identity(EmailAddress=email)
      return False
  return True

# Check whether the phone holder has opted out of receiving SMS messages from your account
def check_phone_number(phone_number):
  try:
    result = sns.check_if_phone_number_is_opted_out(phoneNumber=phone_number)
    if (result['isOptedOut']):
        logger.info('phoneNumber {} is not opt in of receiving SMS messages. Phone number must be opt in first.'.format(phone_number))
        return False
    return True
  except Exception as e:
    logging.error('Your phone number {} must be in E.164 format in SSO. Exception thrown: {}'.format(phone_number, e))
    return False

def check_emails(emails):
  result = True
  for email in emails:
      if not check_email(email):
          result = False
  return result

def lambda_handler(event, context):
  logging.info('Received event: ' + json.dumps(event))
  nep = json.loads(event.get('notificationEventPayload'))
  alarm_state = nep['alarmState']
  default_msg = 'Alarm ' + alarm_state['stateName'] + '\n'
  timestamp = datetime.datetime.utcfromtimestamp(float(nep['stateUpdateTime'])/1000).strftime('%Y-%m-%d %H:%M:%S')
  alarm_msg = "{} {} {} at {} UTC ".format(nep['alarmModelName'], nep.get('keyValue', 'Singleton'), alarm_state['stateName'], timestamp)
  default_msg += 'Sev: ' + str(nep['severity']) + '\n'
  if (alarm_state['ruleEvaluation']):
    property = alarm_state['ruleEvaluation']['simpleRule']['inputProperty']
    default_msg += 'Current Value: ' + str(property) + '\n'
    operator = alarm_state['ruleEvaluation']['simpleRule']['operator']
    threshold = alarm_state['ruleEvaluation']['simpleRule']['threshold']
    alarm_msg += '({} {} {})'.format(str(property), operator, str(threshold))
  default_msg += alarm_msg + '\n'

  emails = event.get('emailConfigurations', [])
  logger.info('Start Sending Emails')
  for email in emails:
    from_adr = email.get('from')
    to_adrs = email.get('to', [])
    cc_adrs = email.get('cc', [])
    bcc_adrs = email.get('bcc', [])
    msg = default_msg + '\n' + email.get('additionalMessage', '')
    subject = email.get('subject', alarm_msg)
    fa_ver = check_email(from_adr)
    tas_ver = check_emails(to_adrs)
    ccas_ver = check_emails(cc_adrs)
    bccas_ver = check_emails(bcc_adrs)
    if (fa_ver and tas_ver and ccas_ver and bccas_ver):
      ses.send_email(Source=from_adr,
                     Destination={'ToAddresses': to_adrs, 'CcAddresses': cc_adrs, 'BccAddresses': bcc_adrs},
                     Message={'Subject': {'Data': subject}, 'Body': {'Text': {'Data': msg}}})
      logger.info('Emails have been sent')

  logger.info('Start Sending SNS message to SMS')
  sns_configs = event.get('smsConfigurations', [])
  for sns_config in sns_configs:
    sns_msg = default_msg + '\n' + sns_config.get('additionalMessage', '')
    phone_numbers = sns_config.get('phoneNumbers', [])
    sender_id = sns_config.get('senderId')
    for phone_number in phone_numbers:
        if check_phone_number(phone_number):
          if check_value(sender_id):
            sns.publish(PhoneNumber=phone_number, Message=sns_msg, MessageAttributes={'AWS.SNS.SMS.SenderID':{'DataType': 'String','StringValue': sender_id}})
          else:
            sns.publish(PhoneNumber=phone_number, Message=sns_msg)
          logger.info('SNS messages have been sent')
```

Weitere Informationen finden Sie unter [Was ist AWS Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) im *AWS Lambda -Entwicklerhandbuch*.

## CloudFormation Vorlage
<a name="cfn-template"></a>

Verwenden Sie die folgende CloudFormation Vorlage, um Ihre Lambda-Funktion zu erstellen.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Notification Lambda for Alarm Model'
Resources:
  NotificationLambdaRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      Path: "/"
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/AWSLambdaExecute'
      Policies:
        - PolicyName: "NotificationLambda"
          PolicyDocument:
            Version: "2012-10-17"		 	 	 
            Statement:
              - Effect: "Allow"
                Action:
                  - "ses:GetIdentityVerificationAttributes"
                  - "ses:SendEmail"
                  - "ses:VerifyEmailIdentity"
                Resource: "*"
              - Effect: "Allow"
                Action:
                  - "sns:Publish"
                  - "sns:OptInPhoneNumber"
                  - "sns:CheckIfPhoneNumberIsOptedOut"
                  - "sms-voice:DescribeOptedOutNumbers"
                Resource: "*"
              - Effect: "Deny"
                Action:
                  - "sns:Publish"
                Resource: "arn:aws:sns:*:*:*"
  NotificationLambdaFunction:              
    Type: AWS::Lambda::Function
    Properties:
      Role: !GetAtt NotificationLambdaRole.Arn
      Runtime: python3.7
      Handler: index.lambda_handler
      Timeout: 300
      MemorySize: 3008
      Code:
        ZipFile: |
          import boto3
          import json
          import logging
          import datetime
          logger = logging.getLogger()
          logger.setLevel(logging.INFO)
          ses = boto3.client('ses')
          sns = boto3.client('sns')
          def check_value(target):
            if target:
              return True
            return False

          # Check whether email is verified. Only verified emails are allowed to send emails to or from.
          def check_email(email):
            if not check_value(email):
              return False
            result = ses.get_identity_verification_attributes(Identities=[email])
            attr = result['VerificationAttributes']
            if (email not in attr or attr[email]['VerificationStatus'] != 'Success'):
                logging.info('Verification email for {} sent. You must have all the emails verified before sending email.'.format(email))
                ses.verify_email_identity(EmailAddress=email)
                return False
            return True

          # Check whether the phone holder has opted out of receiving SMS messages from your account
          def check_phone_number(phone_number):
            try:
              result = sns.check_if_phone_number_is_opted_out(phoneNumber=phone_number)
              if (result['isOptedOut']):
                  logger.info('phoneNumber {} is not opt in of receiving SMS messages. Phone number must be opt in first.'.format(phone_number))
                  return False
              return True
            except Exception as e:
              logging.error('Your phone number {} must be in E.164 format in SSO. Exception thrown: {}'.format(phone_number, e))
              return False

          def check_emails(emails):
            result = True
            for email in emails:
                if not check_email(email):
                    result = False
            return result

          def lambda_handler(event, context):
            logging.info('Received event: ' + json.dumps(event))
            nep = json.loads(event.get('notificationEventPayload'))
            alarm_state = nep['alarmState']
            default_msg = 'Alarm ' + alarm_state['stateName'] + '\n'
            timestamp = datetime.datetime.utcfromtimestamp(float(nep['stateUpdateTime'])/1000).strftime('%Y-%m-%d %H:%M:%S')
            alarm_msg = "{} {} {} at {} UTC ".format(nep['alarmModelName'], nep.get('keyValue', 'Singleton'), alarm_state['stateName'], timestamp)
            default_msg += 'Sev: ' + str(nep['severity']) + '\n'
            if (alarm_state['ruleEvaluation']):
              property = alarm_state['ruleEvaluation']['simpleRule']['inputProperty']
              default_msg += 'Current Value: ' + str(property) + '\n'
              operator = alarm_state['ruleEvaluation']['simpleRule']['operator']
              threshold = alarm_state['ruleEvaluation']['simpleRule']['threshold']
              alarm_msg += '({} {} {})'.format(str(property), operator, str(threshold))
            default_msg += alarm_msg + '\n'

            emails = event.get('emailConfigurations', [])
            logger.info('Start Sending Emails')
            for email in emails:
              from_adr = email.get('from')
              to_adrs = email.get('to', [])
              cc_adrs = email.get('cc', [])
              bcc_adrs = email.get('bcc', [])
              msg = default_msg + '\n' + email.get('additionalMessage', '')
              subject = email.get('subject', alarm_msg)
              fa_ver = check_email(from_adr)
              tas_ver = check_emails(to_adrs)
              ccas_ver = check_emails(cc_adrs)
              bccas_ver = check_emails(bcc_adrs)
              if (fa_ver and tas_ver and ccas_ver and bccas_ver):
                ses.send_email(Source=from_adr,
                               Destination={'ToAddresses': to_adrs, 'CcAddresses': cc_adrs, 'BccAddresses': bcc_adrs},
                               Message={'Subject': {'Data': subject}, 'Body': {'Text': {'Data': msg}}})
                logger.info('Emails have been sent')

            logger.info('Start Sending SNS message to SMS')
            sns_configs = event.get('smsConfigurations', [])
            for sns_config in sns_configs:
              sns_msg = default_msg + '\n' + sns_config.get('additionalMessage', '')
              phone_numbers = sns_config.get('phoneNumbers', [])
              sender_id = sns_config.get('senderId')
              for phone_number in phone_numbers:
                  if check_phone_number(phone_number):
                    if check_value(sender_id):
                      sns.publish(PhoneNumber=phone_number, Message=sns_msg, MessageAttributes={'AWS.SNS.SMS.SenderID':{'DataType': 'String','StringValue': sender_id}})
                    else:
                      sns.publish(PhoneNumber=phone_number, Message=sns_msg)
                    logger.info('SNS messages have been sent')
```

# Verwenden der Lambda-Funktion von AWS IoT Events
<a name="use-alarm-notifications"></a>

Bei Alarmbenachrichtigungen können Sie die Lambda-Funktion verwenden, die von AWS IoT Events zur Verwaltung von Alarmbenachrichtigungen bereitgestellt wird.

Die folgenden Anforderungen gelten, wenn Sie die Lambda-Funktion von verwenden AWS IoT Events , um Ihre Alarmbenachrichtigungen zu verwalten:
+ Sie müssen die E-Mail-Adresse, mit der die E-Mail-Benachrichtigungen gesendet werden, in Amazon Simple Email Service (Amazon SES) verifizieren. Weitere Informationen finden Sie unter [Verifizieren der Identität einer E-Mail-Adresse](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-email-proc) im *Amazon Simple Email Service Developer Guide*.

  Wenn Sie einen Bestätigungslink erhalten, klicken Sie auf den Link, um Ihre E-Mail-Adresse zu verifizieren. Sie können auch in Ihrem Spam-Ordner nach einer Bestätigungs-E-Mail suchen.
+ Wenn Ihr Alarm SMS-Benachrichtigungen sendet, müssen Sie die internationale E.164-Formatierung für Telefonnummern verwenden. Dieses Format enthält`+<country-calling-code><area-code><phone-number>`.

  Beispiele für Telefonnummern:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iotevents/latest/developerguide/use-alarm-notifications.html)

  [Um eine Landesvorwahl zu finden, gehen Sie zu countrycode.org.](https://countrycode.org/)

  Die von bereitgestellte Lambda-Funktion AWS IoT Events überprüft, ob Sie E.164-formatierte Telefonnummern verwenden. Die Telefonnummern werden jedoch nicht überprüft. Wenn Sie sicherstellen, dass Sie korrekte Telefonnummern eingegeben, aber keine SMS-Benachrichtigungen erhalten haben, können Sie sich an die Telefonanbieter wenden. Die Mobilfunkanbieter können die Nachrichten blockieren.

# Verwalten Sie den Zugriff von Alarmempfängern auf das IAM Identity Center in AWS IoT Events
<a name="sso-authorization-recipients"></a>

AWS IoT Events wird verwendet AWS IAM Identity Center , um den SSO-Zugriff von Alarmempfängern zu verwalten. Die Implementierung von IAM Identity Center für AWS IoT Events Benachrichtigungsempfänger kann die Sicherheit und das Benutzererlebnis verbessern. Damit der Alarm Benachrichtigungen an die Empfänger sendet, müssen Sie IAM Identity Center aktivieren und Empfänger zu Ihrem IAM Identity Center-Shop hinzufügen. Weitere Informationen finden Sie im *AWS IAM Identity Center Benutzerhandbuch* unter [Benutzer hinzufügen](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html).

**Wichtig**  
Sie müssen dieselbe AWS Region für AWS IoT Events AWS Lambda, und IAM Identity Center auswählen.
AWS Organizations unterstützen jeweils nur eine IAM Identity Center-Region. Wenn Sie IAM Identity Center in einer anderen Region verfügbar machen möchten, müssen Sie zuerst Ihre aktuelle IAM Identity Center-Konfiguration löschen. *Weitere Informationen finden Sie unter [IAM Identity Center-Regionaldaten im AWS IAM Identity Center Benutzerhandbuch](https://docs.aws.amazon.com/singlesignon/latest/userguide/regions.html#region-data).*