Planen einer externen Funktion für Azure

Unter diesen Themen finden Sie Unterstützung bei der Vorbereitung zum Erstellen einer externen Funktion für Microsoft Azure entweder über das Azure-Portal oder mithilfe einer ARM (Azure Resource Manager)-Vorlage, die von Snowflake bereitgestellt wird.

Unter diesem Thema:

Voraussetzungen

In dieser Anleitung wird davon ausgegangen, dass Sie ein erfahrener Azure-Portal-Benutzer sind.

Um eine externe Funktion für Azure zu erstellen, müssen Sie über Folgendes verfügen:

  • Einen Azure AD (Active Directory)-Mandanten

  • Ein Konto bei diesem Azure AD-Mandanten. Das Konto muss über folgende Berechtigungen verfügen:

    • Erstellen Sie eine Azure Functions-App.

    • Erstellen eines Dienstendpunktes mit dem Azure API Management-Dienst

    • Registrieren einer Azure AD-Anwendung

  • Ein Snowflake-Konto, in dem Sie über die ACCOUNTADMIN-Rolle oder eine Rolle mit der Berechtigung CREATE INTEGRATION verfügen.

Außerdem sollten Sie bereits über eine Azure AD-Mandanten-ID verfügen.

Die Azure AD-Mandanten-ID ist eine UUID, die typischerweise so formatiert ist, dass es ähnlich aussieht wie 12345678-abcd-1234-efab-123456789012, wobei jedes Nicht-Bindestrich-Zeichen eine hexadezimale Ziffer ist.

Wenn Sie Ihre Azure AD-Mandanten-ID noch nicht kennen, können Sie diese wie folgt ermitteln:

  1. Melden Sie sich beim Azure-Portal (http://portal.azure.com) an.

  2. Klicken Sie oben auf der Seite unter den Azure services-Symbolen auf Azure Active Directory.

  3. Suchen Sie im Menü auf der linken Seite nach dem Abschnitt mit dem Titel Manage, und klicken Sie darunter auf Properties.

Die Azure AD-Mandanten-ID wird im Feld Tenant ID (Mandanten-ID) angezeigt.

Auswählen der Methode zum Erstellen der externen Funktion

Snowflake stellt Anleitungen für zwei Methoden zum Erstellen einer externen Funktion auf Azure bereit:

  • Azure-Portal-Weboberfläche

  • ARM (Azure Resource Manager)-Vorlage, die von Snowflake bereitgestellt wird

Azure-Portal

Sie können das Azure-Portal verwenden, um eine Azure-Funktion (als Remotedienst) und eine API Management-Dienstinstanz (als Proxydienst) zu erstellen. Wenn Sie diese Methode wählen, verwenden Sie auch das Azure-Portal, um sicherheitsrelevanten Einstellungen zu konfigurieren.

Die Anleitung zum Erstellen einer externen Funktion über das Azure-Portal enthält ein Beispiel für eine Azure-Funktion und Details zum Erstellen einer grundlegenden API Management-Dienstinstanz:

  • Erstanwender können die Anweisungen und die Azure-Beispielfunktion mit wenigen oder ohne Änderungen verwenden.

  • Erfahrene Benutzer können die Anweisungen und die Azure-Beispielfunktion als Ausgangspunkt für die Erstellung einer benutzerdefinierten Azure-Funktion und einer benutzerspezifisch konfigurierten API Management-Dienstinstanz.

ARM (Azure Resource Manager)-Vorlage

Eine ARM-Vorlage verwendet JSON zur Beschreibung von Konfigurationsinformationen über eine Azure-Funktion (als Remotedienst) und eine Azure API Management-Dienstinstanz (als Proxydienst).

Snowflake stellt eine ARM-Beispielvorlage bereit, die Folgendes enthält:

  • Beispiel einer Azure-Funktion.

  • Die meisten Konfigurationsinformationen für einen API Management-Beispieldienst. Sie müssen einige zusätzliche Informationen eingeben, wenn Sie den API Management-Beispieldienst anpassen möchten.

  • Code zum Erstellen eines Speicherkontos, der vom Azure Functions-Dienst benötigt wird.

  • Code zum Hinzufügen einer validate-JWT (JSON Web Token)-Richtlinie zur API Management-Instanz, um die Sicherheit des Azure API Management-Dienstes zu erhöhen. Sie müssen die validate-JWT-Richtlinie jedoch erst manuell aktualisieren, bevor Sie diese verwenden können.

ARM-Vorlagen können sowohl für Einsteiger als auch für erfahrene Benutzer nützlich sein:

  • Erstanwender möchten möglicherweise mit der Snowflake-Beispielvorlage beginnen, da diese die Anzahl der erforderlichen Schritte zum Erstellen der Azure-Funktion und der API Management-Dienstinstanz reduziert.

    Auch wenn Ihnen diese vorlagenbasierte Anleitung dabei hilft, schnell Ihre erste externe Funktion zu erstellen, sollten Sie beachten, dass damit die Schritte übersprungen werden, die die meisten Benutzer beim Erstellen von angepassten externen Funktionen benötigen.

  • Erfahrene Benutzer möchten möglicherweise ARM-Vorlagen verwenden, da mit Vorlagen die Bereitstellung automatisiert werden kann. Dies kann nützlich sein, wenn Sie eine Azure-Funktion und einen API Management-Dienst iterativ entwickeln.

Weitere Informationen zum Konfigurieren von Azure-Funktionen mit ARM-Vorlagen finden Sie in der Microsoft-Dokumentation: Ressourcenbereitstellung.

Vorbereiten der Verwendung des Azure-Portals

Diese Abschnitte helfen Ihnen bei der Vorbereitung auf die Verwendung des Azure-Portals zum Erstellen einer externen Funktion auf Microsoft Azure.

Wählen Sie den Tarif für Ihre Azure-Funktion

In Microsoft Azure kann eine Azure-Funktion (Remotedienst) auf einem Linux-Host oder Windows-Host ausgeführt werden. Derzeit bietet Azure unterschiedliche Kombinationen von Preis- und Authentifizierungsoptionen für Linux- und Windows-Hosts.

Wenn Sie planen, Ihre Azure-Funktion unter Linux auszuführen, müssen Sie eine gültige Kombination aus Azure-Tarif und Authentifizierung wählen:

Erstellen eines Arbeitsblatts zur Nachverfolgung der erforderlichen Informationen

Wenn Sie die Aufgaben zum Erstellen einer externen Funktion im Azure-Portal ausführen, müssen Sie bei jedem Schritt des Prozesses bestimmte Werte eingeben (z. B. Name des API Management-Dienstes). Oft werden die von Ihnen eingegebenen Werte in nachfolgenden Schritten benötigt.

Um das Aufzeichnen/Verfolgen dieser Informationen zu erleichtern, haben wir ein Arbeitsblatt mit Feldern für jeden der erforderlichen Werte bereitgestellt:

================================================================================
======================= Tracking Worksheet: Azure Portal =======================
================================================================================

****** Step 1: Azure Function (Remote Service) Info ****************************

Azure Function app name: _______________________________________________________
HTTP-Triggered Function name: __________________________________________________
Azure Function AD app registration name: _______________________________________
Azure Function App AD Application ID: __________________________________________

    (The value for the Azure Function App AD Application ID above is the
    "Application (client) ID" of the Azure AD app registration for the
    Azure Function. The value is used to fill in the "azure_ad_application_id"
    field in the CREATE API INTEGRATION command. This value is in the form of a
    UUID (universally unique identifier), which contains hexadecimal digits and
    dashes.)


****** Step 2: Azure API Management Service (Proxy Service) Info ***************

API Management service name: ___________________________________________________
API Management API URL suffix: _________________________________________________


****** Steps 3-5: API Integration & External Function Info *********************

API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________

External Function Name: ________________________________________________________
Copy

Vorbereiten der Verwendung der ARM-Vorlage

Diese Abschnitte helfen Ihnen bei der Vorbereitung auf die Verwendung der von Snowflake bereitgestellten ARM-Vorlage zur Erstellung einer externen Funktion auf Microsoft Azure.

Vorlage herunterladen

Die Vorlage steht im Snowflake-Repository in GitHub zum Download bereit.

Bevor Sie die Vorlage verwenden können, müssen Sie diese in das Azure-Portal importieren. Details zum Importieren der Vorlage finden Sie später unter dem Thema, das die Verwendung der Vorlage beschreibt.

Wählen Sie den Tarif für Ihre Azure-Funktion

In Microsoft Azure kann eine Azure-Funktion (Remotedienst) auf einem Linux-Host oder Windows-Host ausgeführt werden. Derzeit bietet Azure unterschiedliche Kombinationen von Preis- und Authentifizierungsoptionen für Linux- und Windows-Hosts.

Die von Snowflake bereitgestellte ARM-Vorlage verwendet standardmäßig die folgenden Tarif- und Authentifizierungsinformationen:

  • Standardmäßig wird ein Windows-Host für die Azure-Funktion verwendet.

  • Standardmäßig ist der Tarif „Consumption“ eingestellt.

  • Erstellt eine Azure Functions-App und konfiguriert diese App so, dass sie eine AD (Active Directory)-Authentifizierung erfordert.

  • Erstellt eine Sicherheitsrichtlinie zur Validierung eines JWT (JSON Web Token), das Snowflake zum Aufrufen Ihrer Azure-Funktion autorisiert.

    Beachten Sie, dass in dieser Sicherheitsrichtlinie ein Feld fehlt. Die Anleitung zum Ausfüllen dieses Feldes finden Sie weiter unten.

Wenn Sie planen, Ihre Azure API Management-Instanz oder Azure-Funktion mit einer anderen Konfiguration auszuführen, müssen Sie die Vorlage aktualisieren. Weitere Informationen zum Aktualisieren der Vorlage finden Sie in der Microsoft-Dokumentation:

Erstellen eines Arbeitsblatts zur Nachverfolgung der erforderlichen Informationen

Wenn Sie die Aufgaben zum Erstellen einer externen Funktion mithilfe der von Snowflake bereitgestellten ARM-Vorlage ausführen, müssen Sie bei jedem Schritt des Prozesses bestimmte Werte eingeben (z. B. Name des API Management-Dienstes). Oft werden die von Ihnen eingegebenen Werte in nachfolgenden Schritten benötigt.

Um das Aufzeichnen/Verfolgen dieser Informationen zu erleichtern, haben wir ein Arbeitsblatt mit Feldern für jeden der erforderlichen Werte bereitgestellt:

Bemerkung

Die in der ARM-Vorlage bereitgestellten hartkodierten Werte wurden unten bereits eingetragen.

================================================================================
======================= Tracking Worksheet: ARM Template =======================
================================================================================

****** Step 1: Azure Function (Remote Service) Info ****************************

HTTP-Triggered Function name: __________________ echo __________________________
Azure Function AD Application ID: ______________________________________________

    (The value for the Azure Function AD Application ID above is the
    "Application (client) ID" of the Azure AD app registration for the
    Azure Function. The value is used to fill in the "azure_ad_application_id"
    field in the CREATE API INTEGRATION command. This value is in the form of a
    UUID (universally unique identifier), which contains hexadecimal digits and
    dashes.)


****** Step 2: Azure API Management Service (Proxy Service) Info ***************

API Management service name: ___________________________________________________
API Management URL: ____________________________________________________________
Azure Function HTTP Trigger URL: _______________________________________________
API Management API URL suffix: _________________________________________________


****** Steps 3-5: API Integration & External Function Info *********************

API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________

External Function Name: ________________________________________________________
Copy

Nächster Schritt

Azure-Portal:

Schritt 1: Remotedienst (Azure-Funktion) über Portal erstellen

ARM-Vorlage:

Schritt 1: Azure AD-App für die Azure Functions-App im Portal erstellen