Planen einer externen Funktion für AWS¶
Unter diesen Themen finden Sie Unterstützung bei der Vorbereitung zum Erstellen einer externen Funktion für AWS (Amazon Web Services) entweder über die AWS Management Console oder mithilfe einer AWS-CloudFormation-Vorlage, die von Snowflake bereitgestellt wird.
Unter diesem Thema:
Voraussetzungen¶
In dieser Anleitung wird davon ausgegangen, dass Sie ein erfahrener Benutzer der AWS Management Console sind.
Sie benötigen:
Ein Konto mit AWS, einschließlich Berechtigungen für:
Erstellen von AWS-Rollen über IAM (Identitäts- und Zugriffsverwaltung)
Erstellen von AWS-Lambda-Funktionen
Erstellen von API Gateway-Endpunkten
Ein Snowflake-Konto, in dem Sie über ACCOUNTADMIN-Berechtigungen oder eine Rolle mit der Berechtigung CREATE INTEGRATION verfügen.
Wenn Sie einen privaten Endpunkt verwenden möchten, benötigen Sie die ID Ihrer Virtual Private Cloud (VPC). (Hinweis: Sie benötigen eine VPC-ID, keine VPC-Endpunkt-ID. VPC-Endpunkt-IDs können sich im Verlauf der Zeit ändern).
Wenn Sie Ihre VPC-ID noch nicht kennen, können Sie diese durch Ausführen des folgenden Befehls auf der Snowflake-Weboberfläche ermitteln:
select system$get_snowflake_platform_info();
Die Ausgabe sollte ungefähr wir folgt aussehen:
{"snowflake-vpc-id":["vpc-12345678"]}
Notieren Sie sich die VPC-ID. Nachdem Sie entschieden haben, ob Sie die externe Funktion mithilfe der AWS Management Console oder mit einer AWS-CloudFormation-Vorlage erstellen, kopieren Sie die VPC-ID in das entsprechende Feld auf dem Arbeitsblatt:
Wählen Sie Ihren Endpunkttyp aus: Regionaler Endpunkt vs. Privater Endpunkt¶
Der Zugriff auf einen Proxydienst (wie das Amazon API Gateway) erfolgt über eine URI, die manchmal auch als „Endpunkt“ bezeichnet wird. Gemäß der Anleitung zum Erstellen Ihres Amazon API Gateway werden Sie aufgefordert, einen der folgenden Endpunkttypen zu wählen:
Einen regionalen Endpunkt
Einen privaten Endpunkt
Die folgenden Informationen können Ihnen bei der Wahl des Endpunkttyps helfen.
Auf einen regionalen Endpunkt kann über AWS-Regionen oder sogar über Cloudplattformen hinweg zugegriffen werden. Ihre Snowflake-Instanz, Ihr Proxydienst und Ihr Remotedienst können sich alle in verschiedenen Regionen oder sogar auf verschiedenen Cloudplattformen befinden. Beispielsweise könnte eine Snowflake-Instanz, die auf Azure ausgeführt wird, Anforderungen an einen regionalen Amazon API Gateway-Endpunkt senden, der seinerseits Daten an einen Remotedienst weiterleiten könnte, der auf GCP ausgeführt wird.
Ein privater Endpunkt kann so konfiguriert werden, dass der Zugriff nur innerhalb einer Region möglich ist. Beispielsweise kann ein privater Endpunkt so konfiguriert sein, dass der Zugriff nur von einer Snowflake VPC (Virtual Private Cloud) in der gleichen AWS-Region möglich ist. Für die Kommunikation zwischen einer Snowflake VPC und einem privaten Endpunkt wird AWS PrivateLink verwendet.
Weitere Einzelheiten zu den Typen von Endpunkten auf AWS finden Sie unter:
Wenn Sie einen privaten Endpunkt verwenden möchten und sich nicht sicher sind, welche Region Sie verwenden, können Sie Ihre Region feststellen, indem Sie eine der folgenden Aktionen ausführen:
Rufen Sie die SQL-Funktion
CURRENT_REGION()
auf (z. B.SELECT CURRENT_REGION()
).Überprüfen Sie den Hostnamen Ihres Snowflake-Kontos, der normalerweise den Cloudanbieter und die Region angibt. Weitere Informationen zu Hostnamen von Konten, Regionen und Cloudanbieter finden Sie unter Unterstützte Cloudregionen.
Um einen privaten Endpunkt verwenden zu können, muss Ihr Konto die folgenden Anforderungen erfüllen:
Business Critical Edition (oder höhere) von Snowflake.
Auswählen der Methode zum Erstellen der externen Funktion¶
Snowflake stellt Anleitungen für zwei Methoden zum Erstellen einer externen Funktion auf AWS bereit:
AWS Management Console-Weboberfläche
AWS-CloudFormation-Vorlage, die von Snowflake bereitgestellt wird
AWS Management Console¶
Sie können die AWS Management Console verwenden, um eine Lambda-Funktion (als Remotedienst) und eine Amazon API Gateway-Instanz (als Proxydienst) zu erstellen. Wenn Sie diese Methode wählen, verwenden Sie auch die AWS Management Console, um sicherheitsbezogene Einstellungen zu konfigurieren.
Die Anleitung zum Erstellen einer externen Funktion über die AWS Management Console enthält ein Beispiel für eine Lambda-Funktion und Details zum Erstellen eines Basis-API-Gateways:
Erstanwender können die Anweisungen mit wenigen oder ohne Änderungen verwenden.
Erfahrene Benutzer können die Anweisungen und die Lambda-Beispielfunktion als Ausgangspunkt für die Erstellung einer benutzerdefinierten Lambda-Funktion und eines benutzerspezifisch konfigurierten API-Gateways verwenden.
AWS-CloudFormation-Vorlage¶
Die CloudFormation-Vorlage führt beim Erstellen einer externen Funktion die beiden folgenden Schritte aus:
Erstellen des Remotedienstes (eine AWS Lambda-Funktion)
Erstellen und Konfigurieren des Proxydienstes (z. B. Amazon API Gateway)
Mit der Vorlage werden auch folgende Schritte ausgeführt:
Erstellen von zwei IAM-Rollen (eine für die Lambda-Funktion und eine für das API Gateway)
Konfigurieren einer Ressourcenrichtlinie für das API-Gateway
Vorbereiten der Verwendung der AWS Management Console¶
Erstellen eines Arbeitsblatts zur Nachverfolgung der erforderlichen Informationen¶
Wenn Sie Ihre externe Funktion erstellen, sollten Sie sich bestimmte Informationen, die Sie eingeben, notieren (z. B. die Resource Invocation URL), damit Sie diese Informationen in nachfolgenden Schritten verwenden können. Das Arbeitsblatt unten hilft Ihnen, diese Informationen festzuhalten.
===========================================================================
================ Tracking Worksheet: AWS Management Console ===============
===========================================================================
****** Step 1: Information about the Lambda Function (remote service) *****
Your AWS Account ID: ______________________________________________________
Lambda Function Name: _____________________________________________________
******** Step 2: Information about the API Gateway (proxy Service) ********
New IAM Role Name: ________________________________________________________
New IAM Role ARN: _________________________________________________________
Snowflake VPC ID (optional): ______________________________________________
New API Name: _____________________________________________________________
API Gateway Resource Name: ________________________________________________
Resource Invocation URL: __________________________________________________
Method Request ARN: _______________________________________________________
*** Step 3: Information about the API Integration and External Function ***
API Integration Name: _____________________________________________________
API_AWS_IAM_USER_ARN: _____________________________________________________
API_AWS_EXTERNAL_ID: ______________________________________________________
External Function Name: ___________________________________________________
Vorbereiten der Verwendung der AWS-CloudFormation-Vorlage¶
Vorlage herunterladen¶
Die Vorlage steht im Vorlagenverzeichnis des Snowflake-Repository von GitHub zum Download bereit.
Erstellen eines Arbeitsblatts zur Nachverfolgung der erforderlichen Informationen¶
Wenn Sie Ihre externe Funktion erstellen, sollten Sie sich bestimmte Informationen, die Sie eingeben, notieren (z. B. die Resource Invocation URL), damit Sie diese Informationen in nachfolgenden Schritten verwenden können. Das Arbeitsblatt unten hilft Ihnen, diese Informationen festzuhalten.
===========================================================================
================== Tracking Worksheet: CloudFormation Template ============
===========================================================================
New IAM Role Name: ________________________________________________________
New IAM Role ARN: _________________________________________________________
Resource Invocation URL: __________________________________________________
API_AWS_IAM_USER_ARN: _____________________________________________________
API_AWS_EXTERNAL_ID: ______________________________________________________
Zusätzliche Ressourcen für die Erstellung externer Funktionen auf AWS¶
Wenn Sie bereit sind, einen eigenen Remotedienst für Ihre eigene externe Funktion zu erstellen, sollten Sie sich die Beispiele für Remotedienste auf Basis von Lambda-Funktionen ansehen, die unter The Snowflake Labs zur Verfügung stehen.
Nächster Schritt¶
- AWS Management Console:
Schritt 1: Remotedienst (AWS Lambda-Funktion) in der Management Console erstellen
- AWS-CloudFormation-Vorlage: