{"id":25,"date":"2019-03-18T18:18:48","date_gmt":"2019-03-18T17:18:48","guid":{"rendered":"https:\/\/azure.teamprojects.de\/?page_id=25"},"modified":"2019-07-12T09:16:40","modified_gmt":"2019-07-12T07:16:40","slug":"amazon-echo-alexa","status":"publish","type":"page","link":"https:\/\/azure.teamprojects.de\/?page_id=25","title":{"rendered":"Amazon Echo &#8211; Alexa"},"content":{"rendered":"\n<p><strong>Verbindung eines Alexa-Skills mit MS Azure<\/strong><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_17 counter-hierarchy counter-decimal ez-toc-grey\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" style=\"display: none;\"><i class=\"ez-toc-glyphicon ez-toc-icon-toggle\"><\/i><\/a><\/span><\/div>\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/azure.teamprojects.de\/?page_id=25\/#Amazon_Alexa_Skill_eroeffnen\" title=\"Amazon Alexa Skill er\u00f6ffnen\">Amazon Alexa Skill er\u00f6ffnen<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/azure.teamprojects.de\/?page_id=25\/#Microsoft_Visual_Studio_2017_mit_Azure-Package\" title=\"Microsoft Visual Studio 2017 mit Azure-Package\">Microsoft Visual Studio 2017 mit Azure-Package<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/azure.teamprojects.de\/?page_id=25\/#ngrok\" title=\"ngrok\">ngrok<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/azure.teamprojects.de\/?page_id=25\/#Skill_testen\" title=\"Skill testen\">Skill testen<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/azure.teamprojects.de\/?page_id=25\/#Funktionalitaet_erweitern\" title=\"Funktionalit\u00e4t erweitern\">Funktionalit\u00e4t erweitern<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/azure.teamprojects.de\/?page_id=25\/#Microsoft_Azure\" title=\"Microsoft Azure\">Microsoft Azure<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Amazon_Alexa_Skill_eroeffnen\"><\/span>Amazon Alexa Skill er\u00f6ffnen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In diesem Teil des Tutorials m\u00f6chten wir zeigen, wie man am einfachsten einen Alexa-Skill f\u00fcr Amazon\u2019s Echo mit der Cloud-Plattform Azure von Microsoft verbindet. <\/p>\n\n\n\n<p>Dazu ben\u00f6tigt man\nfolgende drei Dinge:<\/p>\n\n\n\n<p>&#8211; Amazon Developer Account<\/p>\n\n\n\n<p>&#8211; Microsofts Visual Studio (mindestens 2017 mit\nAzure-Package)<\/p>\n\n\n\n<p>&#8211; Microsoft Azure\nAccount mit g\u00fcltiger Hochschullizenz oder g\u00fcltiger Lizenz f\u00fcr Funktionen und\nApps<\/p>\n\n\n\n<p>Der Skill der dabei\nerstellt werden soll, soll die \u00dcberschrift des neuesten bzw. letzten Artikels\naus dem Online-Blog vom App Consult Team vorlesen. <\/p>\n\n\n\n<p>Einen Link zum\nneuesten Blogeintrag finden Sie hier:<\/p>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-app-consult-team\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"eQch6jJsP0\"><a href=\"https:\/\/blogs.msdn.microsoft.com\/appconsult\/2018\/12\/18\/add-ai-feature-on-xamarin-forms-app\/\">Add AI feature to Xamarin.Forms app<\/a><\/blockquote><iframe title=\"&#8220;Add AI feature to Xamarin.Forms app&#8221; &#8212; App Consult Team\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"https:\/\/blogs.msdn.microsoft.com\/appconsult\/2018\/12\/18\/add-ai-feature-on-xamarin-forms-app\/embed\/#?secret=eQch6jJsP0\" data-secret=\"eQch6jJsP0\" width=\"525\" height=\"296\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Amazon Developer\nAccount:<\/p>\n\n\n\n<p>Wir beginnen mit der\nErstellung des Skills. Dazu sollten wir uns auf die amazondeveloper-Website\nunter <a href=\"https:\/\/developer.amazon.com\/de\/\">https:\/\/developer.amazon.com\/de\/<\/a>\nbegeben. Hier kliecken wir oben links auf \u201eamazon alexa\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.27.42-1-1024x576.png\" alt=\"\" class=\"wp-image-42\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.27.42-1-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.27.42-1-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.27.42-1-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.27.42-1.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 1<\/p>\n\n\n\n<p>Nun klicken wir oben\nrechts auf \u201eAnmelden\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.19-1024x576.png\" alt=\"\" class=\"wp-image-43\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.19-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.19-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.19-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.19.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 2<\/p>\n\n\n\n<p>Hier kann man sich nun ganz normal mit seinen Zugangsdaten f\u00fcr Amazon-Prime oder Amazon.de anmelden. Sollte man keine Zugangsdaten besitzen, so kann man sich unten unter \u201eErstellen Sie Ihr Konto\u201c ein neues Konto er\u00f6ffnen:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.41-1024x576.png\" alt=\"\" class=\"wp-image-46\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.41-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.41-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.41-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.41.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 3<\/p>\n\n\n\n<p>Sobald wir uns\neingeloggt haben, erscheint folgende Ansicht. Hier klicken wir links oben auf\n\u201eSkill-Entwickler\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.55-1024x576.png\" alt=\"\" class=\"wp-image-47\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.55-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.55-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.55-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.29.55.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 4<\/p>\n\n\n\n<p>Da wir ja einen\nSkill entwickeln wollen, klicken wir erneut auf den rechten blauen Button\n\u201eSkill entwickeln\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.30.08-1024x576.png\" alt=\"\" class=\"wp-image-48\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.30.08-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.30.08-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.30.08-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.30.08.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 5<\/p>\n\n\n\n<p>Hier in dieser Ansicht finden wir eine Liste aller bereits\nerstellten Skills. Wir wollen aber im Sinne des Tutorials einen neuen Skill\nerstellen, weshalb wir erneut auf \u201eCreate Skill\u201c klicken. Wie bereits aufgefallen\nsein mag, hat sich die Sprache automatisch von deutsch auf englisch\numgeschaltet:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.31.11-1024x576.png\" alt=\"\" class=\"wp-image-49\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.31.11-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.31.11-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.31.11-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.31.11.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 6<\/p>\n\n\n\n<p>Ab hier beginnen wir mit der Erstellung des neuen Skills. Zuerst d\u00fcrfen wir unserem Skill einen Namen geben und die Standard-Sprache w\u00e4hlen. Wer das Tutorial zum aller ersten Mal macht und noch keine Erfahrung mit Alexa-Skills und Microsoft Azure hat, der sollte f\u00fcr den Anfang diesselben Namen und Einstellungen nutzten wie auf den Abbildungen zu sehen: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.04-1024x576.png\" alt=\"\" class=\"wp-image-50\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.04-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.04-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.04-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.04.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 7<\/p>\n\n\n\n<p>Als Voreinstellung\nsind \u201eCustom\u201c und \u201eStart from scratch\u201c ausgew\u00e4hlt und k\u00f6nnen so beibehalten\nwerden. Nun klicken wir auf \u201eChoose\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.31-1024x576.png\" alt=\"\" class=\"wp-image-51\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.31-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.31-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.31-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.33.31.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 8<\/p>\n\n\n\n<p>Nun sehen wir auf\nder rechten Seite eine \u201eSkill builder checklist\u201c. Hier k\u00f6nnen wir sehen, welche\nvier Schritte mindestens erf\u00fcllt sein m\u00fcssen, um einen erstellten Skill auch\nnutzen zu k\u00f6nnen. Die ersten vier Schritte sind zwingend notwendig. Der f\u00fcnfte\nund letzte Schritt ist optional und k\u00fcmmert uns hier weiter nicht.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.35.52-1024x576.png\" alt=\"\" class=\"wp-image-52\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.35.52-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.35.52-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.35.52-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.35.52.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 9<\/p>\n\n\n\n<p>Als erstes kommen\nwir zu Schritt 1 und klicken dazu links auf \u201eInvocation\u201c. Hier w\u00e4hlen wir den\n\u201eSkill Invocation Name\u201c aus, was soviel wie Aufrufname hei\u00dft. Mit diesem Name\nk\u00f6nnen wir sp\u00e4ter \u00fcber Alexa unseren Skill aufrufen bzw. starten lassen. Wir\nhaben hier erneut und der einfachheitshalber \u201eappconsult\u201c verwendet:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.38.39-1024x576.png\" alt=\"\" class=\"wp-image-53\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.38.39-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.38.39-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.38.39-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.38.39.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 10<\/p>\n\n\n\n<p>In Schritt zwei\nklicken wir auf der linken Seite auf das rechts von \u201eIntents\u201c stehende \u201e+ Add\u201c.\nHier erstellen wir eine \u201eAbsicht\u201c und gebe ihr einen Namen. Zus\u00e4tzlich\nverfassen wir einige \u201eAbsichten\u201c bzw. Befehle \u00fcber die wir Alexa mitteilen\nwollen, welche Funktion wir als n\u00e4chsten von unserem Skill erwarten. Hier ist\nes eigentlich egal welchen Namen man eingibt. Wir haben uns hier f\u00fcr\n\u201eLastPosts\u201c entschieden:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.39.32-1024x576.png\" alt=\"\" class=\"wp-image-54\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.39.32-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.39.32-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.39.32-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.39.32.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 11<\/p>\n\n\n\n<p>Im Feld \u201eSample\nUtterances\u201c geben wir folgende drei Intents bzw. Absichten ein. Da wir zuvor\ndie Standardsprache auf englisch eingestellt haben, geben wir nun auch alle\nAbsichten in english ein. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.00-1024x576.png\" alt=\"\" class=\"wp-image-55\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.00-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.00-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.00-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.00.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 12<\/p>\n\n\n\n<p>Intent Slots lassen\nwir dieses mal au\u00dfer acht, da wir Standardabsichten verwenden und keine\nAbsichten mit variablen Inhalten. Ein variabler Inhalt w\u00e4re z.B. wenn ich ein Absicht\nin der vorherigen Abbildung erstellen und fragen w\u00fcrde \u201etell me the article\nfrom yesterday\u201c oder \u201etell me the article from first july 2018\u201c. Hier w\u00e4re die\nZeitangabe am Ende variabel und m\u00fcsste bei \u201eIntent Slots\u201c auch als solche\ndefiniert werden. Aber hier wird diese Funktion nicht ben\u00f6tigt.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.28-1024x576.png\" alt=\"\" class=\"wp-image-56\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.28-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.28-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.28-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.28.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 13<\/p>\n\n\n\n<p>Kommen wir nun zu\nSchritt drei unserer Checkliste. Nun k\u00f6nnen wir unseren Skill oben mit \u201eSave\nModel\u201c speichern und mit \u201eBuild Model\u201c builden um zwischendurch testen zu\nk\u00f6nnen, ob wir bisher alle Schritte fehlerfrei ausgef\u00fchrt haben.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.55-1024x576.png\" alt=\"\" class=\"wp-image-57\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.55-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.55-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.55-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.43.55.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 14<\/p>\n\n\n\n<p>Ist der\nBuild-Vorgang erfolgreich gewesen, so sehen wir unten rechts eine entsprechende\nPop-up-Nachricht mit \u201eBuild Successful\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.45.43-1024x576.png\" alt=\"\" class=\"wp-image-58\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.45.43-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.45.43-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.45.43-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-14.45.43.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 15<\/p>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"Microsoft_Visual_Studio_2017_mit_Azure-Package\"><\/span><strong>Microsoft Visual Studio 2017 mit Azure-Package<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Um mit Schritt vier,\ndem \u201eEndpoint\u201c bzw. Zugangspunkt weiter machen zu k\u00f6nnen, m\u00fcssen wir nun den\nCode, welchen wir f\u00fcr unseren Skill verwenden wollen in MS Visual Studio\nentwickeln und dann ver\u00f6ffentlichen. Auf diesen ver\u00f6ffentlichten Code k\u00f6nnen\nwir dann im Endpoint verweisen, damit unser Skill wei\u00df auf welchen Code es sich\nbeziehen soll.<\/p>\n\n\n\n<p>Als aller erstes\n\u00f6ffnen wir Microsoft Visual Studio 2017 und melden uns mit den selben\nZugangsdaten wie zum Azure Portal an. Dann klicken wir links oben auf \u201eDatei\u201c\n-&gt; \u201eNeu\u201c -&gt; \u201eProjekt\u201c um ein neues Projekt names \u201ealexaazure\u201c zu\nerstellen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.13.34-1024x576.png\" alt=\"\" class=\"wp-image-59\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.13.34-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.13.34-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.13.34-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.13.34.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 16<\/p>\n\n\n\n<p>Es \u00f6ffnet sich ein\nweiteres Fenster. Hier w\u00e4hlen wir links mittig \u201eHttp trigger\u201c und rechts bei\n\u201eAccess rights\u201c w\u00e4hlen wir \u201eAnonymous\u201c und klicken anschlie\u00dfen auf \u201eok\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.15.25-1024x576.png\" alt=\"\" class=\"wp-image-60\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.15.25-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.15.25-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.15.25-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.15.25.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 17<\/p>\n\n\n\n<p>Nun \u00f6ffnet sich eine\nStandard-Codevorlage in der viel rot unterstrichen ist. Klickt man einmal oben\nmittig auf das gr\u00fcne \u201ePlay\u201c-Symbol \u201ealexaazure\u201c um den Code zu builden, dann\nverschwinden alle roten Markierungen. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.16.01-1024x576.png\" alt=\"\" class=\"wp-image-61\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.16.01-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.16.01-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.16.01-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.16.01.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 18<\/p>\n\n\n\n<p>Bevor wir nun\nweitermachen k\u00f6nnen, m\u00fcssen vorher einige \u201eNuGet-Pakete\u201c installiert werden.\nDazu klicken wir rechts in der Projektmappe auf unseren Projektnamen\n\u201ealexaazure\u201c mit einem Linksklick drauf und dann anschlie\u00dfend auf \u201eNuGet-Pakete\nverwalten&#8230;\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.03-1024x576.png\" alt=\"\" class=\"wp-image-62\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.03-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.03-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.03-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.03.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 19<\/p>\n\n\n\n<p>Hier geben wir nun\nim Suchfeld \u201eMicrosoft.NET.Sdk.Functions\u201c ein und installieren die neueste\nVersion. Meist ist dieses Paket bereits vorinstalliert und man kann sich diesen\nSchritt sparen. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.32-1024x576.png\" alt=\"\" class=\"wp-image-63\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.32-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.32-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.32-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.17.32.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 20<\/p>\n\n\n\n<p>Danach installieren\nwir die neueste Version von Alexa.NET:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.18.16-1024x576.png\" alt=\"\" class=\"wp-image-64\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.18.16-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.18.16-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.18.16-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.18.16.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 21<\/p>\n\n\n\n<p>Zum Schluss wird die\nneueste Version von \u201eMicrosoft.SyndicationFeed.ReaderWriter\u201c installiert.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.25.06-1024x576.png\" alt=\"\" class=\"wp-image-65\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.25.06-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.25.06-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.25.06-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.25.06.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 22<\/p>\n\n\n\n<p>Als n\u00e4chstes\nersetzen wir unsere Standard-Codevorlage mit dem hier angegeben Code. Dieser\nCode sorgt daf\u00fcr, dass wenn wir \u00fcber Alexa unseren Skill aufrufen, dieser mit\n\u201eWelcome to Appconsult\u201c antwortet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System;\nusing System.IO;\nusing System.Threading.Tasks;\nusing Microsoft.AspNetCore.Mvc;\nusing Microsoft.Azure.WebJobs;\nusing Microsoft.Azure.WebJobs.Extensions.Http;\nusing Microsoft.AspNetCore.Http;\nusing Microsoft.Extensions.Logging;\nusing Newtonsoft.Json;\nusing Alexa.NET.Request;\nusing Alexa.NET.Response;\nusing Alexa.NET;\nusing Alexa.NET.Request.Type;\nusing System.Collections.Generic;\nusing System.Xml;\nusing Microsoft.SyndicationFeed.Rss;\nusing System.Linq;\n\nnamespace FunctionApp4\n{\n    public static class Function1\n    {\n        [FunctionName(\"Alexa\")]\n        public static async Task&lt;IActionResult> Run(\n            [HttpTrigger(AuthorizationLevel.Anonymous, \"post\", Route = null)] HttpRequest req,\n            ILogger log)\n        {\n            string json = await req.ReadAsStringAsync();\n            var skillRequest = JsonConvert.DeserializeObject&lt;SkillRequest>(json);\n\n            var requestType = skillRequest.GetRequestType();\n\n            SkillResponse response = null;\n\n            if (requestType == typeof(LaunchRequest))\n            {\n                response = ResponseBuilder.Tell(\"Welcome to AppConsult!\");\n                response.Response.ShouldEndSession = false;\n            }\n\n\n            return new OkObjectResult(response);\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"ngrok\"><\/span>ngrok<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Da wir den Code noch\nnicht ganz fertig entwickelt haben und somit auch noch nicht \u00fcber Azure\nver\u00f6ffentlichen wollen, brauchen wir einen anderen Weg, wie wir den Code\ntrotzdem ver\u00f6ffentlichen k\u00f6nnen um ihn als Endpoint f\u00fcr unseren Skill zuweisen\nund testen zu k\u00f6nnen. <\/p>\n\n\n\n<p>Dazu gehen wir auf\ndie Webseite <a href=\"https:\/\/ngrok.com\">https:\/\/ngrok.com<\/a> , registrieren\nbzw. loggen uns dort ein und klicken dann links oben auf \u201eDownloads\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.29.18-1024x576.png\" alt=\"\" class=\"wp-image-153\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.29.18-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.29.18-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.29.18-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-15.29.18.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 23<\/p>\n\n\n\n<p>Hier downloaden wird\ndas Programm \u201engrok\u201c, welches es uns erm\u00f6glicht unseren Code zu testzwecken\nunabh\u00e4ngig von Azure zu ver\u00f6ffentlichen. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-16.10.43-1024x576.png\" alt=\"\" class=\"wp-image-154\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-16.10.43-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-16.10.43-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-16.10.43-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-16.10.43.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 24<\/p>\n\n\n\n<p>Haben wir den Code\nin MS Visual Studio 2017 gebuilded, so erscheint anschlie\u00dfend ein\nEingabefenster mit folgendem Inhalt. Wichtig ist hierbei die gr\u00fcne Nummer in\n\u201ehttp:\/\/localhost:<strong><em>7071<\/em><\/strong>\/api\/Alexa\u201c. Diesen Wert m\u00fcssen wir\nuns merken. <\/p>\n\n\n\n<ul class=\"is-layout-flex wp-block-gallery-1 wp-block-gallery columns-1 is-cropped\"><li class=\"blocks-gallery-item\"><figure><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-20-01.53.00-1024x576.png\" alt=\"\" data-id=\"157\" data-link=\"https:\/\/azure.teamprojects.de\/?attachment_id=157\" class=\"wp-image-157\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-20-01.53.00-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-20-01.53.00-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-20-01.53.00-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-20-01.53.00.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/li><\/ul>\n\n\n\n<p>Abbildung 25<\/p>\n\n\n\n<p>Anschlie\u00dfend \u00f6ffnen\nwir das \u201engrok\u201c-Progamm und es erscheint erneut eine Eingabeaufforderung wo wir\nden vorherigen Wert eingeben zusammen mit folgendem Befehl:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u201engrok http 7071\u201c<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.54.40-1-1024x576.png\" alt=\"\" class=\"wp-image-158\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.54.40-1-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.54.40-1-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.54.40-1-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.54.40-1.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 26<\/p>\n\n\n\n<p>Jetzt wird uns im\nbesten Falle eine erfolgreiche Verbindung zu unserem Code angezeigt, welcher\nnun auch ver\u00f6ffentlicht ist. Hier notieren wird uns nun den Link nach dem\nzweiten \u201eForwarding\u201c, n\u00e4mlich: \u201ehttps:\/\/44d4a985.grok.io\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.55.42-1024x576.png\" alt=\"\" class=\"wp-image-159\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.55.42-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.55.42-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.55.42-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-21.55.42.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 27<\/p>\n\n\n\n<p>Da wir jetzt einen\nCode ver\u00f6ffentlicht haben und auch einen Link haben, den wir als Endpoint\nverwenden k\u00f6nnen, so k\u00f6nnen wir mit dem vierten und letzten Schritt unseres\nSkills auf der Amazon Developer Webseite fortfahren.<\/p>\n\n\n\n<p>Hierzu klicken wir\nlinks unten auf \u201eEndpoint\u201c und w\u00e4hlen \u201eHTTPS\u201c aus. Im ersten Feld bei Default\nRegion geben wir den vorher \u00fcber ngrok herausgefundenen und mit \u201e\/api\/alexa\u201c\nerg\u00e4nzten Link ein: <\/p>\n\n\n\n<p>&nbsp;\u201ehttps:\/\/44d4a985.grok.io\/api\/alexa\u201c<\/p>\n\n\n\n<p>Ein Feld weiter\ndrunter w\u00e4hlen wir den zweiten Punkt aus:<\/p>\n\n\n\n<p>\u201eMy development endpoint is a sub-domain of a domain\nthat has a wildcard certificate from a certificate authority\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.13-1024x576.png\" alt=\"\" class=\"wp-image-160\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.13-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.13-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.13-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.13.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 28<\/p>\n\n\n\n<p>Anschlie\u00dfend klicken\nwir oben links auf \u201eSave Endpoints\u201c um den Endpoinz zu speichern und unseren\nfertigen Skill nun testen zu k\u00f6nnen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.28-1024x576.png\" alt=\"\" class=\"wp-image-161\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.28-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.28-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.28-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.07.28.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"Skill_testen\"><\/span>Skill testen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>F\u00fcr den Test klicken\nwir oben auf \u201eTest\u201c und aktivieren die Testfunktion in dem wir von \u201eOff\u201c auf\n\u201eDevelopment\u201c springen.<\/p>\n\n\n\n<p>Abbildung 29<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.08.59-1024x576.png\" alt=\"\" class=\"wp-image-162\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.08.59-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.08.59-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.08.59-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.08.59.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 30<\/p>\n\n\n\n<p>Geben wir nun als\nBefehl \u201ealexa open appconsult\u201c ein, so sollte der Simulator richtigerweise wie\nprogrammiert mit \u201eWelcome to AppConsult!\u201c antworten. Tut es dies, so ist mit\ndem Code und dem Skill soweit alles in Ordnung. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.22.33-1024x576.png\" alt=\"\" class=\"wp-image-163\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.22.33-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.22.33-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.22.33-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.22.33.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 31<\/p>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"Funktionalitaet_erweitern\"><\/span>Funktionalit\u00e4t erweitern<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Da wir nun wissen, dass unser Code funktioniert,\nso k\u00f6nnen wir diesen wie folgt erweitern und einige weitere Funktionalit\u00e4ten\nnutzen zu k\u00f6nnen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System;\nusing System.IO;\nusing System.Threading.Tasks;\nusing Microsoft.AspNetCore.Mvc;\nusing Microsoft.Azure.WebJobs;\nusing Microsoft.Azure.WebJobs.Extensions.Http;\nusing Microsoft.AspNetCore.Http;\nusing Microsoft.Extensions.Logging;\nusing Newtonsoft.Json;\nusing Alexa.NET.Request;\nusing Alexa.NET.Response;\nusing Alexa.NET;\nusing Alexa.NET.Request.Type;\nusing System.Collections.Generic;\nusing System.Xml;\nusing Microsoft.SyndicationFeed.Rss;\nusing System.Linq;\n\nnamespace FunctionApp4\n{\n    public static class Function1\n    {\n        [FunctionName(\"Alexa\")]\n        public static async Task&lt;IActionResult> Run(\n            [HttpTrigger(AuthorizationLevel.Anonymous, \"post\", Route = null)] HttpRequest req,\n            ILogger log)\n        {\n            string json = await req.ReadAsStringAsync();\n            var skillRequest = JsonConvert.DeserializeObject&lt;SkillRequest>(json);\n\n            var requestType = skillRequest.GetRequestType();\n\n            SkillResponse response = null;\n\n            if (requestType == typeof(LaunchRequest))\n            {\n                response = ResponseBuilder.Tell(\"Welcome to AppConsult!\");\n                response.Response.ShouldEndSession = false;\n            }\n\n            else if (requestType == typeof(IntentRequest))\n            {\n                var intentRequest = skillRequest.Request as IntentRequest;\n\n                if (intentRequest.Intent.Name == \"LastPosts\")\n                {\n                    string rss = \"https:\/\/blogs.msdn.microsoft.com\/appconsult\/feed\/\";\n                    List&lt;string> news = await ParseFeed(rss);\n\n                    string output = $\"The title of the last article is {news.FirstOrDefault()}\";\n\n                    response = ResponseBuilder.Tell(output);\n                }\n            }\n\n            return new OkObjectResult(response);\n        }\n\n        private static async Task&lt;List&lt;string>> ParseFeed(string url)\n        {\n            List&lt;string> news = new List&lt;string>();\n            using (var xmlReader = XmlReader.Create(url, new XmlReaderSettings { Async = true }))\n            {\n                RssFeedReader feedReader = new RssFeedReader(xmlReader);\n                while (await feedReader.Read())\n                {\n                    if (feedReader.ElementType == Microsoft.SyndicationFeed.SyndicationElementType.Item)\n                    {\n                        var item = await feedReader.ReadItem();\n                        news.Add(item.Title);\n                    }\n                }\n            }\n\n            return news;\n        }\n\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>Nun f\u00fchren wir einen erneuten Test durch und\nFragen auch nach dem neuesten Artikel aus dem RSS-Feed von AppConsult. Und wie\nwir sehen k\u00f6nnen bekommen wir als R\u00fcckmeldung tats\u00e4chlich den neuesten bzw.\nletzten Artikel von AppConsult von MSN.de.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.31.27-1024x576.png\" alt=\"\" class=\"wp-image-164\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.31.27-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.31.27-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.31.27-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.31.27.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 32<\/p>\n\n\n\n<p>Zum Beweis sehen wir hier tats\u00e4chlich den\nletzten Eintrag \u201eAdd Al feature to Xamarin.Forms app\u201c vom App Consult Team vom\n18. Dezember 2018 von \u201eKazukiOta\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.32.28-1024x576.png\" alt=\"\" class=\"wp-image-165\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.32.28-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.32.28-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.32.28-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.32.28.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 33<\/p>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"Microsoft_Azure\"><\/span><strong>Microsoft Azure<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Da nun sowohl unser Code als auch unser\nAlexa-Skill einwandfrei funktioniert, k\u00f6nnen wir diesen nun \u00fcber Azure\nver\u00f6ffentlichen und die eingehenden und ausgehenden Daten sowie die\nVerbindungsdaten verfolgen und beobachten. <\/p>\n\n\n\n<p>Hierzu machen wir erneut einen Rechtsklick auf\nden Projektnamen \u201ealexaazure\u201c in der Projektmappe und klicken dann auf\n\u201eVer\u00f6ffentlichen&#8230;\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.42-1024x576.png\" alt=\"\" class=\"wp-image-166\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.42-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.42-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.42-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.42.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 34<\/p>\n\n\n\n<p>Im neuen Fenster w\u00e4hlen wir \u201eNeues Element\nerstellen\u201c und dann \u201eVer\u00f6ffentlichen\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.56-1024x576.png\" alt=\"\" class=\"wp-image-167\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.56-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.56-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.56-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.33.56.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 35<\/p>\n\n\n\n<p>Bei \u201eApp-Name\u201c, \u201eRessourcengruppe\u201c und\n\u201eSpeicherkonto\u201c w\u00e4hlen wir uns beliebige Namen f\u00fcr unsere Azure-Funktionsapp\nund klicken zum Schluss auf \u201eErstellen\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.37.10-1024x576.png\" alt=\"\" class=\"wp-image-168\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.37.10-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.37.10-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.37.10-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.37.10.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 36<\/p>\n\n\n\n<p>Einige Zeit sp\u00e4ter sehen wir folgende Ansicht\nund klicken erneut auf \u201eVer\u00f6ffentlichen\u201c bis wir wieder dieselbe Ansicht erneut\nsehen. Nun ist unser Code \u00fcber eine Azure-Funktionsapp ver\u00f6ffentlicht. Mittig\nin der Ansicht steht die \u201eWebsite-URL\u201c. Diese m\u00fcssen wir uns kopieren, da diese\nunser neuer Endpoint-Link ist. Wir gehen also erneut auf die Amazon Developer\nWebsite und klicken links und unten auf Endpoint und ersetzen den Link bei\nDefault Region mit der neuen \u201eWebsite-URL\u201c und erg\u00e4nzen auch diesmal den Link\num \u201e\/api\/alexa\u201c am Ende und speichern den Endpoint wieder ab. Alles wieder wie\nin Schritt vier der Skill-Liste.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.43.19-1024x576.png\" alt=\"\" class=\"wp-image-169\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.43.19-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.43.19-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.43.19-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-22.43.19.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 37<\/p>\n\n\n\n<p>Um die ein- und ausgehenden Daten sowie die Verbindungsdaten\nals Metriken beobachten zu k\u00f6nnen, gehen wir erneut auf die Azure-Plattform und\nloggen uns dort ein. Hier klicken wir links im Men\u00fc auf \u201eFunktionen-Apps\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.10.59-1024x576.png\" alt=\"\" class=\"wp-image-170\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.10.59-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.10.59-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.10.59-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.10.59.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 38<\/p>\n\n\n\n<p>Bei \u201eFunktionen-Apps\u201c erscheint eine Liste von\nallen bisher erstellten Apps und wir w\u00e4hlen unsere eben erstellte Funktionen-App\n\u201ealexaazure-appconsult\u201c aus.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.11-1024x576.png\" alt=\"\" class=\"wp-image-171\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.11-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.11-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.11-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.11.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 39<\/p>\n\n\n\n<p>Oben in der Mitte klicken wir nun auf\n\u201ePlattformfeatures\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.18-1024x576.png\" alt=\"\" class=\"wp-image-172\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.18-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.18-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.18-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.18.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 40<\/p>\n\n\n\n<p>Anschlie\u00dfend bei \u201e\u00dcberwachung\u201c auf \u201eMetriken\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.27-1024x576.png\" alt=\"\" class=\"wp-image-173\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.27-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.27-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.27-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.27.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 41<\/p>\n\n\n\n<p>Hier klicken wir auf \u201e+ Ressource ausw\u00e4hlen\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.38-1024x576.png\" alt=\"\" class=\"wp-image-174\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.38-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.38-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.38-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.38.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 42<\/p>\n\n\n\n<p>Bei \u201eRessourcengruppe\u201c w\u00e4hlen wir \u201ealexaazure\u201c\nwie beim Ver\u00f6ffentlichen \u00fcber Azure in MS Visual Studio 2017 vorher festgelegt:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.50-1024x576.png\" alt=\"\" class=\"wp-image-175\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.50-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.50-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.50-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.50.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 43<\/p>\n\n\n\n<p>Nun w\u00e4hlen wir als Ressource\n\u201ealexaazure-appconsult\u201c und klicken auf \u201eAnwenden\u201c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.59-1024x576.png\" alt=\"\" class=\"wp-image-176\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.59-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.59-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.59-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.11.59.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 44<\/p>\n\n\n\n<p>\u00dcber \u201eMetrik hinzuf\u00fcgen\u201c k\u00f6nnen wir ausw\u00e4hlen\nnach welcher Metrik wir filtern wollen um diese zu beobachten. Wir haben uns\nmal beispielhaft f\u00fcr \u201eData In\u201c, \u201eData Out\u201c und \u201eConnections\u201c entschieden. Als\n\u201eAggregation\u201c wurde jeweils \u201esum\u201c gew\u00e4hlt. Statt die letzten 24 Stunden haben\nwir uns entweder die letzten 30 Minuten oder die letzte eine Stunde anzeigen\nlassen. Je nach Bedarf. Zudem haben wir statt Liniendiagramm das\nFl\u00e4chendiagramm gew\u00e4hlt, da es viel besser abzulesen und zu vergleichen ist.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.12.06-1024x576.png\" alt=\"\" class=\"wp-image-177\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.12.06-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.12.06-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.12.06-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.12.06.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 45<\/p>\n\n\n\n<p>Hier k\u00f6nnen wir sehen, wie wir \u00fcber unseren mit\nAzure verbundenen Alexa-Skill und Visual-Studio-Code Daten senden und empfangen\nund eine aktive Verbinung aufbauen. Wir haben in Summe 50,1 KB Daten empfangen\nund 168,9 KB Daten versendet.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.15.00-1024x576.png\" alt=\"\" class=\"wp-image-178\" srcset=\"https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.15.00-1024x576.png 1024w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.15.00-300x169.png 300w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.15.00-768x432.png 768w, https:\/\/azure.teamprojects.de\/wp-content\/uploads\/2019\/03\/Screenshot-2019-02-19-23.15.00.png 1366w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Abbildung 46<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Verbindung eines Alexa-Skills mit MS Azure Table of Contents Amazon Alexa Skill er\u00f6ffnenMicrosoft Visual Studio 2017 mit Azure-PackagengrokSkill testenFunktionalit\u00e4t erweiternMicrosoft Azure Amazon Alexa Skill er\u00f6ffnen In diesem Teil des Tutorials m\u00f6chten wir zeigen, wie man am einfachsten einen Alexa-Skill f\u00fcr Amazon\u2019s Echo mit der Cloud-Plattform Azure von Microsoft verbindet. Dazu ben\u00f6tigt man folgende drei Dinge: &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/azure.teamprojects.de\/?page_id=25\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eAmazon Echo &#8211; Alexa\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":100,"featured_media":0,"parent":698,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/pages\/25"}],"collection":[{"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/users\/100"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25"}],"version-history":[{"count":9,"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/pages\/25\/revisions"}],"predecessor-version":[{"id":354,"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/pages\/25\/revisions\/354"}],"up":[{"embeddable":true,"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=\/wp\/v2\/pages\/698"}],"wp:attachment":[{"href":"https:\/\/azure.teamprojects.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}