Zum Hauptinhalt springen

Ein Adapter-Projekt erstellen

Dieses Tutorial hilft Ihnen, ein neues Adapter-Projekt für OctoMesh zu erstellen. Der Kürze halber gehen wir davon aus, dass Sie bereits eine laufende OctoMesh-Instanz sowie die installierte octo-cli haben.

hinweis

Für eine Referenzimplementierung können Sie das folgende Repository ansehen.

Überblick​

Wir führen die folgenden Schritte aus:

  1. Ein neues Adapter-Projekt erstellen
  2. Logging hinzufügen
  3. Ein Startprofil erstellen
  4. Am OctoMesh-Tenant anmelden

OctoMesh unterscheidet zwischen Edge- und Mesh-Adaptern. Edge-Adapter sind dafür ausgelegt, (optional) am Edge zu laufen, während Mesh-Adapter ausschließlich für den Betrieb in der Cloud vorgesehen sind. Der große Unterschied besteht darin, dass Edge-Adapter auf Geräten mit begrenzten Ressourcen bereitgestellt werden können und über einen Adapter mithilfe des OctoMesh DistributionEventHub mit den OctoMesh-Repositories kommunizieren. Mesh-Adapter können in der Cloud bereitgestellt werden und verbinden sich direkt mit den OctoMesh-Repositories mit höherer Bandbreite und geringerer Latenz.

Adapter werden in C# geschrieben und können unter Windows, Linux und macOS ausgeführt werden. Die Adapter werden mit dem OctoMesh SDK erstellt. Das OctoMesh SDK ist eine .NET-Bibliothek, die die notwendigen Schnittstellen und Klassen bereitstellt, um Adapter für OctoMesh zu erstellen, und ist als NuGet-Paket für .NET Standard 2.0 und .NET 10.0 verfügbar.

Plug oder Socket?​

Adapter können vom Typ Plug oder Socket sein oder beides. Ein Socket-Adapter ist ein passiver Adapter, der auf eingehende Verbindungen wartet, während ein Plug-Adapter ein aktiver Adapter ist, der sich mit einem entfernten Endpunkt verbindet.

hinweis

Aktuelle Informationen für den Einstieg finden Sie im Readme der Demos.

1. Ein neues Adapter-Projekt erstellen​

Erstellen Sie eine neue .NET Core-Konsolenanwendung und fügen Sie die folgenden NuGet-Pakete hinzu:

  • Meshmakers.Octo.Sdk.Common: Wenn Sie einen Adapter erstellen möchten, der als aktiver Adapter agiert und sich mit einem entfernten Endpunkt verbindet.
  • Meshmakers.Octo.Sdk.Common.Web: Wenn Sie einen Adapter erstellen möchten, der als passiver Adapter agiert und auf eingehende Verbindungen wartet.
hinweis

In den Demos wird die Variable OctoVersion verwendet, um die Version des OctoMesh SDK zu definieren. Die Version wird in der Datei Directory.Build.props definiert und in den Projektdateien verwendet.

2. Logging hinzufügen​

Um eine Logging-Ausgabe zu erhalten, können Sie die folgende Konfigurationsdatei (nlog.config) einbinden; stellen Sie sicher, dass sie in das Ausgabeverzeichnis kopiert wird.

<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.nlog-project.org/schemas/NLog.xsd">
<targets>
<target name="coloredConsole" xsi:type="ColoredConsole" useDefaultRowHighlightingRules="false"
layout="${longdate}|${pad:padding=5:inner=${level:uppercase=true}}|${message}${onexception:Exception information\:${exception:format=type,message,method,StackTrace:maxInnerExceptionLevel=5:innerFormat=type,message,method,StackTrace}}" >
<highlight-row condition="level == LogLevel.Debug" foregroundColor="DarkGray" />
<highlight-row condition="level == LogLevel.Info" foregroundColor="White" />
<highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" />
<highlight-row condition="level == LogLevel.Error" foregroundColor="Red" />
<highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" />
</target>
</targets>

<rules>
<logger name="*" minlevel="Debug" writeTo="coloredConsole"/>
</rules>
</nlog>
hinweis

Achten Sie darauf, in einer Produktionsumgebung Logs in das Dateisystem zu schreiben. Dies dient nur zu Demonstrationszwecken. Das Schreiben von Protokolldateien in das Dateisystem kann den verbleibenden Speicherplatz füllen.

3. Ein Startprofil erstellen​

Um den Adapter zu starten, müssen Sie ein Startprofil für die IDE erstellen. Das Startprofil ist eine JSON-Datei, die die notwendigen Informationen zum Starten des Adapters enthält. Rider und Visual Studio unterstützen Startprofile; für Rider finden Sie Hilfe hier.

{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"AdapterEdgeDemo": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

4. Am OctoMesh-Tenant anmelden​


# login to OctoMesh
octo-cli -c Config -asu "https://localhost:5001/" -isu "https://localhost:5003/" -bsu "https://localhost:5009/" -csu "https://localhost:5015/" -tid "adaptertest"
octo-cli -c Login -i


# Create a new tenant
octo-cli -c Create -tid meshtest -db meshtest
octo-cli -c Configure -tid meshtest
octo-cli -c EnableCommunication
hinweis

Skripte helfen dabei, den obigen Prozess zu automatisieren. Sehen Sie sich als Referenz die PowerShell-Skripte im Demo-Repository an.