Cette page contient des informations et des exemples de connexion à une instance Cloud SQL à partir d'un service s'exécutant dans l'environnement standard App Engine.
Cloud SQL est un service de base de données entièrement géré qui vous aide à configurer, maintenir, gérer et administrer vos bases de données relationnelles dans le cloud.
App Engine est une plate-forme sans serveur entièrement gérée pour le développement et l'hébergement d'applications Web à grande échelle. Vous pouvez choisir parmi plusieurs langages, bibliothèques et frameworks courants pour développer vos applications, puis laisser App Engine se charger du provisionnement des serveurs et du scaling de vos instances d'applications en fonction de la demande.
Configurer une instance Cloud SQL
- Activez l'API Cloud SQL Admin dans le projet Google Cloud à partir duquel vous vous connectez, si ce n'est pas déjà fait :
- Créez une instance Cloud SQL pour SQL Server. Nous vous recommandons de choisir un emplacement d'instance Cloud SQL qui soit dans la même région que votre service Cloud Run, afin d'améliorer la latence, d'éviter certains coûts de mise en réseau et de réduire les risques de défaillance interrégionale.
Par défaut, Cloud SQL attribue une adresse IP publique à une nouvelle instance. Vous avez également la possibilité d'attribuer une adresse IP privée. Pour en savoir plus sur les options de connectivité disponibles pour ces deux types d'adresses IP, consultez la page Présentation du processus de connexion.
Configurer l'environnement standard App Engine
Les étapes de configuration de l'environnement standard App Engine dépendent du type d'adresse IP que vous avez attribué à votre instance Cloud SQL.Adresse IP publique (par défaut)
L'environnement standard App Engine permet de se connecter à Cloud SQL pour SQL Server via une adresse IP publique à l'aide des connecteurs Go, Java et Python.
Pour configurer l'environnement standard App Engine afin d'activer les connexions à une instance Cloud SQL à l'aide d'une adresse IP publique, procédez comme suit :- Assurez-vous que l'instance créée ci-dessus possède une adresse IP publique. Vous pouvez le vérifier sur la page Présentation de votre instance dans Google Cloud Console. Si vous devez en ajouter une, consultez la page Configurer une adresse IP publique pour obtenir des instructions.
- Obtenez le INSTANCE_CONNECTION_NAME pour votre instance. Vous le trouverez sur la page Présentation de votre instance dans Google Cloud Console ou en exécutant la commande suivante :
gcloud sql instances describe [INSTANCE_NAME]
. - Assurez-vous que le compte de service utilisé par votre application pour authentifier les appels à Cloud SQL dispose des rôles et autorisations Cloud SQL appropriés.
- Le compte de service de votre service doit disposer de l'un des rôles IAM suivants :
Cloud SQL Client
(rôle à privilégier)Cloud SQL Editor
Cloud SQL Admin
cloudsql.instances.connect
cloudsql.instances.get
Par défaut, votre application autorise vos connexions à l'aide d'un compte de service App Engine. Le format de l'identité de compte de service est le suivant :
PROJECT_ID@appspot.gserviceaccount.com
.Si le compte de service servant à autoriser les connexions appartient à un autre projet que celui de l'instance Cloud SQL, vous devez ajouter l'API Cloud SQL Admin et les autorisations IAM aux deux projets.
- Le compte de service de votre service doit disposer de l'un des rôles IAM suivants :
Adresse IP privée
Si le compte de service d'autorisation appartient à un projet différent de celui contenant l'instance Cloud SQL, procédez comme suit :
- Dans les deux projets, activez l'API Cloud SQL Admin.
- Pour le compte de service du projet contenant l'instance Cloud SQL, ajoutez les autorisations IAM.
- Assurez-vous que l'instance Cloud SQL créée précédemment possède une adresse IP privée. Si vous devez en ajouter une, consultez la page Configurer une adresse IP privée pour savoir comment procéder.
- Créez un connecteur d'Accès au VPC sans serveur dans le même réseau VPC que votre instance Cloud SQL. Veuillez noter les conditions suivantes :
- À moins que vous n'utilisiez le VPC partagé, votre connecteur doit se trouver dans le même projet et la même région que la ressource qui l'utilise, mais il peut envoyer du trafic à des ressources se trouvant dans d'autres régions.
- L'accès au VPC sans serveur accepte la communication avec les réseaux VPC connectés à l'aide de Cloud VPN et de l'appairage de réseaux VPC.
- L'accès au VPC sans serveur n'est pas compatible avec les anciens réseaux.
- Configurez l'environnement standard App Engine pour utiliser le connecteur.
- Connectez-vous avec l'adresse IP privée et le port
1433
de votre instance.
Se connecter à Cloud SQL
Après avoir configuré l'environnement standard App Engine, vous pouvez vous connecter à votre instance Cloud SQL.
Adresse IP publique (par défaut)
Pour les chemins d'accès des adresses IP publiques, l'environnement standard App Engine assure le chiffrement et se connecte à l'aide de connecteurs Cloud SQL.
Se connecter avec des connecteurs Cloud SQL
Les connecteurs Cloud SQL sont des bibliothèques propres aux langages de programmation qui fournissent le chiffrement et l'autorisation basée sur IAM lors de la connexion à une instance Cloud SQL.
Python
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Java
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Remarque :
- CLOUD_SQL_CONNECTION_NAME doit être représenté sous la forme <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>.
- Pour en savoir plus sur les exigences de version Socket Factory des sockets JDBC pour le fichier pom.xml, cliquez ici.
Go
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Adresse IP privée
Pour les chemins d'accès des adresses IP privées, votre application se connecte directement à votre instance via un réseau VPC. Cette méthode utilise TCP pour se connecter directement à l'instance Cloud SQL sans utiliser le proxy d'authentification Cloud SQL.
Se connecter avec TCP
Connectez-vous en utilisant l'adresse IP privée de votre instance Cloud SQL en tant qu'hôte et le port 1433
.
Python
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Java
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Remarque :
- CLOUD_SQL_CONNECTION_NAME doit être représenté sous la forme <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>.
- L'utilisation de l'argument ipTypes=PRIVATE force la connexion de SocketFactory à l'adresse IP privée associée à une instance.
- Pour en savoir plus sur les exigences de version Socket Factory des sockets JDBC pour le fichier pom.xml, cliquez ici.
Node.js
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Go
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
C#
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Ruby
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
PHP
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Bonnes pratiques et autres informations
Vous pouvez utiliser le proxy d'authentification Cloud SQL lorsque vous testez votre application en local. Pour obtenir des instructions détaillées, consultez le guide de démarrage rapide pour l'utilisation du proxy d'authentification Cloud SQL.
Pools de connexions
Les connexions aux bases de données sous-jacentes peuvent être supprimées, soit par le serveur de base de données lui-même, soit par l'infrastructure sous-jacente. Pour éviter cela, nous vous recommandons d'utiliser une bibliothèque cliente compatible avec les pools de connexions et la reconnexion automatique.
Limites de connexion
Chaque instance App Engine exécutée dans un environnement standard ne peut pas avoir plus de 100 connexions simultanées à une instance. Pour les applications en PHP 5.5, la limite est de 60 connexions simultanées. Cette limite s'applique à chaque instance d'application. Cela signifie que chaque instance de l'application App Engine peut posséder autant de connexions à la base de données et que le nombre total de connexions par déploiement peut augmenter. Pour plus d'informations, consultez la section Éléments de scaling.
Toutefois, vous avez la possibilité de limiter le nombre maximal de connexions par instance en utilisant un pool de connexions. Pour obtenir des exemples plus détaillés sur les techniques de limitation du nombre de connexions, consultez la page Gérer les connexions à la base de données.
Les applications App Engine sont soumises à des délais de requêtes selon l'utilisation et l'environnement. Pour en savoir plus, découvrez comment les instances sont gérées dans les environnements standard et flexible d'App Engine.
Limites de quota d'API
App Engine fournit un mécanisme permettant de se connecter à l'aide du proxy d'authentification Cloud SQL, qui utilise l'API Cloud SQL Admin. Les limites de quota d'API s'appliquent au proxy d'authentification Cloud SQL. Lorsque l'API Cloud SQL Admin démarre, elle utilise un quota de deux et une moyenne de deux par heure ensuite. Le quota par défaut est de 180 par minute et par utilisateur. Les applications App Engine sont également soumises à d'autres quotas et limites, comme indiqué sur la page Quotas d'App Engine.