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 installato lo strumento curl
sulla tua macchina locale.
Invio di richieste alle funzioni locali
Puoi attivare funzioni eseguite localmente inviando loro richieste HTTP instradate tramite un processo di pubblicazione locale.
Determina dove viene eseguita a livello locale la tua funzione controllando l'URL visualizzato
quando hai avviato l'esecuzione della funzione. Per impostazione predefinita, la funzione verrà ospitata su localhost:8080
.
Funzioni HTTP
Quando testi la funzione HTTP dall'ambiente di sviluppo, di solito
rimane in ascolto delle richieste su localhost:8080
. Questa interfaccia è accessibile solo da
la macchina o la VM su cui è in esecuzione la funzione; richieste inviate da altri
sistema non riesce a raggiungerlo. 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 funzione, avviala localmente nella finestra del terminale di Cloud Shell, quindi emetti la richiesta di attivazione HTTP da un browser o da un'istanza curl
come segue:
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 tua richiesta HTTP o per visualizzare la risposta senza formattazione,
usa curl
:
- Fai clic sull'icona + nella barra dei menu di Cloud Shell per aprire una nuova finestra del 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, per prima cosa
avviare la funzione localmente, quindi inviare la richiesta di trigger HTTP da un browser
o 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 alle
funzioni CloudEvent
utilizzando curl
. Le seguenti richieste di curl
mostrano come inviare un campione
Cloud Pub/Sub
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" }'
Funzioni in background
Puoi inviare eventi di esempio a
funzioni in background
utilizzando curl
. Le seguenti richieste di curl
mostrano come inviare un campione
Cloud Pub/Sub
Cloud Storage in un
funzione in background in esecuzione alle localhost:8080
.
Pub/Sub
# 'world' base64-encoded is 'd29ybGQ=' curl localhost:8080 \ -X POST \ -H "Content-Type: application/json" \ -d '{ "context": { "eventId":"1144231683168617", "timestamp":"2020-05-06T07:33:34.556Z", "eventType":"google.pubsub.topic.publish", "resource":{ "service":"pubsub.googleapis.com", "name":"projects/sample-project/topics/gcf-test", "type":"type.googleapis.com/google.pubsub.v1.PubsubMessage" } }, "data": { "@type": "type.googleapis.com/google.pubsub.v1.PubsubMessage", "attributes": { "attr1":"attr1-value" }, "data": "d29ybGQ=" } }'
Archiviazione
curl localhost:8080 \ -X POST \ -H "Content-Type: application/json" \ -d '{ "context": { "eventId": "1147091835525187", "timestamp": "2020-04-23T07:38:57.772Z", "eventType": "google.storage.object.finalize", "resource": { "service": "storage.googleapis.com", "name": "projects/_/buckets/MY_BUCKET/MY_FILE.txt", "type": "storage#object" } }, "data": { "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" } }'