Gérer les API Cloud et les bibliothèques clientes Cloud dans Cloud Code pour VS Code

Pour accéder aux produits et services Google Cloud par programmation, vous utilisez les API Cloud. Ces API utilisent une interface JSON REST simple. La méthode recommandée pour accéder aux API Cloud consiste à utiliser les bibliothèques clientes Cloud.

Cloud Code facilite l'ajout des bibliothèques clientes Cloud pour les API Cloud et le langage spécifique que vous utilisez dans votre projet. Dans la même vue, vous pouvez rechercher des exemples pour chaque API et intégrer facilement des exemples de code dans votre application.

Parcourir les API Cloud

Pour explorer toutes les API Google Cloud disponibles:

  1. Cliquez sur Cloud Code, puis développez la section API Cloud.

    La vue API Cloud regroupe les APIs Cloud par catégorie.

  2. Pour afficher les détails d'une API, cliquez sur son nom. Des détails tels que le nom du service, l'état, les instructions d'installation des bibliothèques clientes, la documentation et des exemples de code s'affichent.

Activer les API Cloud

Pour activer les API Cloud pour un projet à l'aide de la page des détails de l'API, procédez comme suit :

  1. Sur la page des détails de l'API Cloud, choisissez le projet pour lequel vous souhaitez activer l'API Cloud.
  2. Cliquez sur Enable API (Activer l'API). Une fois l'API activée, un message s'affiche pour confirmer la modification.

Ajouter des bibliothèques clientes à votre projet

En plus d'explorer et d'activer les API Cloud à l'aide de Cloud Code, vous pouvez également ajouter à votre projet une bibliothèque cliente spécifique au langage.

Pour installer une bibliothèque cliente, suivez les instructions de la page des détails de l'API correspondant à votre langage.

Utiliser des exemples d'API

Vous pouvez rechercher et utiliser des exemples de code pour chaque API dans le navigateur d'API.

  1. Cliquez sur Cloud Code, puis développez la section API Cloud.

  2. Pour ouvrir la vue détaillée, cliquez sur le nom d'une API.

  3. Pour afficher les exemples de code de l'API, cliquez sur Exemples de code.

  4. Pour filtrer la liste des exemples, saisissez du texte à rechercher ou choisissez un langage de programmation dans la liste Langage.

  5. Pour afficher un exemple, cliquez sur son nom. Vous pouvez également copier l'exemple dans le presse-papiers ou l'afficher dans GitHub.

Configurer l'authentification

Une fois que vous avez activé les API requises et ajouté les bibliothèques clientes nécessaires, vous devez configurer votre application pour qu'elle soit correctement authentifiée. La configuration à effectuer dépend du type de développement et de la plate-forme sur laquelle vous exécutez l'application.

Une fois les étapes d'authentification terminées, votre application peut s'authentifier et est prête à être déployée.

Développement local

Machine locale

Si vous vous êtes connecté à Google Cloud dans votre IDE, Cloud Code définit les identifiants par défaut de votre application, et vous pouvez ignorer cette étape. Si vous vous êtes connecté à Google Cloud en dehors de votre IDE (par exemple, à l'aide de gcloud CLI), configurez votre ADC et laissez les bibliothèques clientes Google Cloud s'authentifier via ADC en exécutant la commande suivante:

gcloud auth login --update-adc

Minikube

  1. Si vous vous êtes connecté à Google Cloud dans votre IDE, Cloud Code définit les identifiants par défaut de votre application, et vous pouvez ignorer cette étape. Si vous vous êtes connecté à Google Cloud en dehors de votre IDE (par exemple, à l'aide de gcloud CLI), configurez votre ADC et laissez les bibliothèques clientes Google Cloud s'authentifier via ADC en exécutant la commande suivante:

    gcloud auth login --update-adc
  2. Démarrez Minikube en exécutant minikube start --addons gcp-auth. Cette opération installe dans vos pods les identifiants par défaut de votre application. Pour en savoir plus sur l'authentification de Minikube avec Google Cloud, consultez la documentation gcp-auth de Minikube.

Autres clusters K8s locaux

  1. Si vous vous êtes connecté à Google Cloud dans votre IDE, Cloud Code définit les identifiants par défaut de votre application, et vous pouvez ignorer cette étape. Si vous vous êtes connecté à Google Cloud en dehors de votre IDE (par exemple, à l'aide de gcloud CLI), configurez votre ADC et laissez les bibliothèques clientes Google Cloud s'authentifier via ADC en exécutant la commande suivante:

    gcloud auth login --update-adc
  2. Pour vous assurer que les bibliothèques clientes Google Cloud peuvent trouver vos identifiants, installez votre répertoire local ~/.config/gcloud dans vos pods Kubernetes en modifiant les fichiers manifestes de déploiement.
  3. Définissez votre ID de projet Google Cloud en tant que variable d'environnement nommée GOOGLE_CLOUD_PROJECT.

Exemple de configuration de pod Kubernetes :

apiVersion: v1
kind: Pod
metadata:
  name: my-app
  labels:
    name: my-app
spec:
  containers:
  - name: my-app
    image: gcr.io/google-containers/busybox
    ports:
      - containerPort: 8080
    env:
    - name: GOOGLE_CLOUD_PROJECT
      value: my-project-id
    volumeMounts:
      - mountPath: /root/.config/gcloud
        name: gcloud-volume
  volumes:
    - name: gcloud-volume
      hostPath:
        path: /path/to/home/.config/gcloud

Cloud Run

Si vous vous êtes connecté à Google Cloud dans votre IDE, Cloud Code définit les identifiants par défaut de votre application, et vous pouvez ignorer cette étape. Si vous vous êtes connecté à Google Cloud en dehors de votre IDE (par exemple, à l'aide de gcloud CLI), configurez votre ADC et laissez les bibliothèques clientes Google Cloud s'authentifier via ADC en exécutant la commande suivante:

gcloud auth login --update-adc

Développement local avec des API nécessitant un compte de service

Certaines API, telles que l'API Cloud Translation, nécessitent un compte de service doté des autorisations appropriées pour authentifier vos requêtes. Pour en savoir plus, consultez la page Créer et gérer des comptes de service. Pour obtenir un guide de démarrage rapide avec un compte de service, consultez la page Utiliser les bibliothèques clientes Cloud dans Cloud Code.

  1. Pour ouvrir un terminal, cliquez sur Terminal > Nouveau terminal.

  2. Créez un compte de service pour authentifier vos requêtes API :

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID
    

    Remplacez les valeurs suivantes :

    • SERVICE_ACCOUNT_ID : ID du compte de service.
    • PROJECT_ID : ID du projet

    Pour trouver ces ID, dans Google Cloud, cliquez sur le menu de navigation en haut à gauche de l'écran, pointez sur IAM et administration, puis cliquez sur Comptes de service.

    La colonne Email (Adresse e-mail) affiche les valeurs SERVICE_ACCOUNT_ID et PROJECT_ID uniques pour chacun de vos comptes de service au format suivant:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    Par exemple, l'adresse e-mail d'un compte de service my-service-account@my-project.iam.gserviceaccount.com possède les valeurs suivantes :

    • SERVICE_ACCOUNT_ID : my-service-account
    • PROJECT_ID : my-project
  3. Attribuez le rôle approprié à votre compte de service. L'exemple de commande suivant attribue le rôle Utilisateur de l'API Cloud Translation. Pour déterminer le rôle à attribuer, consultez la documentation de l'API Cloud que vous utilisez.

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
    
  4. Créez une clé de compte de service :

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
    
  5. Définissez la clé comme identifiant par défaut :

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. Facultatif: Pour autoriser les utilisateurs à emprunter l'identité du compte de service, exécutez la commande gcloud iam service-accounts add-iam-policy-binding pour leur attribuer le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser) sur le compte de service:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

    Remplacez les valeurs suivantes :

    • USER_EMAIL : adresse e-mail de l'utilisateur.

Développement à distance

GKE

Selon le champ d'application de votre projet, vous pouvez choisir la manière dont vous authentifiez les services Google Cloud sur GKE:

  • (Développement uniquement)
    1. Créez un cluster GKE avec les paramètres suivants :
      • Assurez-vous d'utiliser le compte de service utilisé par défaut par GKE, le compte de service Compute Engine par défaut et le paramètre Niveaux d'accès défini sur Autoriser l'accès complet à l'ensemble des API Cloud (les deux paramètres sont accessibles dans la section Pools de nœuds > Sécurité). Étant donné que le compte de service Compute Engine est partagé par toutes les charges de travail déployées sur votre nœud, cette méthode surprovisionne les autorisations et ne doit être utilisée que pour le développement.
      • Assurez-vous que Workload Identity n'est pas activé sur votre cluster (dans la section Cluster > Sécurité).
    2. Attribuez les rôles nécessaires à votre compte de service :
  • (Recommandé pour la production)
    1. Configurez votre cluster et votre application GKE avec Workload Identity afin d'authentifier les services Google Cloud sur GKE. Cette opération associe votre compte de service Kubernetes à votre compte de service Google.
    2. Dans le fichier YAML de votre déploiement Kubernetes, définissez le champ .spec.serviceAccountName afin que votre déploiement référence le compte de service Kubernetes. Si vous travaillez sur une application créée à partir d'un modèle Cloud Code, ce fichier se trouve dans le dossier "kubernetes-manifests".
    3. Si le service Google Cloud auquel vous essayez d'accéder nécessite des rôles supplémentaires, attribuez-les au compte de service Google que vous utilisez pour développer votre application :

Cloud Run

  1. Pour créer un compte de service unique pour déployer votre application Cloud Run, accédez à la page Comptes de service, puis sélectionnez le projet dans lequel votre secret est stocké.

    Accéder à la page Comptes de service

  2. Cliquez sur Créer un compte de service.
  3. Dans la boîte de dialogue Créer un compte de service, indiquez un nom descriptif pour le compte de service.
  4. Remplacez l'ID du compte de service par une valeur unique et reconnaissable, puis cliquez sur Créer.
  5. Si le service Google Cloud auquel vous souhaitez accéder exige des rôles supplémentaires, attribuez-les, et cliquez sur Continuer, puis sur OK.
  6. Pour ajouter votre compte de service à votre configuration de déploiement, procédez comme suit :
    1. Dans la barre d'état Cloud Code, choisissez la commande Cloud Run : Deploy (Cloud Run : Déployer).
    2. Dans le champ Compte de service de l'interface utilisateur de déploiement Cloud Run, spécifiez votre compte de service sous Paramètres de révision.
    Section "Advanced revision settings" (Paramètres de révision avancés) développée dans le panneau "Cloud Run: Deploy" (Cloud Run : Déployer). Le champ "Service Account" (Compte de service) est renseigné avec le nom du compte de service au format service-account-name@project-name.iam.gserviceaccount.com

Cloud Run

Selon le champ d'application de votre projet, vous pouvez choisir la manière dont vous authentifiez les services Google Cloud sur GKE:

  • (Développement uniquement)
    1. Créez un cluster GKE avec les paramètres suivants :
      • Assurez-vous que vous utilisez le compte de service utilisé par GKE, à savoir le compte de service Compute Engine par défaut, et que les Champs d'application de l'accès sont bien définis sur Autoriser l'accès complet à l'ensemble des API Cloud (les deux paramètres sont accessibles dans Pools de nœuds >Sécurité). Étant donné que le compte de service Compute Engine est partagé par toutes les charges de travail déployées sur votre nœud, cette méthode surprovisionne les autorisations et ne doit être utilisée que pour le développement.
      • Assurez-vous que Workload Identity n'est pas activé sur votre cluster (dans la section Cluster > Sécurité).
    2. Attribuez les rôles nécessaires à votre compte de service :
  • (Recommandé pour la production)
    1. Configurez votre cluster et votre application GKE avec Workload Identity afin d'authentifier les services Google Cloud sur GKE. Cette opération associe votre compte de service Kubernetes à votre compte de service Google.
    2. Pour ajouter votre compte de service à votre configuration de déploiement, procédez comme suit :
      1. Dans la barre d'état Cloud Code, choisissez la commande Cloud Run : Deploy (Cloud Run : Déployer).
      2. Dans le champ Compte de service de l'interface utilisateur de déploiement Cloud Run, spécifiez votre compte de service sous Paramètres de révision.
      Section "Paramètres de révision avancés" développée dans le panneau "Cloud Run : Déployer". Le champ "Compte de service" est renseigné avec le nom du compte de service Kubernetes au format service-account-name@project-name.iam.gserviceaccount.com
    3. Si le service Google Cloud auquel vous essayez d'accéder nécessite des rôles supplémentaires, attribuez-les au compte de service Google que vous utilisez pour développer votre application :

Développement à distance avec le gestionnaire de secrets activé

Si vous développez votre application à distance, que vous utilisez un compte de service pour l'authentification et que votre application utilise des secrets, vous devez effectuer quelques étapes supplémentaires après avoir suivi les instructions pour le développement à distance. Ces étapes ont pour objectif d'attribuer à votre compte de service Google le rôle requis pour accéder à un secret spécifique du gestionnaire de secrets :

  1. Cliquez sur Cloud Code, puis développez la section Secret Manager.

    Secret Manager s'ouvre dans Cloud Code avec deux secrets répertoriés

  2. Effectuez un clic droit sur le secret, puis sélectionnez Edit Permissions in Cloud Console (Modifier les autorisations dans la console Cloud). Vous ouvrez ainsi la page de configuration de Secret Manager pour ce secret dans votre navigateur Web.

    Secret sur lequel a été effectué un clic droit dans le panneau de Secret Manager

  3. Dans la console Google Cloud, cliquez sur Autorisations, puis sur Ajouter.

  4. Dans le champ Nouveaux comptes principaux, saisissez le nom de votre compte de service.

  5. Dans le champ Sélectionner un rôle, choisissez le rôle Accesseur de secrets de Secret Manager.

  6. Cliquez sur Enregistrer.

    Votre compte de service est désormais autorisé à accéder à ce secret spécifique.

Assistance

Pour envoyer vos commentaires, signalez tout problème sur GitHub ou posez une question sur Stack Overflow.