Chiama le funzioni locali
Configurazione
Questo documento presuppone che tu abbia
configurato una funzione in esecuzione locale su
localhost
utilizzando Functions Framework
o Buildpack. Inoltre, presuppone che tu abbia
ha installato lo strumento curl
sulla macchina locale.
Invio di richieste alle funzioni locali
Puoi attivare funzioni eseguite localmente inviando loro richieste HTTP instradate tramite un processo di pubblicazione locale.
Per determinare dove viene eseguita la funzione in locale, controlla l'URL visualizzato quando hai iniziato a eseguire la funzione. Di
per impostazione predefinita, la funzione sarà ospitata su localhost:8080
.
Funzioni HTTP
Quando testi la funzione HTTP dal tuo ambiente di sviluppo, in genere ascolta le richieste su localhost:8080
. Questa interfaccia è accessibile solo dalla macchina o dalla VM su cui è in esecuzione la funzione. Le richieste inviate da qualsiasi altro sistema non possono raggiungerla. Per questo motivo, devi emettere la richiesta HTTP dallo stesso sistema su cui è in esecuzione la funzione. Nei seguenti esempi, se il tuo
è in ascolto su una porta diversa da 8080, sostituisci 8080 nella
esempio con il numero di porta per la funzione.
Test delle funzioni HTTP con Cloud Shell
Se utilizzi Cloud Shell per creare e testare la tua funzione, avvia
localmente nella finestra del terminale Cloud Shell, quindi invia
da un browser o da un'istanza curl
nel seguente modo:
Browser
Fai clic sull'icona nella barra degli strumenti di Cloud Shell e scegli porta 8080 o Cambia porta per scegliere un'altra porta. Si apre una finestra del browser sul sistema corretto e emette una richiesta GET alla porta indicata.
Curl
Per controllare il formato della richiesta HTTP o per visualizzare la risposta non formattata,
utilizza curl
:
- Fai clic sull'icona + sulla barra dei menu di Cloud Shell per aprire un nuovo terminale sullo stesso sistema su cui è in esecuzione la funzione.
Dalla finestra, esegui il comando
curl
per attivare la funzione. Ad esempio:curl localhost:8080
Test delle funzioni HTTP sul server desktop
Se stai creando ed eseguendo la funzione sul tuo sistema desktop locale, avviala innanzitutto in locale, quindi emetti la richiesta di attivazione HTTP da un browser o da un'istanza curl
come segue:
Browser
Apri una nuova finestra o scheda del browser e digita http://localhost:8080
nella
barra degli indirizzi del browser. Si apre una finestra del browser in localhost:8080
sul tuo
per attivare la funzione.
Curl
Apri una nuova finestra del terminale sul desktop locale, quindi esegui il comando curl
in quella finestra per attivare la funzione. Ad esempio:
curl localhost:8080
Viene eseguito il comando curl
specificato per attivare la funzione e viene visualizzato
la risposta senza formattazione.
Funzioni CloudEvent
Puoi inviare eventi di esempio a
Funzioni di CloudEvent
utilizzando curl
. Le seguenti richieste di curl
mostrano come inviare un campione
Pub/Sub e
Cloud Storage in un
Funzione CloudEvent in esecuzione alle ore localhost:8080
.
Pub/Sub
curl localhost:8080 \ -X POST \ -H "Content-Type: application/json" \ -H "ce-id: 123451234512345" \ -H "ce-specversion: 1.0" \ -H "ce-time: 2020-01-02T12:34:56.789Z" \ -H "ce-type: google.cloud.pubsub.topic.v1.messagePublished" \ -H "ce-source: //pubsub.googleapis.com/projects/MY-PROJECT/topics/MY-TOPIC" \ -d '{ "message": { "data": "d29ybGQ=", "attributes": { "attr1":"attr1-value" } }, "subscription": "projects/MY-PROJECT/subscriptions/MY-SUB" }'
Archiviazione
curl localhost:8080 \ -X POST \ -H "Content-Type: application/json" \ -H "ce-id: 123451234512345" \ -H "ce-specversion: 1.0" \ -H "ce-time: 2020-01-02T12:34:56.789Z" \ -H "ce-type: google.cloud.storage.object.v1.finalized" \ -H "ce-source: //storage.googleapis.com/projects/_/buckets/MY-BUCKET-NAME" \ -H "ce-subject: objects/MY_FILE.txt" \ -d '{ "bucket": "MY_BUCKET", "contentType": "text/plain", "kind": "storage#object", "md5Hash": "...", "metageneration": "1", "name": "MY_FILE.txt", "size": "352", "storageClass": "MULTI_REGIONAL", "timeCreated": "2020-04-23T07:38:57.230Z", "timeStorageClassUpdated": "2020-04-23T07:38:57.230Z", "updated": "2020-04-23T07:38:57.230Z" }'