1. Présentation
PowerShell est un shell de ligne de commande et un langage de script associé basé sur le framework .NET. Il s'agit de l'outil de gestion de configuration et d'automatisation des tâches par défaut utilisé dans l'environnement Windows. Une cmdlet PowerShell est une commande légère invoquée dans PowerShell.
Cloud Tools for PowerShell est une collection de cmdlets permettant d'accéder aux ressources Google Cloud et de les manipuler, telles que Google Compute Engine, Google Cloud Storage, Google Cloud SQL et Google Cloud DNS. D'autres ressources seront bientôt disponibles.
Suivez cet atelier pour apprendre à interagir avec les ressources Google Cloud depuis PowerShell.
Points abordés
- Découvrez comment installer Cloud Tools for PowerShell.
- Comment s'authentifier avec le SDK Google Cloud
- Découvrez comment créer et gérer Google Compute Engine à partir de PowerShell.
- Découvrez comment sauvegarder des données dans Google Cloud Storage à partir de PowerShell.
Prérequis
Comment allez-vous utiliser ce tutoriel ?
Quel est votre niveau d'expérience avec Google Cloud Platform ?
2. Préparation
Pour cet atelier de programmation, vous avez besoin d'un projet Google Cloud pour interagir avec PowerShell. Si vous avez déjà un projet, vous pouvez l'utiliser ou en créer un en suivant les étapes ci-dessous.
Configuration de l'environnement au rythme de chacun
Si vous ne possédez pas encore de compte Google (Gmail ou G Suite), vous devez en créer un. Connectez-vous à la console Google Cloud ( console.cloud.google.com) et créez un projet :


Mémorisez l'ID du projet. Il s'agit d'un nom unique permettant de différencier chaque projet Google Cloud Platform. Il sera désigné par le nom PROJECT_ID tout au long de cet atelier de programmation.
Vous devez ensuite activer la facturation dans la console Google Cloud pour pouvoir utiliser les ressources Google Cloud Platform telles que Google Cloud Datastore et Cloud Storage.
Les nouveaux utilisateurs de Google Cloud Platform peuvent bénéficier d'un essai sans frais avec 300$de crédits. Suivre cet atelier de programmation ne devrait pas vous coûter plus d'un euro. Cependant, cela peut s'avérer plus coûteux si vous décidez d'utiliser davantage de ressources ou si vous n'interrompez pas les ressources (voir la section "Effectuer un nettoyage" à la fin du présent document).
3. Installation
Installation de l'environnement au rythme de chacun
Les cmdlets PowerShell font partie du SDK Cloud pour Windows. Si vous ne l'avez pas déjà fait, téléchargez et installez le SDK Google Cloud pour Windows, comme décrit dans le guide de démarrage rapide pour Windows. Assurez-vous d'avoir coché l'option PowerShell lors de l'installation du SDK Cloud.

4. Authentification
Cloud Tools for PowerShell utilise les identifiants et les paramètres stockés dans le SDK Cloud. Pour commencer à utiliser les cmdlets, vous devez d'abord vous connecter à l'aide du SDK Cloud.
Authentification de l'environnement au rythme de chacun
Démarrez Google Cloud SDK Shell et exécutez la commande suivante.
gcloud init
Acceptez l'option de connexion avec votre compte utilisateur Google.
To continue, you must log in. Would you like to log in (Y/n)? Y
Dans votre navigateur, connectez-vous à votre compte utilisateur Google lorsque vous y êtes invité, puis cliquez sur Autoriser pour autoriser l'accès aux ressources de Google Cloud Platform.
Dans l'invite de commande, sélectionnez un projet Cloud Platform dans la liste de ceux pour lesquels vous disposez du rôle Propriétaire, Éditeur ou Lecteur.
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. Exécuter des cmdlets Google Cloud dans PowerShell
Une fois authentifié, vous pouvez utiliser les cmdlets Google Cloud dans PowerShell. Recherchez et ouvrez l'interface système de ligne de commande PowerShell.

Pour vous assurer que les cmdlets Google Cloud sont correctement installées, exécutez la cmdlet Get-GceInstance. La liste des instances Compute Engine de votre projet devrait s'afficher.

6. Créer et gérer des instances Google Compute Engine
Dans cette section, vous allez créer et gérer Google Compute Engine à partir de Google Cloud Tools pour PowerShell.
Créer une configuration d'instance
Avant de créer une instance, vous devez d'abord créer une configuration d'instance. Au minimum, vous devez spécifier un nom, un type de machine et une image de disque de démarrage ou un disque de démarrage existant. Utilisez Get-GceImage pour créer une image disque et New-GceInstanceConfig pour créer une configuration.
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
À ce stade, vous disposez d'une configuration que vous pouvez utiliser pour créer une instance.
Créer une instance
Utilisez le cmdlet Add-GceInstance pour créer une instance Compute Engine. Vous pouvez spécifier un projet et une zone, mais si vous les omettez, les valeurs des paramètres sont celles de votre configuration active actuelle du SDK Cloud. Si vous spécifiez un projet, veillez à remplacer PROJECT_ID par votre propre ID de projet.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
Gérer une instance
Vous pouvez utiliser le cmdlet Get-GceInstance pour récupérer les instances de machine virtuelle d'un projet. Étant donné que le nom de l'instance peut ne pas être unique dans les projets ou les zones, vous pouvez spécifier un paramètre "Projet" ou "Zone" pour restreindre la recherche. Par défaut, le cmdlet utilise les valeurs de la configuration active du SDK Cloud.
$instance = Get-GceInstance "my-vm-1"
Après avoir créé une instance, vous pouvez définir des tags, des disques, des configurations d'accès et d'autres métadonnées pour cette instance à l'aide du cmdlet Set-GceInstance. Ajoutez des métadonnées, puis supprimez-les comme suit.
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
Ajoutez maintenant un tag que vous utiliserez plus tard pour supprimer l'instance.
Set-GceInstance $instance -AddTag "to-be-removed"
Vous pouvez démarrer, arrêter ou redémarrer une instance à l'aide de différents cmdlets. Vous pouvez faire référence à une instance en utilisant son nom ou l'objet fortement typé renvoyé par le cmdlet Get-GceInstance. Essayez quelques-unes de ces commandes.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
Enfin, lorsque vous avez terminé avec l'instance, supprimez-la de Compute Engine à l'aide du cmdlet Remove-GceInstance et en fournissant le tag que vous avez spécifié précédemment.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. Sauvegarder des données dans Google Cloud Storage
Dans cette partie de l'atelier de programmation, vous allez sauvegarder des données de votre ordinateur local dans Google Cloud Storage à l'aide de Cloud Tools for PowerShell.
Créer un bucket
Avant d'importer des fichiers dans Cloud Storage, vous devez créer un bucket. Utilisez le cmdlet New-GcsBucket pour créer un bucket.
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
Importer des fichiers dans le bucket
Vous pouvez utiliser New-GcsObject pour importer des fichiers ou des dossiers entiers dans le bucket.
Vous pouvez importer le contenu d'un fichier local dans Cloud Storage en utilisant le paramètre -File et en spécifiant un chemin d'accès au fichier. Vous pouvez également transmettre le contenu de l'objet sous forme de chaîne via le pipeline PowerShell ou utiliser le paramètre -Value.
Sélectionnez un fichier local sur votre ordinateur et importez-le dans votre bucket comme suit.
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
Vous pouvez importer un répertoire entier du disque local dans Cloud Storage en utilisant le paramètre -UploadFolder et en spécifiant le chemin d'accès au dossier. Si vous ne souhaitez pas que le dossier soit importé directement à la racine du bucket Cloud Storage, utilisez -ObjectNamePrefix pour spécifier un préfixe qui sera appliqué à chaque objet importé.
Choisissez un dossier local sur votre ordinateur et importez-le dans votre bucket comme suit.
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
Données de recherche
Vous pouvez rechercher des données à l'aide des cmdlets ou avec le fournisseur via les cmdlets de recherche de fichier courants. Essayez la commande suivante avec votre bucket.
Get-GcsObject $bucket | Select Name, Size | Out-GridView
Une grille avec le nom et la taille doit s'afficher.

Lire des données
Vous pouvez utiliser le cmdlet Read-GcsObject pour lire les données. Par exemple, vous pouvez utiliser la commande suivante pour lire un fichier nommé hello.txt sur votre bureau.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
Supprimer des données
Enfin, vous pouvez supprimer des données à l'aide du cmdlet Remove-GcsObject. Exécutez la commande suivante pour supprimer tout le contenu du bucket.
Get-GcsObject $bucket | Remove-GcsObject
8. Félicitations !
Dans cet atelier de programmation, vous avez appris à gérer des instances Compute Engine et des buckets Cloud Storage à partir de PowerShell, mais ce n'est pas tout ! Vous pouvez également gérer les ressources Cloud SQL et Cloud CDN à l'aide de PowerShell. Pour en savoir plus, consultez la liste des étapes suivantes ci-dessous.
Points abordés
- Découvrez comment installer Cloud Tools for PowerShell.
- Comment s'authentifier avec le SDK Google Cloud
- Découvrez comment créer et gérer Google Compute Engine à partir de PowerShell.
- Découvrez comment sauvegarder des données dans Google Cloud Storage à partir de PowerShell.
Étapes suivantes
- Obtenez plus d'informations sur Cloud Tools pour PowerShell.
- Obtenez plus d'informations sur Windows sur Google Cloud Platform.
- Obtenez plus d'informations sur .NET sur Google Cloud Platform.
- Obtenez plus d'informations sur SQL Server sur Google Cloud Platform.
- Obtenez plus d'informations sur Cloud Tools pour Visual Studio.