Cette rubrique explique comment accéder à API Gateway depuis Function Compute via un réseau privé virtuel (VPC) dans deux scénarios : l'accès au sein d'une même région et l'accès entre différentes régions.
Vue d'ensemble
L'intégration d'API Gateway à Function Compute permet de mettre en place une architecture serverless. Il est parfois nécessaire d'appeler des API publiées sur API Gateway depuis une fonction. Pour des raisons de sécurité, vous pouvez accéder à API Gateway via un réseau interne. Cette rubrique décrit la mise en œuvre de l'accès par réseau interne dans deux situations :
Accès à API Gateway depuis Function Compute via un réseau interne au sein de la même région.
Accès à API Gateway depuis Function Compute via un réseau interne entre différentes régions.
Les principes de configuration sont identiques pour les deux scénarios :
Utilisez un VPC pour activer l'accès par réseau interne.
Pour autoriser l'accès interne à API Gateway, accordez à un VPC l'autorisation de se connecter à API Gateway. Pour plus d'informations, consultez la rubrique Accéder à API Gateway via un VPC.
L'accès par réseau interne pour Function Compute nécessite également un VPC. Pour plus d'informations, consultez la rubrique Configurer les paramètres réseau.
Scénario 1 : Accès au sein de la même région
-
Préparatifs
Mettez en place l'architecture illustrée ci-dessous :
RemarqueCréez deux VPC, vpc-api-access et vpc-backend-1, dans la région Chine (Shanghai).
Vous avez créé une instance API Gateway dédiée dans la région Chine (Shanghai).
Dans vpc-backend-1, créez une instance Elastic Compute Service (ECS) qui servira de service backend pour API Gateway. Cette instance ECS expose un endpoint de service HTTP accessible à l'adresse http://localhost:8080/web/cloudapi. Configurez également un groupe de sécurité pour cette instance ECS afin d'autoriser l'accès depuis API Gateway.
-
Configurez une API avec le type de service backend défini sur VPC.
Pour plus d'informations, consultez la rubrique Utiliser une ressource dans un VPC comme service backend d'une API. Notez les détails de configuration suivants :
-
Créez une autorisation VPC. Le résultat est illustré ci-dessous :

-
Créez une API dont le service backend réside dans un VPC. À des fins de test, définissez la méthode d'authentification sur No Authentication, comme indiqué ci-dessous :


Après avoir enregistré l'API, publiez-la. Dans cet exemple, publiez l'API dans l'environnement Production.
-
-
Configurez les permissions d'accès par réseau interne du VPC vers API Gateway.
Sur la page de l'instance dédiée, cliquez sur Bind to User VPC à côté de Client VPC. Sélectionnez le
Vpc Idde vpc-api-access pour activer l'accès interne à API Gateway depuis ce VPC.
-
Activez un nom de domaine interne pour le groupe d'API.
Sur la page des détails du groupe, activez le nom de domaine de second niveau interne. Une fois activé, API Gateway attribue un nom de domaine de second niveau VPC interne au groupe. Vous pouvez utiliser ce nom de domaine pour appeler directement les API de ce groupe.
ImportantPar défaut, les groupes d'API sont accessibles via Internet. Vous pouvez empêcher l'accès Internet en désactivant le nom de domaine public de second niveau. Notez que si vous désactivez l'accès Internet, vous ne pourrez pas effectuer de débogage en ligne dans la console API Gateway.
-
Créez une fonction.
Dans Function Compute, créez une application et une fonction utilisant le runtime Python. Le code de la fonction est illustré ci-dessous :

La fonction utilise curl pour accéder à l'API via le nom de domaine de second niveau du VPC. Si vous exécutez la fonction maintenant, l'accès échouera.
-
Commencez par créer un vSwitch dans vpc-api-access pour permettre la connexion de Function Compute .
Ensuite, dans la console Function Compute, configurez les paramètres de service pour l'application créée à l'étape précédente. Pour plus d'informations, consultez la rubrique Configurer les paramètres réseau.
Dans la configuration VPC, sélectionnez vpc-api-access comme VPC et choisissez le vSwitch que vous avez créé à cette étape.
Dans la configuration des permissions, créez un nouveau rôle. Pour le modèle de politique système, sélectionnez AliyunECSNetworkInterfaceManagementAccess .
-
Exécutez la fonction pour la tester.
Après l'exécution de la fonction, vous constatez que Function Compute peut accéder à l'API en utilisant le nom de domaine de second niveau du VPC.

Scénario 2 : Accès inter-régions
-
Préparatifs
Mettez en place l'architecture illustrée ci-dessous :
RemarqueDans la région Chine (Zhangjiakou), créez une application Function Compute pour envoyer des requêtes d'appel d'API. Créez un VPC (vpc-fc-access) pour permettre à Function Compute de se connecter à Cloud Enterprise Network (CEN).
Dans la région Chine (Shanghai), créez une instance API Gateway dédiée. Créez également un VPC (vpc-api-access) pour permettre à API Gateway de se connecter à CEN.
Dans la région Chine (Shanghai), créez un autre VPC (vpc-backend-1). Dans ce VPC, créez une instance ECS qui servira de service backend pour API Gateway. Cette instance ECS expose un endpoint de service HTTP accessible à l'adresse http://localhost:8080/web/cloudapi. Configurez également un groupe de sécurité pour cette instance ECS afin d'autoriser l'accès depuis API Gateway.
-
Créez une instance CEN.
Commencez par créer une instance Cloud Enterprise Network (CEN) pour connecter le VPC de Shanghai (vpc-api-access) et le VPC de Zhangjiakou (vpc-fc-access). Cela permet l'interconnexion des services. Pour plus d'informations sur la configuration de CEN, consultez la documentation CEN. Accédez à la console CEN pour créer une instance CEN. Répétez l'opération d'attachement d'instance réseau pour attacher à la fois vpc-api-access et vpc-fc-access à l'instance CEN .
-
Configurez la bande passante.
Achetez un plan de bande passante pour la communication au sein de l'instance CEN. Cet exemple utilise le plan de bande passante minimal de 2 Mbit/s. Achetez un plan adapté à vos besoins.
Configurez les paramètres de bande passante inter-régions. Spécifiez une valeur de bande passante pour les régions connectées. Vous pouvez également allouer un seul plan de bande passante à plusieurs connexions régionales.
-
Configurez le routage inter-VPC.
Pour cette étape, soumettez un ticket à l'équipe CEN. Fournissez les informations de configuration en vous basant sur les descriptions des paramètres de l'opération ResolveAndRouteServiceInCen. Cela permet de connecter API Gateway au VPC de Zhangjiakou.
AccessRegionIds.1=cn-zhangjiakou AccessRegionIds.2=cn-shanghai CenId=cen-uggzcthgz7cwsl7prr #The ID of the CEN instance. Host=100.104.255.128/26 #The egress IP address of the dedicated API Gateway instance in the VPC. HostRegionId=cn-shanghai HostVpcId=vpc-uf65amr4k3aepd0u4gnxa #API Gateway is in the China (Shanghai) region. This is the ID of vpc-api-access.Vous trouverez l'adresse IP de sortie pour la connexion VPC de l'instance API Gateway dédiée sur la page de gestion de l'instance, comme illustré ci-dessous :

Une fois le ticket traité et la configuration terminée, consultez les routes configurées dans la console CEN. Vous verrez que des politiques de routage ont été ajoutées aux régions Shanghai et Zhangjiakou. Une route personnalisée a également été ajoutée en fonction des informations fournies.
-
Configurez une API avec le type de service backend défini sur VPC.
Comme décrit à l'étape 2 du scénario 1, configurez une API avec un service backend VPC.
-
Configurez les permissions d'accès par réseau interne du VPC vers API Gateway.
Suivez les instructions de l'étape 3 du scénario 1 pour configurer les permissions d'accès par réseau interne permettant au VPC d'accéder à API Gateway.
-
Activez un nom de domaine interne pour le groupe d'API.
Suivez l'étape 4 du scénario 1 pour activer le nom de domaine interne du groupe d'API.
-
Créez une fonction.
Dans Function Compute, dans la région Chine (Zhangjiakou), créez une application et une fonction utilisant le runtime Python. Le code de la fonction est illustré ci-dessous :

-
Configurez l'accès VPC pour Function Compute.
De manière similaire à l'étape 6 du scénario 1, créez un vSwitch dans vpc-fc-access. Ensuite, configurez les paramètres de service dans la console Function Compute.
-
Exécutez la fonction pour la tester.
Après l'exécution de la fonction, vous constatez que Function Compute peut accéder à l'API en utilisant le nom de domaine de second niveau du VPC.

Limites
Seules les instances API Gateway dédiées sont prises en charge.