Cloud Functions: funzione di saluto

Questo esempio mostra come creare una Cloud Function che accetta un nome e un cognome come input e restituisce un messaggio di saluto personalizzato.

Esempio di codice

C#

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

using Google.Cloud.Functions.Framework;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;

namespace Greeting;

public class Function : ITypedFunction<GreetingRequest, GreetingResponse>
{
    public Task<GreetingResponse> HandleAsync(GreetingRequest request, CancellationToken cancellationToken) =>
        Task.FromResult(new GreetingResponse
        {
            Message = $"Hello {request.FirstName} {request.LastName}!",
        });
}

public class GreetingRequest
{
    [JsonPropertyName("first_name")]
    public string FirstName { get; set; }

    [JsonPropertyName("last_name")]
    public string LastName { get; set; }
}

public class GreetingResponse
{
    [JsonPropertyName("message")]
    public string Message { get; set; }
}

Go

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.


// Package greeting provides a set of Cloud Functions samples.
package greeting

import (
	"fmt"

	"github.com/GoogleCloudPlatform/functions-framework-go/functions"
)

func init() {
	functions.Typed("Greeting", greeting)
}

// greeting is a Typed Cloud Function.
func greeting(request *GreetingRequest) (*GreetingResponse, error) {
	return &GreetingResponse{
		Message: fmt.Sprintf("Hello %v %v!", request.FirstName, request.LastName),
	}, nil
}

type GreetingRequest struct {
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
}

type GreetingResponse struct {
	Message string `json:"message"`
}

Java

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

import com.google.cloud.functions.TypedFunction;
import com.google.gson.annotations.SerializedName;

public class Greeting implements TypedFunction<GreetingRequest, GreetingResponse> {
  @Override
  public GreetingResponse apply(GreetingRequest request) throws Exception {
    GreetingResponse response = new GreetingResponse();
    response.message = String.format("Hello %s %s!", request.firstName, request.lastName);
    return response;
  }
}

Node.js

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

const functions = require('@google-cloud/functions-framework');

functions.typed('greeting', req => {
  return {
    message: `Hello ${req.first_name} ${req.last_name}!`,
  };
});

PHP

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.


use Google\CloudFunctions\FunctionsFramework;

class GreetingRequest
{
    /** @var string */
    public $first_name;

    /** @var string */
    public $last_name;

    public function __construct(string $first_name = '', string $last_name = '')
    {
        $this->first_name = $first_name;
        $this->last_name = $last_name;
    }

    public function serializeToJsonString(): string
    {
        return json_encode([
            'first_name' => $this->first_name,
            'last_name' => $this->last_name,
        ]);
    }

    public function mergeFromJsonString(string $body): void
    {
        $obj = json_decode($body);
        $this->first_name = $obj['first_name'];
        $this->last_name = $obj['last_name'];
    }
}

class GreetingResponse
{
    /** @var string */
    public $message;

    public function __construct(string $message = '')
    {
        $this->message = $message;
    }

    public function serializeToJsonString(): string
    {
        return json_encode([
            'message' => $message,
        ]);
    }

    public function mergeFromJsonString(string $body): void
    {
        $obj = json_decode($body);
        $this->message = $obj['message'];
    }
};

function greeting(GreetingRequest $req): GreetingResponse
{
    return new GreetingResponse("Hello $req->first_name $req->last_name!");
};

FunctionsFramework::typed('greeting', 'greeting');

Python

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

from dataclasses import dataclass

import functions_framework


@dataclass
class GreetingRequest:
    first_name: str
    last_name: str

    # Required to deserialize the request
    @staticmethod
    def from_dict(req: dict) -> "GreetingRequest":
        return GreetingRequest(
            first_name=req["first_name"],
            last_name=req["last_name"],
        )


@dataclass
class GreetingResponse:
    message: str

    # Required to serialize the response
    def to_dict(self) -> dict:
        return {
            "message": self.message,
        }


@functions_framework.typed
def greeting(req: GreetingRequest):
    return GreetingResponse(message=f"Hello {req.first_name} {req.last_name}!")

Ruby

Per eseguire l'autenticazione in Cloud Run Functions, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

require "functions_framework"

FunctionsFramework.typed "greeting" do |req|
  {
    message: "Hello #{req['first_name']} #{req['last_name']}!"
  }
end

Passaggi successivi

Per cercare e filtrare gli esempi di codice per altri prodotti Google Cloud , consulta il browser degli esempi diGoogle Cloud .