Cloud Tools for PowerShell installieren und verwenden

1. Übersicht

PowerShell ist eine Befehlszeilenshell und zugehörige Skriptsprache, die auf dem .NET Framework basiert. Es ist das standardmäßige Tool für die Aufgabenautomatisierung und Konfigurationsverwaltung in der Windows-Welt. Ein PowerShell-Cmdlet ist ein einfacher Befehl, der in PowerShell aufgerufen wird.

Cloud Tools for PowerShell ist eine Sammlung von Cmdlets für den Zugriff auf und die Bearbeitung von Google Cloud-Ressourcen wie Google Compute Engine, Google Cloud Storage, Google Cloud SQL und Google Cloud DNS. Weitere werden folgen.

In diesem Lab erfahren Sie, wie Sie mit Google Cloud-Ressourcen über PowerShell interagieren.

Lerninhalte

  • So installieren Sie Cloud Tools for PowerShell.
  • So authentifizieren Sie sich mit dem Google Cloud SDK.
  • Google Compute Engine über PowerShell erstellen und verwalten
  • Informationen zum Sichern von Daten in Google Cloud Storage über PowerShell.

Voraussetzungen

  • Ein Google Cloud Platform-Projekt.
  • Ein Browser, z. B. Chrome oder Firefox.
  • Ein Windows-Computer.

Wie werden Sie diese Anleitung verwenden?

Nur lesen Lesen und Übungen durchführen

Wie würden Sie Ihre Erfahrung mit der Google Cloud Platform bewerten?

Anfänger Mittelstufe Fortgeschritten

2. Einrichtung und Anforderungen

Für dieses Codelab benötigen Sie ein Google Cloud-Projekt, um mit PowerShell zu interagieren. Wenn Sie bereits ein Projekt haben, können Sie es verwenden. Andernfalls können Sie ein neues Projekt erstellen.

Umgebung zum selbstbestimmten Lernen einrichten

Wenn Sie noch kein Google-Konto (Gmail oder GSuite) haben, müssen Sie eines erstellen. Melden Sie sich in der Google Cloud Console ( console.cloud.google.com) an und erstellen Sie ein neues Projekt:

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

Merken Sie sich die Projekt-ID, einen eindeutigen Namen für alle Google Cloud-Projekte. Sie wird später in diesem Codelab als PROJECT_ID bezeichnet.

Als Nächstes müssen Sie die Abrechnung in der Google Cloud Console aktivieren, um Google Cloud Platform-Ressourcen wie Google Cloud Datastore und Cloud Storage nutzen zu können.

Neuen Nutzern der Google Cloud Platform steht eine kostenlose Testversion mit einem Guthaben von 300$ zur Verfügung. Die Durchführung dieses Codelabs sollte Sie nicht mehr als ein paar Dollar kosten, aber es könnte mehr sein, wenn Sie sich für mehr Ressourcen entscheiden oder wenn Sie sie laufen lassen (siehe den Abschnitt „Bereinigen“ am Ende dieses Dokuments).

3. Installation

Installation der Umgebung zum selbstbestimmten Lernen

PowerShell-Cmdlets sind Teil des Cloud SDK für Windows. Laden Sie das Google Cloud SDK für Windows herunter und installieren Sie es, falls noch nicht geschehen. Folgen Sie dazu der Kurzanleitung für Windows. Achten Sie darauf, dass Sie bei der Installation des Cloud SDK die PowerShell-Option ausgewählt haben.

d6df1af5b5b08e41.png

4. Authentifizierung

In Cloud Tools for PowerShell werden die im Cloud SDK gespeicherten Anmeldedaten und Einstellungen verwendet. Bevor Sie die Cmdlets verwenden können, müssen Sie sich also zuerst mit dem Cloud SDK anmelden.

Authentifizierung in selbstgesteuerten Umgebungen

Starten Sie die Google Cloud SDK Shell und führen Sie den folgenden Befehl aus.

gcloud init

Stimmen Sie der Anmeldung mit Ihrem Google-Nutzerkonto zu.

To continue, you must log in. Would you like to log in (Y/n)? Y

Melden Sie sich bei entsprechender Aufforderung über den Browser bei Ihrem Google-Nutzerkonto an. Klicken Sie auf Zulassen, um die Berechtigung für den Zugriff auf Google Cloud Platform-Ressourcen zu gewähren.

Wählen Sie in der Eingabeaufforderung aus der Liste der Cloud Platform-Projekte, für die Sie die Berechtigungen „Inhaber“, „Bearbeiter“ oder „Betrachter“ haben, ein Projekt aus.

Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:

5. Google Cloud-Cmdlets in PowerShell ausführen

Nach der Authentifizierung können Sie Google Cloud-Cmdlets in PowerShell verwenden. Suchen Sie nach der PowerShell-Befehlszeile und öffnen Sie sie.

66b0c5d9b1cd7c68.png

Führen Sie das Cmdlet Get-GceInstance aus, um zu prüfen, ob die Google Cloud-Cmdlets richtig installiert sind. Daraufhin sollten die Compute Engine-Instanzen in Ihrem Projekt aufgeführt werden.

3ffd420f66f76b06.png

6. Google Compute Engine-Instanzen erstellen und verwalten

In diesem Abschnitt erstellen und verwalten Sie Google Compute Engine-Instanzen in Google Cloud Tools for PowerShell.

Instanzkonfiguration erstellen

Bevor Sie eine Instanz erstellen, müssen Sie zuerst eine Instanzkonfiguration erstellen. Dafür benötigen Sie einen Namen, einen Maschinentyp und ein Bootlaufwerk-Image bzw. ein bestehendes Bootlaufwerk. Verwenden Sie Get-GceImage, um ein Datenträger-Image zu erstellen, und New-GceInstanceConfig, um eine Konfiguration zu erstellen.

$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
    -MachineType "n1-standard-4" `
    -DiskImage $disk

An diesem Punkt haben Sie eine Konfiguration, mit der Sie eine Instanz erstellen können.

Instanz erstellen

Verwenden Sie zum Erstellen einer neuen Compute Engine-Instanz das Cmdlet Add-GceInstance. Sie können ein Projekt und eine Zone angeben. Wenn Sie diese auslassen, werden die Parameterwerte standardmäßig auf die Werte in Ihrer aktuellen aktiven Cloud SDK-Konfiguration festgelegt. Wenn Sie ein Projekt angeben, ersetzen Sie PROJECT_ID durch Ihre eigene Projekt-ID.

$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b

Instanz verwalten

Mit dem Cmdlet Get-GceInstance können Sie die VM-Instanzen eines Projekts abrufen. Da der Instanzname mehrmals in verschiedenen Projekten oder Zonen vorkommen kann, können Sie einen Projekt- oder Zonenparameter festlegen, um die Suche einzugrenzen. Das Cmdlet nutzt standardmäßig die Werte, die in der Cloud SDK-Konfiguration aktiv sind.

$instance = Get-GceInstance "my-vm-1"

Sie können Instanztags, Laufwerke, Zugriffskonfigurationen und andere Metadaten festlegen, nachdem Sie Ihre Instanz mit dem Cmdlet Set-GceInstance erstellt haben. Fügen Sie einige Metadaten hinzu und entfernen Sie sie dann so:

Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"

Fügen Sie nun ein Tag hinzu, das Sie später zum Entfernen der Instanz verwenden.

Set-GceInstance $instance -AddTag "to-be-removed"

Sie können eine Instanz mithilfe verschiedener Cmdlets starten, beenden oder neu starten. Sie können auf eine Instanz verweisen, indem Sie den Namen oder das stark typisierte Objekt verwenden, das vom Cmdlet Get-GceInstance zurückgegeben wird. Probieren Sie einige dieser Befehle aus.

Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"

Wenn Sie mit der Instanz fertig sind, können Sie sie schließlich mit dem Cmdlet Remove-GceInstance aus Compute Engine entfernen. Geben Sie dazu das Tag an, das Sie zuvor angegeben haben.

Get-GceInstance -Project $project |
    Where { $_.Tags.Items -contains "to-be-removed" } |
    Remove-GceInstance -WhatIf

7. Daten in Google Cloud Storage sichern

In diesem Teil des Codelabs sichern Sie Daten von Ihrem lokalen Computer in Google Cloud Storage mit Cloud Tools for PowerShell.

Bucket erstellen

Bevor Sie Dateien in Cloud Storage hochladen können, müssen Sie einen Bucket erstellen. Verwenden Sie das Cmdlet New-GcsBucket, um einen neuen Bucket zu erstellen.

$bucket = "my-gcs-bucket"
New-GcsBucket $bucket

Dateien in den Bucket hochladen

Mit New-GcsObject können Sie Dateien oder ganze Ordner in den Bucket hochladen.

Sie können den Inhalt einer lokalen Datei in Cloud Storage hochladen, indem Sie den Parameter -File verwenden und einen Dateipfad angeben. Alternativ können Sie den Inhalt des Objekts als String über die PowerShell-Pipeline übergeben oder den Parameter -Value verwenden.

Wählen Sie eine lokale Datei auf Ihrem Computer aus und laden Sie sie wie folgt in Ihren Bucket hoch.

New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"

Sie können ein gesamtes Verzeichnis vom lokalen Laufwerk in Cloud Storage hochladen, indem Sie den Parameter -UploadFolder verwenden und den Ordnerpfad angeben. Wenn der Ordner nicht direkt in das Stammverzeichnis des Cloud Storage-Buckets hochgeladen werden soll, geben Sie mit -ObjectNamePrefix ein Präfix an, das auf jedes hochgeladene Objekt angewendet wird.

Wählen Sie einen lokalen Ordner auf Ihrem Computer aus und laden Sie die Dateien wie unten beschrieben in Ihren Bucket hoch.

New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"

Suchdaten

Sie können Daten mithilfe von Cmdlets oder dem Provider durch gewöhnliche Dateisuch-Cmdlets durchsuchen. Probieren Sie den folgenden Befehl mit Ihrem Bucket aus.

Get-GcsObject $bucket | Select Name, Size | Out-GridView

Es sollte ein Pop-up-Fenster mit dem Namen und der Größe des Rasters angezeigt werden.

59d92a6bfec86f89.png

Daten lesen

Sie können das Cmdlet Read-GcsObject verwenden, um Daten zu lesen. Mit dem folgenden Befehl können Sie beispielsweise eine Datei mit dem Namen hello.txt auf Ihren Desktop lesen.

Read-GcsObject $bucket "hello.txt" `
    -OutFile "$Env:UserProfile\Desktop\hello.txt"

Daten löschen

Schließlich können Sie Daten mit dem Cmdlet Remove-GcsObject löschen. Verwenden Sie den folgenden Befehl, um den gesamten Inhalt des Buckets zu löschen.

Get-GcsObject $bucket | Remove-GcsObject

8. Glückwunsch!

In diesem Codelab haben Sie gelernt, wie Sie Compute Engine-Instanzen und Cloud Storage-Buckets über PowerShell verwalten. Es gibt aber noch mehr! Sie können Cloud SQL- und Cloud CDN-Ressourcen auch mit PowerShell verwalten. Weitere Informationen finden Sie in der Liste der nächsten Schritte unten.

Behandelte Themen

  • So installieren Sie Cloud Tools for PowerShell.
  • So authentifizieren Sie sich mit dem Google Cloud SDK.
  • Google Compute Engine über PowerShell erstellen und verwalten
  • Informationen zum Sichern von Daten in Google Cloud Storage über PowerShell.

Nächste Schritte