Kurzanleitung: gcloud-Befehlszeilentool verwenden

Auf dieser Seite erfahren Sie, wie Sie eine Cloud Functions-Funktion mit dem gcloud-Befehlszeilentool erstellen und bereitstellen.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die Cloud Functions API.

    Aktivieren Sie die API

  5. Installieren und initialisieren Sie das Cloud SDK.
  6. Aktualisieren Sie alle gcloud-Komponenten:
    gcloud components update
  7. Benötigen Sie eine Eingabeaufforderung? Dazu steht die Google Cloud Shell zur Verfügung. Google Cloud Shell ist eine Befehlszeilenumgebung, in der das Google Cloud SDK bereits enthalten ist und daher nicht installiert werden muss. Das Google Cloud SDK ist außerdem auf den virtuellen Maschinen von Google Compute Engine vorinstalliert.

  8. Bereiten Sie die Entwicklungsumgebung vor.

Beispielcode abrufen

  1. Klonen Sie das Beispiel-Repository auf Ihren lokalen Computer:

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

    Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git

    Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.

    Java

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git

    Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.

  2. Wechseln Sie in das Verzeichnis, das den Cloud Functions-Beispielcode enthält:

    Node.js

    cd nodejs-docs-samples/functions/helloworld/

    Python

    cd python-docs-samples/functions/helloworld/

    Go

    cd golang-samples/functions/helloworld/

    Java

    cd java-docs-samples/functions/helloworld/helloworld/

  3. Sehen Sie sich den Beispielcode an:

    Node.js

    /**
     * HTTP Cloud Function.
     * This function is exported by index.js, and is executed when
     * you make an HTTP request to the deployed function's endpoint.
     *
     * @param {Object} req Cloud Function request context.
     *                     More info: https://expressjs.com/en/api.html#req
     * @param {Object} res Cloud Function response context.
     *                     More info: https://expressjs.com/en/api.html#res
     */
    exports.helloGET = (req, res) => {
      res.send('Hello World!');
    };

    Python

    def hello_get(request):
        """HTTP Cloud Function.
        Args:
            request (flask.Request): The request object.
            <http://flask.pocoo.org/docs/1.0/api/#flask.Request>
        Returns:
            The response text, or any set of values that can be turned into a
            Response object using `make_response`
            <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>.
        """
        return 'Hello World!'

    Go

    
    // Package helloworld provides a set of Cloud Functions samples.
    package helloworld
    
    import (
    	"fmt"
    	"net/http"
    )
    
    // HelloGet is an HTTP Cloud Function.
    func HelloGet(w http.ResponseWriter, r *http.Request) {
    	fmt.Fprint(w, "Hello, World!")
    }
    

    Java

    
    package functions;
    
    import com.google.cloud.functions.HttpFunction;
    import com.google.cloud.functions.HttpRequest;
    import com.google.cloud.functions.HttpResponse;
    import java.io.BufferedWriter;
    import java.io.IOException;
    
    public class HelloWorld implements HttpFunction {
      // Simple function to return "Hello World"
      @Override
      public void service(HttpRequest request, HttpResponse response)
          throws IOException {
        BufferedWriter writer = response.getWriter();
        writer.write("Hello World!");
      }
    }

Funktion bereitstellen

Führen Sie zum Bereitstellen der Funktion mit einem HTTP-Trigger den folgenden Befehl im Verzeichnis helloworld aus:

Node.js

gcloud functions deploy helloGET \
--runtime nodejs10 --trigger-http --allow-unauthenticated
Mit den folgenden Werten für das Flag --runtime können Sie Ihre bevorzugte Version von Node.js festlegen:
  • nodejs10
  • nodejs12

Python

gcloud functions deploy hello_get \
--runtime python37 --trigger-http --allow-unauthenticated
Mit diesen Werten für das Flag --runtime können Sie Ihre bevorzugte Version von Phython festlegen:
  • python37
  • python38

Go

gcloud functions deploy HelloGet \
--runtime go111 --trigger-http --allow-unauthenticated
Mit diesen Werten für das Flag --runtime können Sie Ihre bevorzugte Version von Go festlegen:
  • go111
  • go113

Java

gcloud functions deploy java-helloworld \
--entry-point functions.HelloWorld \
--runtime java11 \
--memory 512MB --trigger-http --allow-unauthenticated

Mit dem Flag --allow-unauthenticated können Sie die Funktion ohne Authentifizierung aufrufen. Wenn Sie eine Authentifizierung, anfordern möchten, lassen Sie das Flag weg.

Funktion testen

  1. Wenn die Bereitstellung der Funktion abgeschlossen ist, notieren Sie sich das Attribut url von httpsTrigger oder suchen es mit dem folgenden Befehl:

    Node.js

    gcloud functions describe helloGET

    Python

    gcloud functions describe hello_get

    Go

    gcloud functions describe HelloGet

    Java

    gcloud functions describe java-helloworld

    Sie sollte so aussehen:

    Node.js

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloGET

    Python

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_get

    Go

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloGet

    Java

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/java-helloworld

  2. Rufen Sie diese URL in Ihrem Browser auf: Es sollte die Meldung Hello World! angezeigt werden.

Nächste Schritte