

**Hinweis zum Ende des Supports:** Am 30. Oktober 2026 AWS wird der Support für Amazon Pinpoint eingestellt. Nach dem 30. Oktober 2026 können Sie nicht mehr auf die Amazon-Pinpoint-Konsole oder die Amazon-Pinpoint-Ressourcen (Endpunkte, Segmente, Kampagnen, Journeys und Analytik) zugreifen. Weitere Informationen finden Sie unter [Ende des Amazon-Pinpoint-Supports](https://docs.aws.amazon.com/console/pinpoint/migration-guide). **Hinweis:** APIs In Bezug auf SMS sind Sprach-, mobile Push-, OTP- und Telefonnummernvalidierung von dieser Änderung nicht betroffen und werden von AWS End User Messaging unterstützt.

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.

# Lambda-Funktionen zur Verwendung mit Amazon Pinpoint SMS-Messaging erstellen
<a name="tutorials-two-way-sms-part-3"></a>

In diesem Abschnitt erfahren Sie, wie Sie zwei Lambda-Funktionen für die Verwendung mit Amazon Pinpoint SMS-Messaging erstellen und konfigurieren. Später richten Sie API Gateway und Amazon Pinpoint so ein, dass sie diese Funktionen aufrufen, wenn bestimmte Ereignisse eintreten. Beide Funktionen erstellen und aktualisieren Endpunkte im von Ihnen angegebenen Amazon-Pinpoint-Projekt. Die erste Funktion verwendet auch die Funktion zur Telefonnummernüberprüfung.

## Erstellen der Funktion, die Kundendaten überprüft und Endpunkte erstellt
<a name="tutorials-two-way-sms-part-3-create-register-function"></a>

Die erste Funktion verwendet Eingaben aus Ihrem Registrierungsformular, die sie von Amazon API Gateway erhält. Sie verwendet diese Informationen, um mithilfe der Funktion zur [Überprüfung der Telefonnummer von Amazon Pinpoint Informationen über die Telefonnummer](https://docs.aws.amazon.com/pinpoint/latest/developerguide/validate-phone-numbers.html) des Kunden zu erhalten. Die Funktion verwendet dann die validierten Daten, um einen neuen Endpunkt in dem von Ihnen angegebenen Amazon-Pinpoint-Projekt zu erstellen. Standardmäßig wird der Endpunkt, den die Funktion erstellt, von zukünftigen Nachrichten von Ihnen ausgeschlossen, aber dieser Status kann durch die zweite Funktion geändert werden. Schließlich sendet diese Funktion dem Kunden eine Nachricht, in der er aufgefordert wird, zu überprüfen, ob er SMS-Nachrichten von Ihnen erhalten möchte.

**So erstellen Sie die Lambda-Funktion:**

1. Öffnen Sie die AWS Lambda Konsole unter. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Wählen Sie **Funktion erstellen**.

1. Wählen **Sie unter Funktion erstellen** die Option **Blueprint verwenden** aus.

1. Geben Sie im Suchfeld **hello** ein und drücken Sie dann die Eingabetaste. Wählen Sie in der Ergebnisliste die Node.js-Funktion `hello-world` aus, wie im folgenden Bild gezeigt.   
![Auf der Seite „Funktion erstellen“ wird die Option Blueprint verwenden angezeigt.](http://docs.aws.amazon.com/de_de/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.5.png)

1. Führen Sie unter **Basic information** (Grundlegende Informationen) die folgenden Schritte aus:
   + Geben Sie für **Name** einen Namen für die Funktion ein, z. B. **RegistrationForm**.
   + Wählen Sie für **Role (Rolle)** die Option **Choose an existing role (Eine vorhandene Rolle wählen)** aus.
   + Wählen Sie **unter Vorhandene Rolle** die **SMSRegistrationFormularrolle aus**, die Sie unter [IAM-Rolle erstellen](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role) erstellt haben.

   Wenn Sie fertig sind, klicken Sie auf **Create function (Funktion erstellen)**.

1. Löschen Sie **unter Codequelle** die Beispielfunktion im Code-Editor und fügen Sie dann den folgenden Code ein:

   ```
   import { PinpointClient, PhoneNumberValidateCommand, UpdateEndpointCommand, SendMessagesCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   const pinClient = new PinpointClient({region: process.env.region});  
   
   // Make sure the SMS channel is enabled for the projectId that you specify.
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-setup.html
   var projectId = process.env.projectId;
   
   // You need a dedicated long code in order to use two-way SMS. 
   // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-voice-manage.html#channels-voice-manage-request-phone-numbers
   var originationNumber = process.env.originationNumber;
   
   // This message is spread across multiple lines for improved readability.
   var message = "ExampleCorp: Reply YES to confirm your subscription. 2 msgs per "
               + "month. No purchase req'd. Msg&data rates may apply. Terms: "
               + "example.com/terms-sms";
               
   var messageType = "TRANSACTIONAL";
   
   export const handler = async (event, context) => {
     console.log('Received event:', event);
     await validateNumber(event);
   };
   
   async function validateNumber (event) {
     var destinationNumber = event.destinationNumber;
     if (destinationNumber.length == 10) {
       destinationNumber = "+1" + destinationNumber;
     }
     var params = {
       NumberValidateRequest: {
         IsoCountryCode: 'US',
         PhoneNumber: destinationNumber
       }
     };
     try{
       const PhoneNumberValidateresponse = await pinClient.send( new  PhoneNumberValidateCommand(params));
       console.log(PhoneNumberValidateresponse);
        if (PhoneNumberValidateresponse['NumberValidateResponse']['PhoneTypeCode'] == 0) {
           await createEndpoint(PhoneNumberValidateresponse, event.firstName, event.lastName, event.source);
           
         } else {
           console.log("Received a phone number that isn't capable of receiving "
                      +"SMS messages. No endpoint created.");
         }
     }catch(err){
       console.log(err);
     }
   }
   
   async function createEndpoint(data, firstName, lastName, source) {
     var destinationNumber = data['NumberValidateResponse']['CleansedPhoneNumberE164'];
     var endpointId = data['NumberValidateResponse']['CleansedPhoneNumberE164'].substring(1);
     
     var params = {
       ApplicationId: projectId,
       // The Endpoint ID is equal to the cleansed phone number minus the leading
       // plus sign. This makes it easier to easily update the endpoint later.
       EndpointId: endpointId,
       EndpointRequest: {
         ChannelType: 'SMS',
         Address: destinationNumber,
         // OptOut is set to ALL (that is, endpoint is opted out of all messages)
         // because the recipient hasn't confirmed their subscription at this
         // point. When they confirm, a different Lambda function changes this 
         // value to NONE (not opted out).
         OptOut: 'ALL',
         Location: {
           PostalCode:data['NumberValidateResponse']['ZipCode'],
           City:data['NumberValidateResponse']['City'],
           Country:data['NumberValidateResponse']['CountryCodeIso2'],
         },
         Demographic: {
           Timezone:data['NumberValidateResponse']['Timezone']
         },
         Attributes: {
           Source: [
             source
           ]
         },
         User: {
           UserAttributes: {
             FirstName: [
               firstName
             ],
             LastName: [
               lastName
             ]
           }
         }
       }
     };
     try{
       const UpdateEndpointresponse = await pinClient.send(new UpdateEndpointCommand(params));
       console.log(UpdateEndpointresponse);
       await sendConfirmation(destinationNumber);
     }catch(err){
       console.log(err);
     }  
   }
   
   async function sendConfirmation(destinationNumber) {
     var params = {
       ApplicationId: projectId,
       MessageRequest: {
         Addresses: {
           [destinationNumber]: {
             ChannelType: 'SMS'
           }
         },
         MessageConfiguration: {
           SMSMessage: {
             Body: message,
             MessageType: messageType,
             OriginationNumber: originationNumber
           }
         }
       }
     };
     try{
       const SendMessagesCommandresponse = await pinClient.send(new SendMessagesCommand(params));
       console.log("Message sent! " 
             + SendMessagesCommandresponse['MessageResponse']['Result'][destinationNumber]['StatusMessage']);
     }catch(err){
       console.log(err);
     }
   }
   ```

1. Wählen Sie auf der Registerkarte **Konfiguration** für **Umgebungsvariablen** die Option **Bearbeiten** und dann **Umgebungsvariable hinzufügen** aus. Gehen Sie wie folgt vor:
   + Erstellen Sie in der ersten Zeile eine Variable mit dem Schlüssel **originationNumber**. Stellen Sie anschließend den Wert auf die Telefonnummer der dedizierten Langwahlnummer ein, die Sie in [Schritt 1.2](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel) erhalten haben.
**Anmerkung**  
Achten Sie darauf, dass Sie das Pluszeichen (\+) und die Landesvorwahl für die Telefonnummer angeben. Fügen Sie keine weiteren Sonderzeichen wie Bindestriche (-), Punkte (.) oder Klammern hinzu.
   + Erstellen Sie in der zweiten Zeile eine Variable mit dem Schlüssel **projectId**. Als nächstes setzen Sie den Wert auf die eindeutige ID des Projekts, das Sie in [Schritt 1.1](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) erstellt haben.
   + Erstellen Sie in der dritten Zeile eine Variable mit einem Schlüssel von **region**. Stellen Sie als Nächstes den Wert auf die Region ein, in der Sie Amazon Pinpoint verwenden, z. B. **us-east-1** oder **us-west-2**.

   Wenn Sie fertig sind, sollte der Abschnitt **Environment Variables (Umgebungsvariablen)** dem in der folgenden Abbildung gezeigten Beispiel entsprechen.  
![Die Umgebungsvariablen für OriginationNumber, projectId und Region.](http://docs.aws.amazon.com/de_de/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step1.7.png)

1. Wählen Sie oben auf der Seite **Save** aus.

### Testen der Funktion
<a name="tutorials-two-way-sms-part-3-create-register-function-test"></a>

Nachdem Sie die Funktion erstellt haben, sollten Sie sie testen, um sich zu vergewissern, dass sie richtig konfiguriert ist. Stellen Sie außerdem sicher, dass die von Ihnen erstellte IAM-Rolle über die entsprechenden Berechtigungen verfügt.

**So testen Sie die -Funktion**

1. Wählen Sie die Registerkarte **Test**.

1. Wählen Sie **Neues Ereignis erstellen** und gehen Sie wie folgt vor:
   + Geben Sie für **Event name (Ereignisname)** einen Namen für das Testereignis ein, z. B. **MyPhoneNumber**.
   + Löschen Sie den Beispielcode im Code-Editor. Fügen Sie folgenden Code ein:

     ```
     {
       "destinationNumber": "{{+12065550142}}",
       "firstName": "{{Carlos}}",
       "lastName": "{{Salazar}}",
       "source": "Registration form test"
     }
     ```
   + Ersetzen Sie im vorhergehenden Codebeispiel die Werte der Attribute `destinationNumber`, `firstName` und `lastName` durch die Werte, die Sie zum Testen verwenden möchten, wie beispielsweise Ihre persönlichen Kontaktdaten. Wenn Sie diese Funktion testen, sendet sie eine SMS an die Telefonnummer, die Sie im Attribut `destinationNumber` angeben. Stellen Sie sicher, dass die von Ihnen angegebene Telefonnummer in der Lage ist, SMS-Nachrichten zu empfangen.
   + Wählen Sie **Erstellen** aus.

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

1. Wählen Sie unter **Execution result: succeeded (Ausführungsergebnis: erfolgreich)** die Option **Details** aus. Überprüfen Sie im Abschnitt **Log output (Protokollausgabe)** die Ausgabe der Funktion. Stellen Sie sicher, dass die Funktion fehlerfrei ausgeführt wurde.

   Überprüfen Sie das Gerät, das der von Ihnen angegebenen `destinationNumber` zugeordnet ist, um sicherzustellen, dass es die Testnachricht empfangen hat.

1. Öffnen Sie die Amazon Pinpoint Pinpoint-Konsole unter [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/).

1. Wählen Sie auf der Seite **Alle Projekte** das Projekt aus, das Sie unter [Amazon Pinpoint Pinpoint-Projekt erstellen](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) erstellt haben.

1. Wählen Sie im Navigationsbereich die Option **Segments (Segmente)** aus. Wählen Sie auf der Seite **Segments (Segmente)** die Option **Create a segment (Ein Segment erstellen)** aus.

1. Wählen Sie in **Segment group 1 (Segmentgruppe 1)** unter **Add filters to refine your segment (Filter zur Optimierung des Segments hinzufügen** die Option **Filter by user (Nach Benutzer filtern)** aus.

1. **Wählen Sie unter Benutzerattribut** auswählen die Option **FirstName**. Wählen Sie dann unter **Choose values (Werte auswählen)** den Vornamen aus, den Sie im Testereignis angegeben haben.

   Im Abschnitt **Segment estimate (Segmentschätzung)** sollte angezeigt werden, dass es keine qualifizierten Endpunkte und insgesamt einen Endpunkt gibt, wie in der folgenden Abbildung gezeigt. Dieses Ergebnis wird erwartet. Wenn die Funktion einen neuen Endpunkt erstellt, ist der Endpunkt deaktiviert. Segmente in Amazon Pinpoint schließen automatisch deaktivierte Endpunkte aus.  
![Die Segmentgruppe, die keine Endpunkte anzeigt.](http://docs.aws.amazon.com/de_de/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step8.9.png)

## Erstellen der Funktion, die Kunden für Ihre Kommunikation aktiviert
<a name="tutorials-two-way-sms-part-3-create-optin-function"></a>

Die zweite Funktion wird nur ausgeführt, wenn ein Kunde auf die Nachricht antwortet, die von der ersten Funktion gesendet wurde. Wenn die Antwort des Kunden das Schlüsselwort enthält, das Sie unter [Bidirektionale SMS aktivieren](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel) angegeben haben, aktualisiert die Funktion seinen Endpunktdatensatz, um ihn für future Mitteilungen anzumelden. Amazon Pinpoint antwortet auch automatisch mit der Nachricht, die Sie unter [Bidirektionale SMS aktivieren](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel) angegeben haben.

Wenn der Kunde nicht antwortet oder seine Antwort das angegebene Schlüsselwort nicht enthält, dann passiert nichts. Der Endpunkt des Kunden bleibt in Amazon Pinpoint, aber Segmente können ihn nicht anvisieren.

**So erstellen Sie die Lambda-Funktion:**

1. Öffnen Sie die AWS Lambda Konsole unter. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Wählen Sie **Funktion erstellen**.

1. Wählen Sie unter **Create function (Funktion erstellen)** die Option **Blueprints** aus.

1. Geben Sie im Suchfeld **hello** ein und drücken Sie dann die Eingabetaste. Wählen Sie in der Ergebnisliste die Node.js-Funktion `hello-world` aus, wie im folgenden Bild gezeigt. Wählen Sie **Konfigurieren** aus.

1. Führen Sie unter **Basic information** (Grundlegende Informationen) die folgenden Schritte aus:
   + Geben Sie für **Name** einen Namen für die Funktion ein, z. B. **RegistrationForm\_OptIn**.
   + Wählen Sie für **Role (Rolle)** die Option **Choose an existing role (Eine vorhandene Rolle wählen)** aus.
   + Wählen Sie unter **Existierende Rolle** die SMSRegistration Formularrolle aus, die Sie unter [IAM-Rolle erstellen](tutorials-two-way-sms-part-2.md#tutorials-two-way-sms-part-2-create-role) erstellt haben.

   Wenn Sie fertig sind, klicken Sie auf **Create function (Funktion erstellen)**.

1. Löschen Sie die Beispielfunktion im Code-Editor und fügen Sie dann den folgenden Code ein:

   ```
   import { PinpointClient, UpdateEndpointCommand } from "@aws-sdk/client-pinpoint"; // ES Modules import
   
   // Create a new Pinpoint client instance with the region specified in the environment variables
   const pinClient = new PinpointClient({ region: process.env.region });
   
   // Get the Pinpoint project ID and the confirm keyword from environment variables
   const projectId = process.env.projectId;
   const confirmKeyword = process.env.confirmKeyword.toLowerCase();
   
   // This is the main handler function that is invoked when the Lambda function is triggered
   export const handler = async (event, context) => {
       console.log('Received event:', event);
   
       try {
           // Extract the timestamp, message, and origination number from the SNS event
           const timestamp = event.Records[0].Sns.Timestamp;
           const message = JSON.parse(event.Records[0].Sns.Message);
           const originationNumber = message.originationNumber;
           const response = message.messageBody.toLowerCase();
   
           // Check if the response message contains the confirm keyword
           if (response.includes(confirmKeyword)) {
               // If the confirm keyword is found, update the endpoint's opt-in status
               await updateEndpointOptIn(originationNumber, timestamp);
           }
       }catch (error) {
           console.error('An error occurred:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   };
   
   // This function updates the opt-in status of a Pinpoint endpoint
   async function updateEndpointOptIn(originationNumber, timestamp) {
       // Extract the endpoint ID from the origination number
       const endpointId = originationNumber.substring(1);
   
        // Prepare the parameters for the UpdateEndpointCommand
       const params = {
           ApplicationId: projectId,
           EndpointId: endpointId,
           EndpointRequest: {
               Address: originationNumber,
               ChannelType: 'SMS',
               OptOut: 'NONE',
               Attributes: {
                   OptInTimestamp: [timestamp]
               },
           }
       };
   
       try {
           // Send the UpdateEndpointCommand to update the endpoint's opt-in status
           const updateEndpointResponse = await pinClient.send(new UpdateEndpointCommand(params));
           console.log(updateEndpointResponse);
           console.log(`Successfully changed the opt status of endpoint ID ${endpointId}`);
       } catch (error) {
           console.error('An error occurred while updating endpoint:', error);
           throw error; // Rethrow the error to handle it upstream
       }
   }
   ```

1. Gehen Sie unter **Environment variables (Umgebungsvariablen)** wie folgt vor:
   + Erstellen Sie in der ersten Zeile eine Variable mit dem Schlüssel **projectId**. Als Nächstes setzen Sie den Wert auf die eindeutige ID des Projekts, das Sie unter [Amazon Pinpoint Pinpoint-Projekt erstellen](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) erstellt haben.
   + Erstellen Sie in der zweiten Zeile eine Variable mit dem Schlüssel **region**. Stellen Sie als Nächstes den Wert auf die Region ein, in der Sie Amazon Pinpoint verwenden, z. B. **us-east-1** oder **us-west-2**.
   + Erstellen Sie in der dritten Zeile eine Variable mit einem Schlüssel von **confirmKeyword**. Stellen Sie als Nächstes den Wert auf das Bestätigungsschlüsselwort ein, das Sie unter [Bidirektionale SMS aktivieren](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-set-up-channel) erstellt haben.
**Anmerkung**  
Das Schlüsselwort wird nicht nach Groß- und Kleinschreibung unterschieden. Diese Funktion wandelt die eingehende Nachricht in Kleinbuchstaben um.

   Wenn Sie fertig sind, sollte der Abschnitt **Environment Variables (Umgebungsvariablen)** dem in der folgenden Abbildung gezeigten Beispiel entsprechen.  
![Die Umgebungsvariablen für projectId, Region und ConfirmKeyword.](http://docs.aws.amazon.com/de_de/pinpoint/latest/userguide/images/SMS_Reg_Tutorial_LAM_Step2.7.png)

1. Wählen Sie oben auf der Seite **Save** aus.

### Testen der Funktion
<a name="tutorials-two-way-sms-part-3-create-optin-function-test"></a>

Nachdem Sie die Funktion erstellt haben, sollten Sie sie testen, um sich zu vergewissern, dass sie richtig konfiguriert ist. Stellen Sie außerdem sicher, dass die von Ihnen erstellte IAM-Rolle über die entsprechenden Berechtigungen verfügt.

**So testen Sie die -Funktion**

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

1. Führen Sie im Fenster **Configure test event (Testereignis konfigurieren)** die folgenden Schritte aus:

   1. Wählen Sie **Create new test event** aus.

   1. Geben Sie für **Event name (Ereignisname)** einen Namen für das Testereignis ein, z. B. **MyResponse**.

   1. Löschen Sie den Beispielcode im Code-Editor. Fügen Sie folgenden Code ein:

      ```
      {
        "Records":[
          {
            "Sns":{
              "Message":"{\"originationNumber\":\"{{+12065550142}}\",\"messageBody\":\"{{Yes}}\"}",
              "Timestamp":"2019-02-20T17:47:44.147Z"
            }
          }
        ]
      }
      ```

      Ersetzen Sie im vorigen Codebeispiel die Werte des Attributs `originationNumber` durch die Telefonnummer, die Sie verwendet haben, als Sie die vorherige Lambda-Funktion getestet haben. [Ersetzen Sie den Wert von `messageBody` durch das bidirektionale SMS-Schlüsselwort, das Sie unter Bidirektionale SMS aktivieren angegeben haben.](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-enable-two-way) Optional können Sie den Wert von `Timestamp` durch das aktuelle Datum und die aktuelle Uhrzeit ersetzen.

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

1. Wählen Sie erneut **Test (Testen)** aus.

1. Wählen Sie unter **Execution result: succeeded (Ausführungsergebnis: erfolgreich)** die Option **Details** aus. Überprüfen Sie im Abschnitt **Log output (Protokollausgabe)** die Ausgabe der Funktion. Stellen Sie sicher, dass die Funktion fehlerfrei ausgeführt wurde.

1. Öffnen Sie die Amazon Pinpoint Pinpoint-Konsole unter [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/).

1. Wählen Sie auf der Seite **Alle Projekte** das Projekt aus, das Sie unter [Amazon Pinpoint Pinpoint-Projekt erstellen](tutorials-two-way-sms-part-1.md#tutorials-two-way-sms-part-1-create-project) erstellt haben.

1. Wählen Sie im Navigationsbereich die Option **Segments (Segmente)** aus. Wählen Sie auf der Seite **Segments (Segmente)** die Option **Create a segment (Ein Segment erstellen)** aus.

1. Wählen Sie in **Segment group 1 (Segmentgruppe 1)** unter **Add filters to refine your segment (Filter zur Optimierung des Segments hinzufügen** die Option **Filter by user (Nach Benutzer filtern)** aus.

1. **Wählen Sie unter Benutzerattribut** auswählen die Option **FirstName**. Wählen Sie dann unter **Choose values (Werte auswählen)** den Vornamen aus, den Sie im Testereignis angegeben haben.

   Im Abschnitt **Segment estimate (Segmentschätzung)** sollte angezeigt werden, dass es einen qualifizierten Endpunkt und insgesamt einen Endpunkt gibt.

**Weiter**: [Einrichten von Amazon API Gateway](tutorials-two-way-sms-part-4.md)