Serverless Computing mit OPENFAAS

Grundlagen und Architektur

  • Framework für Serverless Functions
  • Open source GitHub
  • Integriertes Portal (UI) für Deployment / Test
  • Ausführung auf Docker Swarm oder Kubernetes
  • Skalierbar
  • Verwendung diverser Programmiersprachen GO, node.js, .NET ...


Die Funktionen erhalten die Anfragen per HTTP POST und Port 8080.

Architektur

Function Watchdog

  • kleiner HTTP-Server
  • geschrieben in Golong
  • erlaubt die Nutzung jedes Consolen-Programmes als Funktion
  • Sendet HTTP-Anfrage an STDIN (Consolen Eingaben) des Zielprogramms
  • Empfängt STDOUT (Consolen Ausgabe) und sendet sie per HTTP

Funktionsentwicklung mit .NET Core

Consolen-Anwendung

Verwendung des Function Watchdog

Webanwendung

Erlaubt die Verwendung von Caching und aufwendige Ressourcen ...

Frameworks (Beispiele)
  • ASP.NET Core WebAPI
  • NancyFX

Funktionen für Amazon Alexa

Architektur

Anlegen Entwickler-Zugang

https://developer.amazon.com/de/

Starten: ALEXA > Getting Started

Skill bearbeiten / neu erstellen

Allgemeine Informationen

Erstellung:
  • Type
  • Sprache


Erstellung / Bearbeitung:
  • Name
  • Aufruf

Interaction Modell

Befehle (Intent Schema)
Wichtig: auch Standardbefehle z.B. Hilfe vorsehen
Optional: Defintion von Platzhaltern / Variablen (Slots)
{
	"intents":
	  [
		{  "intent": "greeting"  },
		{  "intent": "sendoff"
		   "slots": [{
			"name": "NextMeetup", 
			"type": "AMAZON.DATE"
		  }] 	 
		},
		{  "intent": "AMAZON.HelpIntent"  },
		{  "intent": "AMAZON.StopIntent"  }
	  ]  
	}

Zuordnung Aufruf-Befehl (Sample Uterances)

greeting sag hallo
	greeting beginne treffen
	breaknow pause
	sendoff sag auf wiedersehen
	sendoff beende treffen
	sendoff schluss jetzt

Definition Variablentypen (Custom Slot Types) - Optional

Globale Einstellungen z.B. Endpunkt

Endpunkt muss verschlüsselte Kommunikation (HTTPS) unterstützen.

SSL-Zertifikat für Endpunkt

  • Zertifikat für definierten Endpunkt (auch Let's Encrypt möglich)
  • Wild Card Zertifikat z.B. von Thawte
  • Selbst-signiertes Zertifikat

Testen

Function-Entwicklung (Auswahl)

node.js: alexa-skills-kit-sdk-for-nodejs (Offiziell)

.NET: alexa-skills-dotnet (Community)

Manuell auf Basis des json-Schema