Guida rapida: creazione e deployment di una funzione Cloud HTTP utilizzando .NET

Crea ed esegui il deployment di una funzione Cloud HTTP utilizzando .NET

Questa guida illustra il processo di scrittura di una funzione Cloud Functions utilizzando il linguaggio di runtime C.NET in linguaggio .NET. Esistono due tipi di funzioni Cloud Functions:

  • Una funzione attivata da HTTP, che puoi richiamare dalle richieste HTTP standard.
  • Una funzione basata su eventi che utilizzi per gestire gli eventi della tua infrastruttura Cloud, come messaggi su un argomento Cloud Pub/Sub o modifiche a un bucket Cloud Storage.

Struttura della guida

  1. Creazione di un progetto GCP mediante l'interfaccia a riga di comando gcloud
  2. Creare una funzione
  3. Indicazione delle dipendenze
  4. Deployment della funzione
  5. Testare la funzione di cui è stato eseguito il deployment
  6. Visualizzazione dei log
  7. Utilizzare il framework di Functions

Creazione di un progetto GCP mediante l'interfaccia a riga di comando gcloud

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  4. Abilita le API Cloud Functions and Cloud Build.

    Abilita le API

  5. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  7. Abilita le API Cloud Functions and Cloud Build.

    Abilita le API

  8. Installa e inizializza l'interfaccia a riga di comando gcloud.
  9. Aggiorna e installa i componenti gcloud:
    gcloud components update
  10. Prepara l'ambiente di sviluppo.

    Vai alla guida alla configurazione di .NET

Creazione di una funzione

Questa sezione spiega come creare manualmente una funzione da zero. In alternativa, puoi utilizzare i modelli forniti dal pacchetto modello.

Per creare una funzione:

  1. Crea una directory sul sistema locale per il codice funzione:

    Windows

    mkdir %HOMEPATH%\helloworld
    cd %HOMEPATH%\helloworld
    

    Linux o Mac OS X

    mkdir ~/helloworld
    cd ~/helloworld
    
  2. Crea un file denominato Function.cs con il seguente contenuto:

    using Google.Cloud.Functions.Framework;
    using Microsoft.AspNetCore.Http;
    using System.Threading.Tasks;
    
    namespace HelloWorld
    {
        public class Function : IHttpFunction
        {
            public async Task HandleAsync(HttpContext context)
            {
                await context.Response.WriteAsync("Hello World!");
            }
        }
    }

    Questa funzione di esempio visualizza il saluto "Hello World!"

Specifica delle dipendenze

Il passaggio successivo consiste nel configurare le dipendenze. In C# Cloud Functions puoi configurare due tipi di dipendenze:

  • Rendere disponibile il framework di Functions. Questa è l'attività che stai svolgendo in questa sezione.
  • Rendi disponibili altre librerie, sia in termini di file di progetto che all'interno del codice tramite inserimento di dipendenze. Per ulteriori informazioni, consulta la pagina Personalizzazione tramite i corsi per startup di Functions.

Per rendere disponibile il framework Functions, modifica la directory nella directory helloworld che hai creato sopra:

     cd ~/helloworld

A questo punto, crea un file denominato HelloWorld.csproj con il seguente contenuto:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Google.Cloud.Functions.Hosting" Version="1.0.0" />
  </ItemGroup>
</Project>

Deployment della funzione in corso...

Per il deployment della funzione con un trigger HTTP, esegui il comando seguente nella directory helloworld:

gcloud functions deploy my-first-function --entry-point HelloWorld.Function --runtime dotnet3 --trigger-http --allow-unauthenticated

dove my-first-function è il nome registrato con cui la funzione sarà identificata in Cloud Console, mentre --entry-point specifica il nome completo della classe (FQN).

Test della funzione di cui è stato eseguito il deployment

  1. Al termine del deployment della funzione, prendi nota della proprietà httpsTrigger.url o trovala utilizzando il comando seguente:

    gcloud functions describe my-first-function
    

    Dovrebbe avere questo aspetto:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
  2. Visita questo URL nel tuo browser. Dovresti vedere un messaggio Hello World!.

Visualizzazione dei log

Utilizzo dello strumento a riga di comando

I log per Cloud Functions sono visualizzabili nell'interfaccia utente di Cloud Logging e tramite l'interfaccia a riga di comando di Google Cloud.

Per visualizzare i log per la funzione con l'interfaccia a riga di comando gcloud, utilizza il comando logs read, seguito dal nome della funzione:

gcloud functions logs read my-first-function

L'output dovrebbe essere simile all'output seguente:

LEVEL  NAME               EXECUTION_ID  TIME_UTC                 LOG
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.791  Function execution started
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.958  Function execution took 168 ms, finished with status code: 200
...

Utilizzo della dashboard di Logging

Puoi visualizzare i log per Cloud Functions anche da Cloud Console.

Utilizzo del pacchetto di modelli

Le sezioni precedenti indicano come creare manualmente una funzione da zero. In futuro, probabilmente utilizzerai i modelli per creare nuove funzioni.

Per utilizzare i modelli per creare, creare e testare una funzione:

  1. Installa l'SDK.NET Core 3.1.

  2. Installa il pacchetto del modello:

    dotnet new -i Google.Cloud.Functions.Templates
    
  3. Successivamente, crea una directory per il tuo progetto e utilizza dotnet new per creare una nuova funzione HTTP:

    mkdir HelloFunctions
    cd HelloFunctions
    dotnet new gcf-http
    

    Questa operazione crea HelloFunctions.csproj e Function.cs nella directory corrente. Apri Function.cs per controllare il codice e, se vuoi, fornisci un messaggio personalizzato.

  4. Crea la tua funzione localmente come segue:

    dotnet run
    
  5. Quando il server è in esecuzione, vai a http://localhost:8080 per richiamare la funzione. Per arrestare il server, premi Ctrl-C nella console.

    Questa funzione mostra il messaggio "Hello Functions Framework".

In alternativa, puoi inviare richieste a questa funzione utilizzando curl da un'altra finestra Terminale:

curl localhost:8080
# Output: Hello Functions Framework