

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.

# Gewähren Sie Connect-Kunden Zugriff auf Ihre AWS Lambda Funktionen
<a name="connect-lambda-functions"></a>

Connect Customer kann mit Ihren eigenen Systemen interagieren und in Abläufen dynamisch unterschiedliche Pfade einschlagen. Rufen Sie dazu AWS Lambda Funktionen in einem Flow auf, rufen Sie die Ergebnisse ab und rufen Sie Ihre eigenen Dienste auf oder interagieren Sie mit anderen AWS Datenspeichern oder Diensten. Weitere Informationen finden Sie im [AWS Lambda -Entwicklerhandbuch](https://docs.aws.amazon.com/lambda/latest/dg/).

Um eine Lambda-Funktion aus einem Flow aufzurufen, führen Sie die folgenden Schritte aus.

**Topics**
+ [Erstellen einer Lambda-Funktion](#create-lambda-function)
+ [Fügen Sie Ihrer Connect Customer-Instanz eine Lambda-Funktion hinzu](#add-lambda-function)
+ [Aufrufen einer Lambda-Funktion aus einem Flow](#function-contact-flow)
+ [Bewährte Methode für das Aufrufen mehrerer Lambda-Funktionen](#invoke-multiple-functions)
+ [Konfigurieren Ihrer Lambda-Funktion zum Parsen des Ereignisses](#function-parsing)
+ [Überprüfen der Funktionsantwort](#verify-function)
+ [Verwenden der Lambda-Funktionsantwort](#process-function-response)
+ [Tutorial: Eine Lambda-Funktion erstellen und in einem Flow aufrufen](#tutorial-invokelambda)

## Erstellen einer Lambda-Funktion
<a name="create-lambda-function"></a>

Erstellen Sie eine Lambda-Funktion mit einer beliebigen Laufzeit und konfigurieren Sie sie. Weitere Informationen finden Sie unter [Erste Schritte mit Lambda](https://docs.aws.amazon.com/lambda/latest/dg/get-started.html) im *AWS Lambda -Entwicklerhandbuch*.

Wenn Sie die Lambda-Funktion in derselben Region wie Ihr Contact Center erstellen, können Sie die Connect-Kundenkonsole verwenden, um die Lambda-Funktion zu Ihrer Instance hinzuzufügen, wie in der nächsten Aufgabe beschrieben. [Fügen Sie Ihrer Connect Customer-Instanz eine Lambda-Funktion hinzu](#add-lambda-function) Dadurch werden automatisch Ressourcenberechtigungen hinzugefügt, die es Connect Customer ermöglichen, die Lambda-Funktion aufzurufen. Andernfalls, wenn sich die Lambda-Funktion in einer anderen Region befindet, können Sie sie mithilfe des Flow-Designers zu Ihrem Flow hinzufügen und die Ressourcenberechtigungen mithilfe des [ Befehls ](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html) add-permission hinzufügen. Geben Sie dabei den Principal von `connect.amazonaws.com` und den ARN Ihrer Connect Customer-Instanz an. Weitere Informationen finden Sie AWS Lambda[ im ](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) *AWS Lambda Entwicklerhandbuch unter Resource-Based Using Policies for. *

## Fügen Sie Ihrer Connect Customer-Instanz eine Lambda-Funktion hinzu
<a name="add-lambda-function"></a>

Bevor Sie eine Lambda-Funktion in einem Flow verwenden können, müssen Sie sie Ihrer Connect Customer-Instanz hinzufügen.

**Hinzufügen einer Lambda-Funktion zu Ihrer Instance**

1. Öffnen Sie die Connect Customer-Konsole unter [ https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/).

1. Wählen Sie auf der Instance-Seite Ihren Instance-Namen in der Spalte **Instance Alias** aus. Dieser Instanzname erscheint in der URL, die Sie für den Zugriff auf Connect Customer verwenden.   
![Die Seite mit den virtuellen Contact Center-Instanzen von Connect Customer, der Instanz-Alias.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/instance.png)

1. Klicken Sie im Navigationsbereich auf **Flows**.

1. Verwenden Sie im Bereich **AWS Lambda** das Drop-down-Feld **Function (Funktion)**, um die Funktion auszuwählen, die Sie Ihrer Instance hinzufügen möchten.
**Tipp**  
In der Drop-down-Liste werden nur die Funktionen aufgeführt, die sich in derselben Region wie Ihre Instance befinden. Wenn keine Funktionen aufgeführt sind, wählen Sie Neue Lambda-Funktion ** erstellen**, wodurch die AWS Lambda Konsole geöffnet wird.  
Um ein Lambda in einer anderen Region oder einem anderen Konto zu verwenden, können Sie im [AWS Lambda Funktion](invoke-lambda-function-block.md) unter **Select a function** den ARN eines Lambdas eingeben. Richten Sie dann die entsprechende ressourcenbasierte Richtlinie für dieses Lambda ein, damit der Flow es aufrufen kann.   
Um `lambda:AddPermission` anzurufen, müssen Sie:  
Stellen Sie den Principal auf **connect.amazonaws.com** ein
Stellen Sie als Quellkonto das Konto ein, in dem sich Ihre Instance befindet.
Setzen Sie den Quell-ARN auf den ARN Ihrer Instance.
Weitere Informationen finden Sie unter [Granting function access to other accounts](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke).

1. Wählen Sie **Add Lambda Function**. Überprüfen Sie, ob der ARN der Funktion in **Lambda Functions (Lambda-Funktionen)** hinzugefügt wurde.

Jetzt können Sie in Ihren Flows auf diese Lambda-Funktion verweisen.

## Aufrufen einer Lambda-Funktion aus einem Flow
<a name="function-contact-flow"></a>

1. Öffnen oder erstellen Sie einen Flow.

1. Fügen Sie dem Raster einen [AWS Lambda Funktion](invoke-lambda-function-block.md)-Block (in der Gruppe **Integrate (Integrieren)** hinzu. Verbinden Sie die Verzweigungen, die zum Block und vom Block wegführen.

1. Wählen Sie den Titel des [AWS Lambda Funktion](invoke-lambda-function-block.md)-Blocks, um seine Seite „Eigenschaften“ zu öffnen.

1. Wählen Sie unter **Select a function (Funktion auswählen)** aus der Liste der Funktionen aus, die Sie Ihrer Instance hinzugefügt haben.

1. (Optional) Wählen Sie unter **Function input parameters (Funktionseingabeparameter)** die Option **Add a parameter (Parameter hinzufügen)**. Sie können Schlüssel-Wert-Paare angeben, die an die Lambda-Funktion gesendet werden, wenn sie aufgerufen wird. Sie können auch einen **Timeout**-Wert für die Funktion angeben.

1. Geben Sie unter **Timeout (max 8 seconds)** (Timeout (max. 8 Sekunden)) an, wie lange gewartet werden soll, bis Lambda ein Zeitlimit überschreitet. Nach Flow dieser Zeit leitet der Kontakt den Fehlerzweig weiter.

Bei jedem Aufruf der Lambda-Funktion übergeben Sie einen Standardsatz von Informationen zum ausgeführten Kontakt und alle zusätzlichen Attribute, die in **Function input parameters** für den Block **Invoke AWS Lambda function** definiert sind.

Im Folgenden sehen Sie ein Beispiel für eine JSON-Anfrage an eine Lambda-Funktion:

```
{
    "Details": {
        "ContactData": {
            "Attributes": {
               "exampleAttributeKey1": "exampleAttributeValue1"
              },
            "Channel": "VOICE",
            "ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "CustomerEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            },
            "CustomerId": "someCustomerId",
            "Description": "someDescription",
            "InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
            "InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
            "LanguageCode": "en-US",
            "MediaStreams": {
                "Customer": {
                    "Audio": {
                        "StreamARN": "arn:aws:kinesisvideo::eu-west-2:111111111111:stream/instance-alias-contact-ddddddd-bbbb-dddd-eeee-ffffffffffff/9999999999999",
                        "StartTimestamp": "1571360125131", // Epoch time value
                        "StopTimestamp": "1571360126131",
                        "StartFragmentNumber": "100" // Numberic value for fragment number 
                    }
                }
            },
            "Name": "ContactFlowEvent",
            "PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
            "Queue": {
                   "ARN": "arn:aws:connect:eu-west-2:111111111111:instance/cccccccc-bbbb-dddd-eeee-ffffffffffff/queue/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
                 "Name": "PasswordReset",
                "OutboundCallerId": {
                    "Address": "+12345678903",
                    "Type": "TELEPHONE_NUMBER"
                }
            },
            "References": {
                "key1": {
                    "Type": "url",
                    "Value": "urlvalue"
                }
            },
            "SystemEndpoint": {
                "Address": "+1234567890",
                "Type": "TELEPHONE_NUMBER"
            }
        },
        "Parameters": {"exampleParameterKey1": "exampleParameterValue1",
               "exampleParameterKey2": "exampleParameterValue2"
        }
    },
    "Name": "ContactFlowEvent"
}
```

Die Anfrage ist in zwei Teile gegliedert:
+ Kontaktdaten — Diese werden vom Connect-Kunden immer für jeden Kontakt weitergegeben. Einige Parameter sind optional.

  Dieser Abschnitt kann Attribute enthalten, die zuvor einem Kontakt zugeordnet wurden, z. B. wenn Sie den ** Block „Kontaktattribute ** festlegen“ in einem Flow verwenden. Diese Map ist möglicherweise leer, wenn keine gespeicherten Attribute vorhanden sind.

  Die folgende Abbildung zeigt, wo diese Attribute auf der Seite „Eigenschaften“ von **Set contact attributes** angezeigt würden.  
![Die Seite „Eigenschaften“ des Blocks „Set contact attributes“ (Kontaktattribute festlegen).](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-setAttribute.png)
+ Parameter – Dies sind spezifische Parameter für diesen Aufruf, die bei der Erstellung der Lambda-Funktion definiert wurden. **Die folgende Abbildung zeigt, wo diese Parameter auf der Seite „Eigenschaften“ des Funktionsblocks Invoke erscheinen würden. AWS Lambda **   
![Die Eingabeparameter der Funktion im Invoke AWS Lambda-Funktionsblock.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-setParameter.png)

Der [AWS Lambda Funktion](invoke-lambda-function-block.md)-Block kann Eingabeparameter im JSON-Format empfangen und unterstützt sowohl primitive Datentypen als auch verschachteltes JSON. Im Folgenden finden Sie ein Beispiel für eine JSON-Eingabe, die im [AWS Lambda Funktion](invoke-lambda-function-block.md)-Block verwendet werden kann.

```
{ 
  "Name": "Jane", 
  "Age":10, 
  "isEnrolledInSchool": true, 
  "hobbies": {
    "books":["book1", "book2"], 
    "art":["art1", "art2"]
  } 
}
```

### Richtlinie für die Wiederholung von Aufrufen
<a name="retry"></a>

Wenn Ihr Lambda-Aufruf in einem Flow gedrosselt wird, wird die Anfrage wiederholt. Sie wird auch wiederholt, wenn ein allgemeiner Service-Fehler (500) auftritt. 

Wenn ein synchroner Aufruf einen Fehler zurückgibt, wiederholt Connect Customer den Vorgang bis zu dreimal, maximal 8 Sekunden lang. An diesem Punkt fährt der Flow mit dem Fehlerzweig fort. 

Weitere Informationen zu Lambda-Wiederholungsversuchen finden Sie unter [ Fehlerbehandlung und automatische Wiederholungen in Lambda. AWS](https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html) 

## Bewährte Methode für das Aufrufen mehrerer Lambda-Funktionen
<a name="invoke-multiple-functions"></a>

Connect Customer begrenzt die Dauer einer Sequenz von Lambda-Funktionen auf 20 Sekunden. Wenn die Gesamtausführungszeit diesen Schwellenwert überschreitet, kommt es zu einem Timeout mit einer Fehlermeldung. Da Kunden während der Ausführung einer Lambda-Funktion nichts hören, empfehlen wir, zwischen Funktionen einen **Play prompt** (Ansage abspielen)-Block einzufügen, damit sie in einer langen Interaktion beteiligt bleiben. 

Durch Aufteilen einer Kette von Lambda-Funktionen mit dem **Play prompt** (Ansage abspielen)-Block können Sie mehrere Funktionen aufrufen, die länger als 20 Sekunden (Schwellenwert) dauern.

## Konfigurieren Ihrer Lambda-Funktion zum Parsen des Ereignisses
<a name="function-parsing"></a>

Um Attribute und Parameter erfolgreich zwischen Ihrer Lambda-Funktion und Connect Customer zu übergeben, konfigurieren Sie Ihre Funktion so, dass die JSON-Anforderung, die vom AWS Lambda ** Funktionsblock „**Invoke“ oder „Kontaktattribute ** festlegen“ gesendet wurde, korrekt analysiert wird**, und definieren Sie die Geschäftslogik, die angewendet werden soll. Wie die JSON analysiert wird, hängt von der Laufzeit ab, die Sie für Ihre Funktion verwenden. 

Der folgende Code zeigt beispielsweise, wie Sie über den AWS Lambda ** Funktionsblock ** Invoke und `exampleAttributeKey1` den Block „Kontaktattribute ** festlegen“ auf Folgendes zugreifen`exampleParameterKey1`: ** Node.JS

```
exports.handler = function(event, context, callback) {
// Example: access value from parameter (Invoke AWS Lambda function)
let parameter1 = event['Details']['Parameters']['exampleParameterKey1'];
  		  
// Example: access value from attribute (Set contact attributes block)
let attribute1 = event['Details']['ContactData']['Attributes']['exampleAttributeKey1'];
  		  
// Example: access customer's phone number from default data
let phone = event['Details']['ContactData']['CustomerEndpoint']['Address'];
  		  
// Apply your business logic with the values
// ...
}
```

## Überprüfen der Funktionsantwort
<a name="verify-function"></a>

**Tipp**  
Das Verweisen auf ein Array wird in einem Datenfluss nicht unterstützt. Arrays können nur in einer anderen Lambda-Funktion verwendet werden.

Die Antwort der Lambda-Funktion kann entweder eine STRING\_MAP oder eine JSON-Datei sein und muss bei der Konfiguration des ** Invoke AWS Lambda-Funktionsblocks im Flow festgelegt werden. ** Wenn die Antwortvalidierung auf STRING\_MAP gesetzt ist, sollte die Lambda-Funktion ein flaches Objekt aus Paaren des String-Typs zurückgeben. key/value Wenn die Antwortvalidierung auf JSON gesetzt ist, kann die Lambda-Funktion jedes gültige JSON-Format, einschließlich verschachtelter JSON-Formate zurückgeben.

![Der Ablaufblock zum Aufrufen der AWS Lambda-Funktion, der die Verwendung von entweder String-Map oder JSON hervorhebt.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/verify-function-lambda-response-validation.png)


Die Lambda-Antwort kann bis zu 32 KB groß sein. Wenn nicht erreicht wird, die Funktion eine Ausnahme auslöst, die Antwort nicht verstanden wird oder die Lambda-Funktion mehr Zeit benötigt als das Limit, springt der Flow zum `Error`-Label.

Testen Sie die von Ihrer Lambda-Funktion zurückgegebene Ausgabe, um sicherzustellen, dass sie korrekt verarbeitet wird, wenn sie an Connect Customer zurückgegeben wird. Das folgende Beispiel zeigt eine Beispielantwort in Node.JS:

```
exports.handler = function(event, context, callback) {
// Extract data from the event object	     
let phone = event['Details']['ContactData']['CustomerEndpoint']['Address'];    
	   
// Get information from your APIs

let customerAccountId = getAccountIdByPhone(phone);
let customerBalance = getBalanceByAccountId(customerAccountId);
  		  
    let resultMap = {
        AccountId: customerAccountId,
        Balance: '$' + customerBalance,
}

callback(null, resultMap);
}
```

Dieses Beispiel zeigt eine Beispielantwort, bei der Python verwendet wird:

```
def lambda_handler(event, context):
// Extract data from the event object
  phone = event['Details']['ContactData']['CustomerEndpoint']['Address']
  		  
// Get information from your APIs
  customerAccountId = getAccountIdByPhone(phone)
  customerBalance = getBalanceByAccountId(customerAccountId)
  		  
  	resultMap = {
  		"AccountId": customerAccountId,
  		"Balance": '$%s' % customerBalance
  		}
        
 return resultMap
```

Die von der Funktion zurückgegebene Ausgabe muss ein flaches Objekt aus key/value Paaren sein, dessen Werte nur alphanumerische Zeichen, Bindestriche und Unterstriche enthalten. Die Größe der zurückgegebenen Daten muss weniger als 32 KB an Daten betragen. UTF-8 

Das folgende Beispiel zeigt die JSON-Ausgabe dieser Lambda-Funktionen:

```
{
"AccountId": "a12345689",
"Balance": "$1000"
}
```

Wenn die Antwortvalidierung auf JSON gesetzt ist, kann die Lambda-Funktion sogar eine verschachtelte JSON-Datei zurückgeben, zum Beispiel:

```
{
  "Name": {
      "First": "John",
      "Last": "Doe"
  },
  "AccountId": "a12345689",
  "OrderIds": ["x123", "y123"]
}
```

Sie können jedes Ergebnis zurückgeben, solange es sich um einfache Schlüssel-Wert-Paare handelt.

## Verwenden der Lambda-Funktionsantwort
<a name="process-function-response"></a>

Es gibt zwei Möglichkeiten, die Funktionsantwort in Ihrem Flow zu verwenden. Sie können entweder direkt auf die von der Lambda-Funktion zurückgegebenen Variablen verweisen oder die von der Funktion zurückgegebenen Werte als Kontaktattribute speichern und dann auf die gespeicherten Attribute verweisen. Wenn Sie einen externen Verweis auf die Antwort einer Lambda-Funktion verwenden, erhält der Verweis immer die Antwort der zuletzt aufgerufenen Funktion. Um die Antwort einer Funktion zu verwenden, bevor eine nachfolgende Funktion aufgerufen wird, muss die Antwort als Kontaktattribut gespeichert oder als Parameter an die nächste Funktion übergeben werden.

### 1. Direktes Zugreifen auf Variablen
<a name="access-variables"></a>

 Wenn Sie direkt auf Variablen zugreifen, können Sie sie zwar in GesprächsFlowblöcken verwenden, sie sind jedoch nicht in Kontaktverfolgungsdatensätzen enthalten. Um direkt in einem Flow-Block auf diese Variablen zuzugreifen, fügen Sie den Block nach dem ** AWS Lambda ** Invoke-Funktionsblock hinzu und verweisen Sie dann auf die Attribute, wie im folgenden Beispiel gezeigt: 

```
Name - $.External.Name
Address - $.External.Address
CallerType - $.External.CallerType
```

Die folgende Abbildung zeigt die Seite „Eigenschaften“ des Blocks **Play prompt**. Die Variablen werden im Text-to-Speech-Block angegeben.

![Die Seite „Eigenschaften“ des Blocks „Play prompt“.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-useExternal.png)


Stellen Sie sicher, dass der für das Quellattribut angegebene Name mit dem von Lambda zurückgegebenen Schlüsselnamen übereinstimmt.

### 2. Speichern von Variablen als Kontaktattribute
<a name="store-variables"></a>

Wenn Sie die Variablen als Kontaktattribute speichern, können Sie sie in Ihrem gesamten Flow verwenden. Sie sind in Kontaktdatensätzen enthalten.

Um die als Kontaktattribute zurückgegebenen Werte zu speichern und sie dann zu referenzieren, verwenden Sie in Ihrem Flow nach dem ** AWS Lambda Funktionsblock ** Aufrufen einen ** Block „Kontaktattribute ** festlegen“. Wählen Sie **Use attribute**, **External** als **Type**. Folgen Sie dem Beispiel, das wir verwenden, und setzen Sie das **Destination Attribute** auf `MyAccountId` und legen Sie das **attribute** auf `AccountId` fest. Machen Sie dasselbe für `MyBalance` und **Balance**. Diese Konfiguration wird in der folgenden Abbildung dargestellt.

![Die Seite „Eigenschaften“ des Blocks „Set contact attributes“ (Kontaktattribute festlegen).](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-useInSetAttributes.png)


Fügen Sie die Adresse als **Source attribute (Quellattribut)** hinzu und verwenden Sie `returnedContactAddress` als den **Destination key (Zielschlüssel)**. Fügen Sie dann `CallerType` als **Source attribute** hinzu und verwenden Sie `returnedContactType` als **Destination key**, wie in der folgenden Abbildung dargestellt.

![Die Seite „Eigenschaften“ des Blocks „Play prompt“.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-useAttributeInPlayPrompt.png)


Stellen Sie sicher, dass der für das externe Quellattribut angegebene Name mit dem von Lambda zurückgegebenen Schlüsselnamen übereinstimmt.

## Tutorial: Eine Lambda-Funktion erstellen und in einem Flow aufrufen
<a name="tutorial-invokelambda"></a>

### Schritt 1: Ein Lambda-Beispiel erstellen
<a name="tutorial-invokelambda-step1"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [ https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie AWS Lambda unter Funktion ** erstellen aus**.

1. Wählen Sie **Author from scratch**, falls es nicht bereits ausgewählt ist. Geben Sie unter **Basic Information (Grundlegende Informationen)** für **Function name (Funktionsname)** **MyFirstConnectLambda** ein. Für alle anderen Optionen übernehmen wir die Standardeinstellungen. Diese Optionen sind in der folgenden Abbildung der AWS -Lambda-Konsole dargestellt.  
![Die AWS Lambda-Konsole.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambdafunctions-tutorial-create-function-name.png)

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

1. Löschen Sie im Feld **Code source** auf der Registerkarte **index.js** den Vorlagencode aus dem Code-Editor.

1. Kopieren Sie den folgenden Code und fügen Sie diesen in den Code-Editor ein, wie im folgenden Bild zu sehen:  
![Der Abschnitt „Code source“, die Schaltfläche „deploy.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambdafunctions-tutorial-code-source.png)

   ```
   exports.handler = async (event, context, callback) => {
   // Extract information
           const customerNumber = event.Details.ContactData.CustomerEndpoint.Address;
           const companyName = event.Details.Parameters.companyName;
   // Fetch data
           const balance = await fetchBalance(customerNumber, companyName);
           const support = await fetchSupportUrl(companyName);
   // Prepare result
           const resultMap = {
           customerBalance: balance,
           websiteUrl: support
           }
           callback(null, resultMap);
           }
           
           async function fetchBalance(customerPhoneNumber, companyName) {
   // Get data from your API Gateway or Database like DynamoDB
           return Math.floor(Math.random() * 1000);
           }
           
           async function fetchSupportUrl(companyName) {
   // Get data from your API Gateway or Database like DynamoDB
           return 'www.GGG.com/support';
           }
   ```
**Node.js 18 und später**  
Wenn Sie Node.js 18 oder höher verwenden, verwenden Sie `export const handler` stattdessen`exports.handler`.

   Dieser Code generiert ein zufälliges Ergebnis für CustomerBalance.

1. Wählen Sie **Bereitstellen**.

1. Nachdem Sie **Deploy** ausgewählt haben, wählen Sie **Test**, um den Test-Editor zu starten.

1. Wählen Sie im Dialogfeld **Testereignis konfigurieren** die Option **Neues Ereignis erstellen** aus. Geben Sie ** ConnectMock ** als ** Eventname ** den Testnamen ein.

1. Löschen Sie im Feld **Event JSON** den Beispielcode und geben Sie stattdessen den folgenden Code ein. 

   ```
   {
   "Details": {
   "ContactData": {
       "Attributes": {},
       "Channel": "VOICE",
       "ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
       "CustomerEndpoint": {
       "Address": "+1234567890",
       "Type": "TELEPHONE_NUMBER"
       },
   "InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
   "InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
   "InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
   "PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
   "Queue": {
       "ARN": "arn:aws:connect:eu-west-2:111111111111:instance/cccccccc-bbbb-dddd-eeee-ffffffffffff/queue/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
       "Name": "PasswordReset"
     },
   "SystemEndpoint": {
       "Address": "+1234567890",
       "Type": "TELEPHONE_NUMBER"
       } 
   },
   "Parameters": {
       "companyName": "GGG"
       }
   },
   "Name": "ContactFlowEvent"
   }
   ```

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

1. Wählen Sie **Test** aus. Sie sollten folgendes Bild sehen, das der folgenden Abbildung ähnelt:  
![Der Abschnitt „Code source“, die Schaltfläche „deploy.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambdafunctions-tutorial-code-source-response.png)

   Ihr Gleichgewicht wird anders sein. Der Code generiert eine Zufallszahl

### Schritt 2: Fügen Sie Ihr Lambda zum Connect-Kunden hinzu
<a name="tutorial-invokelambda-step2"></a>

1. Gehen Sie zur Connect-Kundenkonsole unter [ https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/). 

1. Wählen Sie Ihren Connect Customer-Instanzalias.  
![Die Seite mit den virtuellen Contact Center-Instanzen von Connect Customer, der Instanz-Alias.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/instance.png)

1. Wählen Sie im Navigationsmenü **Flows**.

1. Verwenden Sie in AWS Lambda diesem Abschnitt das ** Dropdownfeld ** Lambda-Funktionen, um auszuwählen. ** MyFirstConnectLambda **  
![Die Flows-Seite, der AWS Lambda-Abschnitt.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-add-myfirstconnectlambda.png)

1. Wählen Sie **Add Lambda Function**.

### Schritt 3: Erstellen des KontaktFlows
<a name="tutorial-invokelambda-step3"></a>

Die folgende Abbildung ist ein Beispiel für den Flow, den Sie mithilfe der Schritte in diesem Verfahren erstellen werden. Er enthält die folgenden Blöcke: **Kontaktattribute festlegen**, **Telefonansage abspielen**, ** AWS -Lambda-Funktion aufrufen**, einen weiteren Block **Kontaktattribute festlegen**, einen weiteren **Telefonansage abspielen**-Block und schließlich einen **Verbindung trennen**-Block.

![Ein Flow, der den Invoke AWS Lambda-Funktionsblock aufruft.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow.png)


1. Melden Sie sich auf der Connect Customer Admin-Website unter https://{{instance name}}.my.connect.aws/ an.

1. Rufen Sie über das Navigationsmenü **Routing**, **Flows**, **Create a contact flow** auf.

1. Ziehen Sie einen [Set contact attributes (Kontaktattribute festlegen)](set-contact-attributes.md)-Block auf das Raster und konfigurieren Sie die zugehörige Seite „Eigenschaften“, wie in der folgenden Abbildung dargestellt:   
![Ein Block „Set contact attributes“ (Kontaktattribute festlegen).](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-set-contact-attribute-1.png)

   1. **Namespace** = **User defined**.

   1. **Attribute** = **companyName**.

   1. Wählen Sie **Set manually** aus. **Value** = **GGG**.

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

1. Ziehen Sie einen [Play prompt (Telefonansage wiedergeben)](play.md)-Block auf das Raster und konfigurieren Sie die zugehörige Seite „Eigenschaften“, wie in der folgenden Abbildung dargestellt:   
![Ein Block „Play prompt“.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-1.png)

   1. Wählen Sie ** Text-to-speech oder chatten Sie Text**, ** setzen Sie manuell ** ein und legen Sie Interpret als SSML fest. ** ** ** ** Geben Sie den folgenden Text in das Feld für den Text ein, der vorgelesen werden soll:

      `Hello, thank you for calling $.Attributes.companyName inc.`

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

1. Ziehen Sie einen [Play prompt (Telefonansage wiedergeben)](play.md)-Block auf das Raster und konfigurieren Sie die zugehörige Seite „Eigenschaften“, wie in der folgenden Abbildung dargestellt:   
![Ein Block „Play prompt“.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-2.png)

   1. Wählen Sie „Text ** Text-to-speech oder Chat“**, ** „Manuell ** festlegen“ und stellen Sie „**Interpret als“ als ** ** Text ein**. Geben Sie den folgenden Text in das Feld für den Text ein, der vorgelesen werden soll:

      `Please try again later.`

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

1. Ziehen Sie einen [AWS Lambda Funktion](invoke-lambda-function-block.md)-Block auf das Raster und konfigurieren Sie die zugehörige Seite „Eigenschaften“, wie in der folgenden Abbildung dargestellt:   
![Ein Invoke AWS Lambda-Funktionsblock.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-invoke-lambda.png)

   1. Wählen Sie Manuell ** ** auswählen und wählen Sie dann ** MyFirstConnectLambda ** aus der Dropdownliste.

   1. Geben Sie im Feld **Destination Key** **companyName** ein. (Dies wird an Lambda gesendet.)

   1. Wählen Sie das Feld **Set dynamically** aus

   1. Wählen Sie für **Namespace** die Option **User Defined** aus.

   1. Geben Sie als **Attribute** **CompanyName** ein.

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

1. Ziehen Sie einen [Set contact attributes (Kontaktattribute festlegen)](set-contact-attributes.md)-Block auf das Raster, wählen Sie **Add another attribute** und konfigurieren Sie seine Eigenschaftsseite wie in der folgenden Abbildung gezeigt:   
![Ein Block „Set contact attributes“ (Kontaktattribute festlegen).](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-set-contact-attribute-2.png)

   1. **Namespace** = **User Defined**. **Attribut ** = ** MyBalance**.

   1. Wählen Sie **Dynamisch festlegen** aus. 

   1. **Namespace** = **External**.

   1. **Attribute** = **customerBalance**. Dies ist das Ergebnis von Lambda.

   1. Wählen Sie **Add another attribute (Weiteres Attribut hinzufügen)**.

   1. **Namespace ** = ** User-defined**.

   1. **Attribute** = **MyURL**.

   1. Wählen Sie **Set dynamically**. **Namespace** =**External**. 

   1. **Attribute** = **websiteUrl**. Dies ist das Ergebnis von Lambda.

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

1. Ziehen Sie einen [Play prompt (Telefonansage wiedergeben)](play.md)-Block auf das Raster und konfigurieren Sie die zugehörige Seite „Eigenschaften“, wie in der folgenden Abbildung dargestellt:   
![Ein Block „Play prompt“.](https://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-3.png)

   1. Wählen Sie ** Text-to-speech oder chatten Sie Text ** und setzen Sie ** Interpret ** auf ** ** SSML. Geben Sie den folgenden Text in das Feld ein.

      `Your remaining balance is <say-as interpret-as="characters">$.Attributes.MyBalance</say-as>.`

      `Thank you for calling $.Attributes.companyName.`

      `Visit $.Attributes.MyURL for more information.`

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

1. Ziehen Sie einen [Disconnect / hang up (Trennen/auflegen)](disconnect-hang-up.md)-Block auf das Raster. 

1. Verbinden Sie alle Blöcke so, dass Ihr Flow wie in der Abbildung am Anfang dieses Verfahrens aussieht.

1. Geben Sie ** MyFirstConnectFlow ** als Namen ein und wählen Sie dann ** Veröffentlichen**.

1. Wechseln Sie im Navigationsmenü zu **Channels**, **Phone numbers**. 

1. Wählen Sie Ihre Telefonnummer aus.

1. Wählen Sie ** MyFirstConnectFlow ** und wählen Sie ** Speichern**.

Probiere es jetzt aus. Rufen Sie die Nummer an. Sie sollten eine Begrüßungsnachricht, Ihr Guthaben und die Website, die Sie besuchen möchten, hören.