

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 Amazon Connect Zugriff auf Ihre AWS Lambda Funktionen
<a name="connect-lambda-functions"></a>

Amazon Connect kann mit Ihren eigenen Systemen interagieren und dynamisch verschiedene Wege in Flows nehmen. 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)
+ [Hinzufügen einer Lambda-Funktion zu Ihrer Amazon-Connect-Instance](#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 Lambda-Konsole verwenden, um die Lambda-Funktion zu Ihrer Instance hinzufügen wie im nächsten Schritt beschrieben: [Hinzufügen einer Lambda-Funktion zu Ihrer Amazon-Connect-Instance](#add-lambda-function). Hierdurch werden automatisch Berechtigungen hinzugefügt, die Amazon Connect den Aufruf der Lambda-Funktion gestatten. Wenn sich die Lambda-Funktion in einer anderen Region befindet, können Sie diese Ihrem Flow mittels des Flow-Designers und die Ressourcenberechtigung mittels des Befehls [add-permission](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html) hinzufügen. Als Prinzipal verwenden Sie `connect.amazonaws.com` und als ARN den ARN Ihrer Amazon-Connect-Instance. Weitere Informationen finden Sie unter [ Verwenden von ressourcenbasierten Richtlinien für AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) im *AWS Lambda -Entwicklerhandbuch*.

## Hinzufügen einer Lambda-Funktion zu Ihrer Amazon-Connect-Instance
<a name="add-lambda-function"></a>

Bevor Sie eine Lambda-Funktion in einem Fluss verwenden können, müssen Sie sie zu Ihrer Amazon-Connect-Instance hinzufügen.

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

1. Öffnen Sie die Amazon Connect Connect-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 Instancename erscheint in der URL, die Sie für den Zugriff auf Amazon Connect verwenden.   
![\[Die Seite „Instances des virtuellen Contact Centers für Amazon Connect“, „Instance Alias“.\]](http://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** aus, 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 immer von Amazon Connect für jeden Kontakt weitergegeben. Einige Parameter sind optional.

  Dieser Abschnitt kann Attribute enthalten, die zuvor einem Kontakt zugeordnet wurden, z. B. wenn der Block **Set contact attributes** in einem Flow verwendet wurde. Diese Map kann leer sein, wenn es keine gespeicherten Attribute gibt.

  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).\]](http://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 Funktionsblock „ AWS Lambda aufrufen“.\]](http://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 Amazon Connect diesen bis zu 3 Mal, maximal 8 Sekunden lang. An diesem Punkt fährt der Flow mit dem Fehlerzweig fort. 

Weitere Informationen darüber, wie Lambda es erneut versucht, finden Sie unter [Fehlerbehandlung und automatische Wiederholungen](https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html) in Lambda. AWS 

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

Amazon Connect 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 Amazon Connect zu übergeben, konfigurieren Sie Ihre Funktion so, dass die vom ** AWS Lambda Funktionsblock Invoke** oder **Set contact attributes** gesendete JSON-Anfrage 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 den Block **Set contact attributes mithilfe `exampleAttributeKey1` von Node.JS** darauf zugreifen`exampleParameterKey1`:

```
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 STRING\$1MAP oder JSON sein und muss bei der Konfiguration des **Invoke AWS Lambda-Funktionsblocks** im Flow festgelegt werden. Wenn die Antwortvalidierung auf STRING\$1MAP gesetzt ist, sollte die Lambda-Funktion ein flaches Objekt mit key/value Paaren des String-Typs zurückgeben. Wenn die Antwortvalidierung auf JSON gesetzt ist, kann die Lambda-Funktion jedes gültige JSON-Format, einschließlich verschachtelter JSON-Formate zurückgeben.

![\[Der Flussblock der Funktion „ AWS Lambda aufrufen“, der die Verwendung von entweder string map oder json hervorhebt.\]](http://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 sich zu vergewissern, dass sie bei der Rückgabe an Amazon Connect korrekt genutzt 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 unter 32 Kb UTF-8-Daten liegen.

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 Funktionsblock Invoke** hinzu und referenzieren Sie dann 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 sind im text-to-speech Block angegeben.

![\[Die Seite „Eigenschaften“ des Blocks „Prompt abspielen“.\]](http://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 im gesamten Flow verwenden, und sie sind in den Kontaktverfolgungsdatensätzen enthalten.

Um die zurückgegebenen Werte als Kontaktattribute zu speichern und dann auf sie zu verweisen, verwenden Sie in Ihrem Flow nach dem ** AWS Lambda Funktionsblock Aufrufen** den 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).\]](http://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“.\]](http://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 im AWS Lambda Menü **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.\]](http://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.\]](http://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';
           }
   ```

   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 **unter Eventname **ConnectMock****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.\]](http://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: Hinzufügen von Lambda zu Amazon Connect
<a name="tutorial-invokelambda-step2"></a>

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

1. Wählen Sie Ihren Amazon-Connect-Instance-Alias.  
![\[Die Seite „Instances des virtuellen Contact Centers für Amazon Connect“, „Instance Alias“.\]](http://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 Dropdown-Feld **Lambda-Funktionen**, um auszuwählen. **MyFirstConnectLambda**  
![\[Die Flows-Seite, der AWS Lambda-Abschnitt.\]](http://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 Funktionsblock Invoke AWS Lambda aufruft.\]](http://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow.png)


1. Melden Sie sich auf der Amazon Connect 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).\]](http://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“.\]](http://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-1.png)

   1. ****Wählen Sie **Text-to-speech Text für den Chat** aus, legen Sie ihn **manuell fest und stellen Sie Interpret as auf SSML** ein.**** 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“.\]](http://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-2.png)

   1. Wählen Sie **Text-to-speech oder Chat-Text**, **Manuell festlegen** und **legen Sie Interpretieren als** auf **Text** fest. 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.\]](http://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).\]](http://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“.\]](http://docs.aws.amazon.com/de_de/connect/latest/adminguide/images/lambda-exampleFlow-play-prompt-3.png)

   1. Wählen Sie **Text Text-to-speech oder chatten** Sie aus und legen Sie **Interpret as** auf **SSML** fest. 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**den 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.