Planification d’une fonction externe pour AWS¶
Cette rubrique vous aide à vous préparer à créer une fonction externe pour AWS (Amazon Web Services) en utilisant la console de gestion AWS ou un modèle AWS CloudFormation fourni par Snowflake.
Dans ce chapitre :
Conditions préalables¶
Ces instructions supposent que vous êtes un utilisateur expérimenté de la console de gestion AWS.
Vous avez besoin des éléments suivants :
Un compte avec AWS, y compris des privilèges pour :
Créer des rôles AWS via IAM (gestion des identités et des accès).
Créer des fonctions AWS Lambda.
Créer un point de terminaison API Gateway.
Un compte Snowflake dans lequel vous disposez des privilèges ACCOUNTADMIN ou un rôle avec le privilège CREATE INTEGRATION.
Si vous prévoyez d’utiliser un point de terminaison privé, vous avez besoin de votre ID de Cloud privé virtuel (VPC). (Vous devez utiliser un ID de VPC et non un ID de point de terminaison VPC. Les IDs de points de terminaison VPC peuvent changer au fil du temps).
Si vous n’avez pas encore votre ID de VPC, vous pouvez le trouver en exécutant la commande suivante dans l’interface Web de Snowflake :
select system$get_snowflake_platform_info();
La sortie devrait ressembler à ce qui suit :
{"snowflake-vpc-id":["vpc-12345678"]}
Enregistrez l’ID de VPC. Après avoir décidé de créer votre fonction externe en utilisant la console de gestion AWS ou un modèle AWS CloudFormation, copiez l’ID de VPC dans la feuille de calcul de suivi appropriée :
Choix de votre type de point de terminaison : point de terminaison régional vs. point de terminaison privé¶
Vous accédez à un service proxy (tel que Amazon API Gateway) via une URI, souvent appelé point de terminaison. Les instructions pour créer votre Amazon API Gateway vous demandent de choisir l’un des types de points de terminaison suivants :
Un point de terminaison régional.
Un point de terminaison privé.
Les informations suivantes peuvent vous aider à choisir le type de point de terminaison.
Un point de terminaison régional peut être accessible à travers les régions AWS ou même les plates-formes Cloud. Votre instance Snowflake, votre service proxy et votre service à distance peuvent tous se trouver dans des régions différentes ou même sur des plates-formes Cloud différentes. Par exemple, une instance de Snowflake fonctionnant sur Azure pourrait envoyer des requêtes à un point de terminaison régional Amazon API Gateway, qui à son tour pourrait transmettre des données à un service distant fonctionnant sur GCP.
Un point de terminaison privé peut être configuré pour n’autoriser l’accès qu’au sein d’une région. Par exemple, vous pouvez configurer un point de terminaison privé pour permettre l’accès uniquement à partir d’un VPC (Cloud privé virtuel) Snowflake dans la même région AWS via . La communication entre un VPC Snowflake et un point de terminaison privé utilise AWS PrivateLink.
Pour plus de détails sur les types de points de terminaison sur AWS, voir :
Si vous souhaitez utiliser un point de terminaison privé et que vous n’êtes pas sûr de la région que vous utilisez, vous pouvez rechercher votre région en procédant de l’une des manières suivantes :
Appelez la fonction SQL
CURRENT_REGION()
(par exempleSELECT CURRENT_REGION()
).Vérifiez le nom d’hôte de votre compte Snowflake, qui indique normalement le fournisseur de services Cloud et la région. Pour plus d’informations sur les noms d’hôtes, les régions et les fournisseurs de services Cloud relatifs aux comptes, voir Régions Cloud prises en charge.
Pour utiliser un point de terminaison privé, votre compte doit remplir les conditions suivantes :
Édition Business Critical (ou supérieure) de Snowflake.
Choix de la méthode de création de la fonction externe¶
Snowflake fournit des instructions sur deux façons de créer une fonction externe sur AWS :
Interface Web de la console de gestion AWS
Modèle AWS CloudFormation fourni par Snowflake
Console de gestion AWS¶
Vous pouvez utiliser la console de gestion AWS pour créer une fonction Lambda (en tant que service distant) et une instance Amazon API Gateway (en tant que service mandataire). Si vous choisissez cette méthode, vous utilisez également la console de gestion AWS pour configurer les paramètres de sécurité.
Les instructions relatives à la création d’une fonction externe à l’aide de la console de gestion AWS comprennent un exemple de fonction Lambda et des détails sur la création d’une API Gateway de base :
Les utilisateurs novices peuvent utiliser les instructions avec peu ou pas de modifications.
Les utilisateurs expérimentés peuvent utiliser les instructions et l’exemple d’une fontion Lambda comme point de départ pour créer une fonction Lambda personnalisée et une API Gateway configurée de manière personnalisée.
Modèle AWS CloudFormation¶
Le modèle CloudFormation exécute les deux étapes suivantes de la création d’une fonction externe :
Création du service distant (une fonction AWS Lambda).
Création et configuration du service proxy (par exemple, Amazon API Gateway).
Le modèle aussi :
Crée deux rôles IAM (un pour la fonction Lambda et un pour API Gateway).
Configure une politique de ressources pour API Gateway.
Préparation de l’utilisation de la console de gestion AWS¶
Créer une feuille de calcul pour le suivi des informations requises¶
Lorsque vous créez votre fonction externe, vous devez enregistrer des informations spécifiques (par exemple, l’URL de l’appel de ressources) que vous saisissez afin de pouvoir utiliser ces informations dans les étapes suivantes. La feuille de calcul ci-dessous vous aide à suivre ces informations.
===========================================================================
================ 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: ___________________________________________________
Préparation à l’utilisation du modèle AWS CloudFormation¶
Télécharger le modèle¶
Le modèle peut être téléchargé à partir du répertoire de modèles de déploiement du référentiel Snowflake dans GitHub.
Créer une feuille de calcul pour le suivi des informations requises¶
Lorsque vous créez votre fonction externe, vous devez enregistrer des informations spécifiques (par exemple, l’URL de l’appel de ressources) que vous saisissez afin de pouvoir utiliser ces informations dans les étapes suivantes. La feuille de calcul ci-dessous vous aide à suivre ces informations.
===========================================================================
================== Tracking Worksheet: CloudFormation Template ============
===========================================================================
New IAM Role Name: ________________________________________________________
New IAM Role ARN: _________________________________________________________
Resource Invocation URL: __________________________________________________
API_AWS_IAM_USER_ARN: _____________________________________________________
API_AWS_EXTERNAL_ID: ______________________________________________________
Ressources supplémentaires pour la mise en place de fonctions externes sur AWS¶
Lorsque vous serez prêt à créer votre propre service à distance pour votre propre fonction externe, vous voudrez peut-être consulter les exemples de services à distance basés sur les fonctions Lambda qui sont disponibles dans les Snowflake Labs.
Étape suivante¶
- Console de gestion AWS:
Étape 1 : Créez le service distant (fonctionAWS Lambda) dans la console de gestion
- Modèle AWS CloudFormation: