Eventarc supporta l'applicazione di un pattern del percorso durante l'applicazione di filtri. La sintassi del pattern del percorso consente di definire un'espressione che corrisponde agli eventi. Questo ti consente di controllare la granularità del trigger Eventarc che stai creando e di acquisire e intervenire su determinati eventi. Ad esempio, puoi creare un attivatore applicabile a un singolo evento, come una modifica a un file specifico, oppure estendere l'ambito del pattern e creare un attivatore applicabile in modo più ampio.
Applica un pattern del percorso
Puoi applicare un pattern del percorso per filtrare gli eventi quando crei un trigger
utilizzando la pagina della console Eventarc di Google Cloud o eseguendo
un comando gcloud
.
Ad esempio, puoi applicare un pattern del percorso quando applichi un filtro in base a nomi di risorse o istanze di database (una singola istanza o un percorso).
Specificando un pattern del percorso del nome della risorsa si applica quando si crea un trigger per eventi di Cloud Audit Logs e per valori di
resourceName
. Il nome di una risorsa indica la risorsa oggetto di controllo tramite un log di controllo. I nomi delle risorse sono organizzati in modo gerarchico mediante identificatori costituiti dall'ID della risorsa stessa e dagli ID di eventuali risorse padre, tutti separati da barre, come in questo caso:/projects/_/buckets/bucket-id/objects/object-id
. I filtri eseguiti da Eventarc corrispondono ai pattern basati sui valori di questi identificatori. Per ulteriori informazioni, consulta Nomi delle risorse.Specificando un pattern del percorso dell'istanza del database si applica quando si crea un trigger per eventi di Firebase Realtime Database e per i valori
instance
oref
. Un'istanza di database indica un'istanza di Firebase Realtime Database. Puoi applicare un pattern del percorso al nome dell'istanza del database o al percorso di un documento per cui vuoi ricevere eventi quando i dati vengono creati, aggiornati o eliminati in quel percorso o in una delle relative istanze secondarie.Specificando un pattern del percorso dell'ID risorsa si applica quando si crea un trigger per eventi Cloud IoT e per valori
registry
edevice
. Puoi applicare un pattern del percorso per filtrare le modifiche nei registry e nei dispositivi in un registro, con corrispondenza con caratteri jolly.
Per i dettagli, consulta le istruzioni per creare un attivatore per un fornitore, un tipo di evento e una destinazione specifici.
Verifica se puoi applicare un pattern del percorso
Per verificare se puoi applicare un pattern del percorso a un attributo di un evento da un provider, descrivi il provider di eventi. Ad esempio:
gcloud eventarc providers describe cloudaudit.googleapis.com --location=us-central1
L'output è simile al seguente e un valore pathPatternSupported
di true
indica che puoi applicare un pattern del percorso:
displayName: Cloud Audit Logs eventTypes: - description: An audit log is created that matches the trigger's filter criteria. filteringAttributes: - attribute: methodName description: The identifier of the service's operation. required: true - attribute: resourceName description: The complete path to a resource. Used to filter events for a specific resource. pathPatternSupported: true - attribute: serviceName description: The identifier of the Google Cloud service. required: true - attribute: type required: true type: google.cloud.audit.log.v1.written name: projects/project-name/locations/us-central1/providers/cloudaudit.googleapis.com
Ad esempio:
gcloud eventarc providers describe firebasedatabase.googleapis.com --location=us-central1
Dove l'output è simile al seguente:
displayName: Firebase Realtime Database eventTypes: - description: New data has been created in the database. filteringAttributes: - attribute: instance description: A single database instance. pathPatternSupported: true required: true - attribute: ref description: Pattern to match for the database instance. pathPatternSupported: true required: true - attribute: type required: true type: google.firebase.database.ref.v1.created [...]
Per maggiori informazioni, consulta
gcloud eventarc providers describe
.
Sintassi del pattern del percorso
La sintassi del pattern del percorso è definita come segue:
Sequenza | /? Segment (/ Segment )* |
Segmento | CaptureGroup | Expression |
Gruppo Capture | { ID (= Expression )? } |
Espressionismo | Wildcard | MultiSegmentWildcard | NameSegment |
Segmento dei nomi | ( Character * Wildcard ? Character *) |
ID | [a-zA-Z0-9_]+ |
Carattere jolly | * |
Scheda MultiSegmentWildcard | ** |
Carattere1 | [\\w\\s\\t~@#$%&.,?:;+='[]()-] |
Legenda:
? |
zero o uno |
* |
zero o più |
+ |
uno o più |
| |
OR |
Espressioni
Un'espressione può essere uno dei seguenti tipi di segmento e non può essere vuota:
- Un singolo segmento
Wildcard
definito come*
corrisponde a zero o più caratteri nel pattern. - Un
MultiSegmentWildcard
definito come**
corrisponde a zero o più segmenti nel pattern. - Un
NameSegment
è composto da zero o da un*
e da altri caratteri. Questa combinazione ti consente di filtrare per prefisso, suffisso o estensione file, ad esempiofile-*.txt
.
Tieni presente che un percorso può contenere molti caratteri jolly di segmento, ma solo un carattere jolly di più segmenti. Ad esempio, il seguente percorso non è valido: /projects/**/buckets/**
.
Regione delle risorse
I nomi delle risorse possono contenere identificatori di località. Ad esempio:
/projects/$PROJECT_ID/locations/$REGION/triggers/my-trigger
Tuttavia, la corrispondenza del pattern del percorso è limitata dalla regione di risorse. Ad esempio, per gli trigger di Cloud Audit Logs, i caratteri jolly nella località corrispondono solo agli attivatori della regione o agli attivatori globali.
Acquisisci gruppi
CaptureGroup
consente di acquisire il contenuto di un'espressione. Per farlo, assegna il valore a una variabile tra parentesi graffe, ad esempio buckets/{path=**}/files/{filename=file-*.txt}
. Un carattere jolly di un singolo segmento può omettere =*
in un gruppo Capture; ad esempio, /projects/_/buckets/{bucket}/objects/file.*
Esempi
I seguenti esempi mostrano come utilizzare e non utilizzare la sintassi.
Pattern validi
Pattern | Descrizione |
---|---|
/projects/_/buckets/bucket-1/objects/file1.txt |
Nome risorsa specifico. |
/projects/_/buckets/bucket-1/objects/* |
Corrisponde a qualsiasi file nel bucket |
/projects/_/buckets/bucket-1/objects/*.txt |
Corrisponde a tutti i file TXT nel bucket. |
/projects/_/buckets/bucket-1/objects/file-*.txt |
Corrisponde a tutti i file TXT con il prefisso file- nel bucket. |
/projects/_/buckets/bucket-1/objects/** |
Corrisponde a ogni elemento nel bucket. |
/projects/_/buckets/bucket-1/objects/files/* |
Corrisponde a qualsiasi file nella directory files nel bucket bucket-1 . |
/projects/_/**/file-*.txt |
Corrisponde a qualsiasi file TXT con prefisso file- per tutti i bucket. |
/projects/_/buckets/bucket-*/objects/file-*.txt |
Corrisponde a tutti i file TXT con prefisso file- per qualsiasi bucket con prefisso bucket- . |
/projects/_/buckets/{bucket}/objects/file.* /projects/_/buckets/{bucket=*}/objects/file.* /projects/_/buckets/*/objects/{filename=file.*}
|
Tre rappresentazioni diverse dello stesso filtro. Corrisponde a qualsiasi bucket con un file denominato file di qualsiasi tipo; I primi due esempi acquisiscono anche il bucket, mentre l'ultimo esempio acquisisce il nome del file.
|
Pattern non validi
Pattern | Descrizione |
---|---|
/projects/_/buckets/bucket-1/objects/ |
Espressione vuota. |
/projects//buckets/bucket-1/objects/file1.txt |
Espressione vuota. |
/projects/_/buckets/bucket**/objects/file1.txt |
L'espressione può contenere un solo * . |
/projects/_/buckets/bucket-1/objects/file-*.* |
L'espressione può contenere un solo * . |
/projects/**/buckets/** |
Il percorso della risorsa può contenere un solo ** . |
/projects/_/buckets/{=*}/objects/file1.txt |
ID mancante nel segmento. |
/projects/_/buckets/{bucket=}/objects/file1.txt |
Espressione vuota all'interno di un gruppo Capture. |
/projects/_/buckets/{bucket/objects/file1.txt |
Acquisisci gruppo non chiuso. |
Corrispondenza di pattern
Pattern | Risorsa | Corrisponde a? |
---|---|---|
/buckets/bucket-1/objects/file1.txt |
/buckets/bucket-1/objects/file1.txt |
|
/buckets/bucket-1/objects/file2.txt |
||
/buckets/bucket-1/objects/* |
/buckets/bucket-1/objects/file3.txt |
|
/buckets/bucket-1/objects/file4.jpg |
||
/buckets/bucket-1/objects/files/file4.jpg |
||
/buckets/bucket-1/objects |
||
/buckets/bucket-1/objects/*.txt |
/buckets/bucket-1/objects/file5.txt |
|
/buckets/bucket-1/objects/file6.jpg |
||
/buckets/bucket-1/objects/file-*.txt |
/buckets/bucket-1/objects/file-777.txt |
|
/buckets/bucket-1/objects/file-.txt |
||
/buckets/bucket-1/objects/file.txt |
||
projects/_/**/{filename=file-*.txt} |
projects/_/objects/object-1/files/file-9.txt |
|
projects/_/{ob}jects/**/-+=*/file-9.txt |
||
projects/_/file-10.txt |
||
projects/_/files-1/file-1.txt/files-2/file-2.txt |
||
projects/_//file-1234.txt |
||
projects/_/files/file-5.txt/file.txt |
Passaggi successivi
- Per un elenco degli eventi supportati da Eventarc, consulta la pagina relativa ai tipi di eventi supportati da Eventarc.