In diesem Artikel findet ihr eine kurze Beschreibung, was ihr für die Erstellung einer d.velop cloud-App benötigt. Voraussetzung für die Durchführung der Schritte ist, dass ihr die Amazon Web Services (AWS) verwendet..

Beispielhaft zeigen wir euch anhand eines c#-Beispiels, was zu tun ist, um eine App (z.B. für Urlaubsanträge) zu entwickeln.

Wie in den Basics zur d.velop cloud beschrieben, können Apps in beliebigen Programmiersprachen geschrieben werden und setzen wir nicht voraus, dass ihr AWS verwendet. Diese Anleitung nutzt C# und AWS nur beispielhaft.

Voraussetzung

  • Ihr benötigt einen AWS-Account. Meldet euch unter https://aws.amazon.com/de an.egistriert euch bei d.velop 
  • Registriert euch bei d.velop cloud center unter https://my.d-velop.cloud.
  • Ihr benötigt einen GitHub-Account für https://github.com und die entsprechenden Kommandozeilentools.
  • Auf eurem PC, auf dem ihr die Apps entwickelt, muss ein Docker-Desktop in der aktuellen Version vorhanden sein. Die Installation der Community Edition ist ausreichend. Stelle die Docker-Container auf Linux-Container ein.
  • Für dieses Beispiel wird ein installiertes Visual Studio für c# egistriert euch bei d.velop gesetzt.

Los geht's

Lokale Vorbereitung am PC

  1. Melde dich bei d.velop cloud center unter https://my.d-velop.cloud an und notiere dein Providerpräfix.
    Dieses Präfix findest du unter Meine Anbieter. Dann klicke die Details zu dem Anbieter an und wähle anschließend die Kachel Anbieter aus. Im Feld Kürzel/Präfix findest du dann dein Providerpräfix.
  2. Lade das vorbereitete c#-Projekt aus dem GitHub-Repository herunter. 

  3. Erstelle mit dem folgenden Kommandozeilenbefehl im aktuellen Verzeichnis ein Unterverzeichnis mit dem Namen dvelop-app-template-cs:

       git clone https://github.com/d-velop/dvelop-app-template-cs
    
  4. Öffne aus dem Visual Studio das Projekt AcmeTemplate.sln aus dem Verzeichnis .\dvelop-app-template-cs.

  5. Starte den Buildprozess für dieses Projekt und starte anschließend die Applikation VacationProcess-CS.
    Nach dem Starten kannst du die Applikation in einem Browser (Chrome empfohlen) lokal testen. Rufe einfach die URL http://localhost:5000 auf. Mit dieser App kannst du vorhandene Urlaubsanträge ansehen und neue Anträge anlegen. Beende anschließend die Applikation wieder.
  6. Gebe jetzt der Applikation einen neuen und eindeutigen Namen in Kleinbuchstaben an. Um den Namen zu erstellen, gebe den folgenden Befehl in der Kommandozeile im Verzeichnis .\dvelop-app-template-cs an:  docker-build rename NAME=<Anbieterpräfix>-<AppKennzeichen> (z.B. acme-vacationxyz)


Vorbereiten des Benutzers in der Cloud

  1. Melde dich mit deinem AWS-Account in der Cloud an und suche den Service IAM (Benutzerverwaltung).
  2. Erstelle für den Service einen neuen Benutzer und weise ihm den Zugriffstyp Programmgesteuerter Zugriff zu.
  3. Weise dem Benutzer zusätzlich die Berechtigung AdministratorAccess zu, indem du den Benutzer einer Gruppe zuweist, die über die entsprechende Berechtigung verfügt. Wenn diese Gruppe noch nicht existiert, erstelle Sie neu und gebe der Gruppe die Berechtigung AdministratorAccess.
  4. Zum Abschluss der Benutzererstellung erhältst du eine Detailansicht des angelegten Benutzers mit Zugriffsschlüssel-ID und dem geheimen Zugriffsschlüssel. Bitte diese beiden Werte notieren.


Vorbereiten der Applikation für die Cloud

  1. Zum Ändern des Titels der App öffne vor dem Buildprozess die Datei Root.cshtml aus dem Verzeichnis dvelop-app-template-cs\Remote\Views\Root.
  2. Ändere die Zeile <a href="./vacationrequest/">Vacation Process </a> nach deinen Wünschen.
  3. Lege nun in der Kommandozeile die beiden Umgebungsvariablen für die AWS-IAM-Benutzerinformationen (siehe lokale Vorbereitung) fest:

         SET AWS_ACCESS_KEY_ID=<YOUR-ACCESS-KEY-ID>
      SET AWS_SECRET_ACCESS_KEY=<YOUR-SECRET-ACCESS-KEY>
    
  4. Starte den Docker-Buildprozess mit dem Befehl docker-build.bat deploy.
    Falls der Fehler "NoSuchBucket: The specified bucket does not exist" auch bei wiederholtem Aufrufen des Befehls erscheinen, dann führe zusätzlich folgenden Schritt aus:  
    1. Melde dich bei AWS an und suche den Service S3.
    2. Erstelle für S3 ein neues Bucket mit deinem Applikationsnamen <Anbieterpräfix>-<AppKennzeichen> in der Region Frankfurt an.
  5. Nach erfolgreichem Buildvorgang wird zum Abschluss der Konsolenausgaben die URL für den Zugriff ausgegeben (Endpoint). Beispiel:

       endpoint = [
    https://pejfvkxqhk.execute-api.eu-central-1.amazonaws.com/prod/acme-vacationxyz/,
    https://pejfvkxqhk.execute-api.eu-central-1.amazonaws.com/dev/acme-vacationxyz/
    ]
    
  6. Kopiere eine der URLs in Zwischenablage.


Vorbereiten des Deployments in d.velop cloud center

Erstelle jetzt im d.velop cloud center (my.d-velop.cloud) eine entsprechende App:

  1. Klicke auf die Kachel Meine Anbieter, wähle den passenden Anbieter aus und dann klicke auf die Kachel Apps an.
  2. Füge eine App mit dem Pluszeichen in der Liste ActionItemlist hinzu.
  3. Trage den korrekten App-Namen ein. Der App-Name ist das App-Kennzeichen, das du zuvor auch für die Definition der App verwendet hast.
  4. Überschreibe die vorhandene Endpoint-URL mit der zuvor notierten Endpoint-URL.
  5. Generiere einen neuen geheimen Schlüssel (neues Secret generieren)
  6. Kopiere das neue App Secret zum Abschluss des Erstellungsdialogs in die Zwischenablage.


Vorbereiten der lokalen App für d.velop cloud center

  1. Öffne deine Konsole und füge in den Befehl SET SIGNATURE_SECRET=<AppSecret> den geheimen App-Schlüssel (AppSecret) ein.
  2. Starte einen Rebuild der App mit dem Befehl docker-build deploy.


Bereitstellen der App für Mandanten in der Cloud

Du kannst deine App jetzt im d.velop cloud center unter my.d-velop.cloud einem oder mehreren Mandanten deiner Organisation zuweisen.

So stellst du deine App bereit:

  1. Öffne die Kachel App abonnieren und suche die App.
  2. Klicke im Detaildialog auf Buchen und wähle deine Mandanten aus. Wenn du noch keine Mandanten hast, kannst du sie in der Verwaltung der Organisation anlegen.

Die Mandanten können ab sofort deine App buchen.