Installieren kostenpflichtiger oder lizenzierter benutzerdefinierter Komponenten für Azure SSIS Integration Runtime

GILT FÜR: Azure Data Factory Azure Synapse Analytics> [! TIPP] > Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!]

In diesem Artikel wird erläutert, wie ein ISV kostenpflichtige oder lizenzierte benutzerdefinierte Komponenten für SSIS-Pakete (SQL Server Integration Services) entwickeln und installieren kann, die in Azure in der Azure SSIS Integration Runtime ausgeführt werden und als Proxy eine selbstgehostete Integration Runtime verwenden.

Installieren kostenpflichtiger oder lizenzierter benutzerdefinierter Komponenten für Azure SSIS Integration Runtime

Das Problem

Die Eigenart der Azure SSIS Integration Runtime bringt verschiedene Herausforderungen mit sich, aufgrund derer die typischen Lizenzierungsmethoden für die lokale Installation benutzerdefinierter Komponenten unzureichend sind. Daher erfordert die Azure SSIS IR einen anderen Ansatz.

  • Die Knoten der Azure SSIS IR sind flüchtig und können jederzeit zugeordnet oder freigegeben werden. Beispielsweise können Sie Knoten starten oder beenden, um die Kosten im Griff zu behalten, oder durch verschiedene Knotengrößen zentral hoch- und herunterskalieren. Dadurch ist es nicht mehr möglich, eine Komponentenlizenz eines Drittanbieters über computerspezifische Informationen wie MAC-Adresse oder CPU-ID an einen bestimmten Knoten zu binden.

  • Sie können die Azure SSIS IR auch horizontal herunter- oder hochskalieren, sodass die Anzahl der Knoten jederzeit verkleinert oder vergrößert werden kann.

Die Lösung

Aufgrund der im vorherigen Abschnitt beschriebenen Einschränkungen herkömmlicher Lizenzierungsmethoden bietet die Azure SSIS IR eine neue Lösung. Bei dieser Lösung werden Windows-Umgebungsvariablen und SSIS-Systemvariablen für die Lizenzbindung und -validierung von Drittanbieterkomponenten verwendet. ISVs können diese Variablen nutzen, um eindeutige und persistente Informationen für eine Azure SSIS IR zu erhalten, wie z.B. Cluster-ID und Anzahl der Clusterknoten. Anhand dieser Informationen können ISVs dann die Lizenz für ihre Komponente an eine Azure SSIS IR als ein Cluster binden. Diese Bindung verwendet eine ID, die sich nicht ändert, wenn Kunden die Azure SSIS IR in jeglicher Form starten oder beenden, horizontal oder vertikal hoch- oder herunterskalieren oder neu konfigurieren.

Die folgende Abbildung zeigt die typischen Installations-, Aktivierungs- und Lizenzbindungsabläufe für Komponenten von Drittanbietern, die diese neuen Variablen verwenden:

Installation of licensed components

Anweisungen

  1. ISVs können ihre lizenzierten Komponenten in verschiedenen SKUs oder Stufen anbieten (z.B. Einzelknoten, bis zu 5 Knoten, bis zu 10 Knoten usw.). Der ISV stellt beim Kauf eines Produkts den entsprechenden Product Key zur Verfügung. Der ISV kann auch einen Azure Storage-Blobcontainer bereitstellen, der ein ISV-Setupskript und zugehörige Dateien enthält. Kunden können diese Dateien in ihren eigenen Speichercontainer kopieren und mit ihrem eigenen Product Key modifizieren (z.B. durch Ausführen von IsvSetup.exe -pid xxxx-xxxx-xxxx). Kunden können dann die Azure SSIS IR mit dem SAS-URI ihres Containers als Parameter bereitstellen oder neu konfigurieren. Weitere Informationen finden Sie unter Benutzerdefiniertes Setup von Azure-SSIS Integration Runtime.

  2. Wenn die Azure SSIS IR bereitgestellt oder neu konfiguriert wurde, wird das ISV-Setup auf jedem Knoten ausgeführt, um die Windows-Umgebungsvariablen SSIS_CLUSTERID und SSIS_CLUSTERNODECOUNT abzufragen. Anschließend sendet die Azure SSIS IR ihre Cluster-ID und den Product Key für das lizenzierte Produkt an den Aktivierungsserver des ISV, um einen Aktivierungsschlüssel zu generieren.

  3. Nach Empfang des Aktivierungsschlüssels kann das ISV-Setup den Schlüssel lokal auf jedem Knoten (z.B. in der Registrierung) speichern.

  4. Wenn Kunden ein Paket ausführen, das die lizenzierte Komponente des ISV auf einem Knoten der Azure SSIS IR verwendet, liest das Paket den lokal gespeicherten Aktivierungsschlüssel und validiert ihn im Abgleich mit der Cluster-ID des Knotens. Das Paket kann dem ISV-Aktivierungsserver optional auch die Anzahl der Clusterknoten melden.

    Hier ein Codebeispiel, das den Aktivierungsschlüssel validiert und die Anzahl der Clusterknoten meldet:

    public override DTSExecResult Validate(Connections, VariableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log) 
    
    {                                                                                                                             
    
    Variables vars = null;                                                                                                        
    
    variableDispenser.LockForRead("System::ClusterID");                                                                           
    
    variableDispenser.LockForRead("System::ClusterNodeCount");                                                                    
    
    variableDispenser.GetVariables(ref vars);                                                                                     
    
    // Validate Activation Key with ClusterID                                                                                     
    
    // Report on ClusterNodeCount                                                                                                 
    
    vars.Unlock();                                                                                                                
    
    return base.Validate(connections, variableDispenser, componentEvents, log);                                                   
    
    }
    

Aktivieren von benutzerdefinierten Datenflusskomponenten (oder Komponenten von Drittanbietern) mithilfe einer selbstgehosteten Integration Runtime (IR) als Proxy

Gehen Sie wie folgt vor, um benutzerdefinierten Datenflusskomponenten/Drittanbieterkomponenten den lokalen Zugriff auf Daten zu ermöglichen und dabei die selbstgehostete Integration Runtime als Proxy für Azure-SSIS IR zu verwenden:

  1. Installieren Sie Ihre auf SQL Server 2017 ausgerichteten benutzerdefinierten Datenflusskomponenten/Drittanbieterkomponenten in Azure-SSIS IR per benutzerdefiniertem Standardsetup/Express-Setup.

  2. Erstellen Sie die folgenden DTSPath-Registrierungsschlüssel für eine selbstgehostete Integration Runtime, falls sie noch nicht vorhanden sind:

    1. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPath auf C:\Program Files\Microsoft SQL Server\140\DTS\ festgelegt.
    2. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPath auf C:\Program Files (x86)\Microsoft SQL Server\140\DTS\ festgelegt.
  3. Installieren Sie Ihre auf SQL Server 2017 ausgerichteten benutzerdefinierten Datenflusskomponenten/Drittanbieterkomponenten in der selbstgehosteten IR unter dem obigen DTS-Pfad, und stellen Sie sicher, dass Ihr Installationsprozess Folgendes umfasst:

    1. Erstellen der Ordner <DTSPath>, <DTSPath>/Connections, <DTSPath>/PipelineComponents und <DTSPath>/UpgradeMappings (sofern noch nicht vorhanden)

    2. Erstellen Ihrer eigenen XML-Datei für Erweiterungszuordnungen im Ordner <DTSPath>/UpgradeMappings

    3. Installieren aller Assemblys, auf die von den Assemblys Ihrer benutzerdefinierten Datenflusskomponenten/Drittanbieterkomponenten im globalen Assemblycache (GAC) verwiesen wird

Hier ein Beispiel von unserem Partner Aecorsoft, der seine Datenflusskomponenten so angepasst hat, dass sie unser benutzerdefiniertes Express-Setup und selbst gehostetes IR als Proxy für Azure-SSIS IR verwenden.

ISV-Partner

Eine Liste von ISV-Partnern, die ihre Komponenten und Erweiterungen für die Azure SSIS IR angepasst haben, finden Sie am Ende des Blogbeitrags Enterprise Edition, Benutzerdefiniertes Setup und Erweiterbarkeit durch Drittanbieter für SSIS in ADF.