Creare una registrazione per ricevere eventi

Una registrazione identifica un abbonamento a un particolare bus. La registrazione definisce i criteri di corrispondenza che determinano quali messaggi vengono instradati a una destinazione. Specifica anche la pipeline attraverso cui devono essere indirizzati i messaggi corrispondenti. Una pipeline consente di configurare una destinazione di destinazione e offre anche la possibilità di trasformare gli eventi corrispondenti prima di inviarli alla destinazione.

Tieni presente quanto segue:

  • Una pipeline e una registrazione devono trovarsi nello stesso Google Cloud progetto. (Il bus può trovarsi nello stesso progetto o in un progetto diverso.)
  • Una pipeline può essere utilizzata per più registrazioni.
  • Solo una destinazione può essere il target dei messaggi indirizzati da una pipeline.

Prima di iniziare

Prima di configurare una pipeline o una registrazione, devi aver già creato un bus Eventarc Advanced.

Ruoli obbligatori

Un ruolo Identity and Access Management (IAM) contiene un insieme di autorizzazioni che ti consentono di eseguire azioni specifiche sulle risorse Google Cloud . Per creare una pipeline e una registrazione per instradare i messaggi sono necessari i seguenti ruoli e autorizzazioni:

  • Per ottenere l'autorizzazione necessaria per creare una pipeline, chiedi all'amministratore di concederti il ruolo IAM Sviluppatore Eventarc (roles/eventarc.developer) nel progetto della pipeline. Questo ruolo predefinito contiene l'autorizzazione eventarc.pipelines.create, necessaria per creare una pipeline.
  • Per ottenere l'autorizzazione necessaria per creare una registrazione, chiedi all'amministratore di concederti il ruolo IAM Sviluppatore Eventarc (roles/eventarc.developer) nel progetto di registrazione. Questo ruolo predefinito contiene l'autorizzazione eventarc.enrollments.create, necessaria per creare una registrazione.
  • Per ottenere l'autorizzazione necessaria per utilizzare un bus, chiedi all'amministratore di concederti il ruolo IAM Eventarc Message Bus User (roles/eventarc.messageBusUser) nel progetto bus. Questo ruolo predefinito contiene l'autorizzazione eventarc.buses.use, che è necessaria per utilizzare un bus.

Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso. Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Creare una registrazione e una pipeline

Puoi creare una pipeline e una registrazione nei seguenti modi:

  • Nella console Google Cloud
  • Utilizzando Google Cloud CLI nel terminale o in Cloud Shell
  • Inviando una richiesta all'API Eventarc

Console

Nella console Google Cloud , puoi creare sia la pipeline sia la registrazione contemporaneamente dalla pagina Pipeline.

  1. Per creare una registrazione, nella console Google Cloud , vai alla pagina Eventarc > Pipeline.

    Vai a Pipeline

  2. Fai clic su Crea pipeline.

  3. Nel riquadro Dettagli pipeline, segui questi passaggi:

    1. Inserisci un nome pipeline. Questo è l'ID della tua pipeline.
    2. Nell'elenco Regione, seleziona una regione in cui eseguire il deployment della pipeline. La pipeline deve essere creata nella stessa regione del bus. Per maggiori informazioni, consulta Località Eventarc Advanced.
    3. (Facoltativo) Nell'elenco Gravità log, seleziona la gravità minima per gli eventi descritti nelle voci di log. Il valore predefinito è Nessuno. Per ulteriori informazioni, vedi LogSeverity.
    4. (Facoltativo) Nella sezione Criteri di ripetizione, puoi modificare la configurazione predefinita per ripetere gli eventi.
    5. Per la crittografia, accetta il valore predefinito Google-managed encryption key o seleziona Chiave Cloud KMS. Per saperne di più, consulta Utilizzare le chiavi di crittografia gestite dal cliente (CMEK).
    6. Se selezioni Chiave Cloud KMS, procedi nel seguente modo:

      1. Nell'elenco Tipo di chiave, seleziona un metodo per gestire le chiavi.

        Puoi gestire le chiavi manualmente o utilizzare Autokey, che ti consente di generare chiavi e chiavi automatizzate on demand. Se l'opzione Autokey è disattivata, significa che non è ancora integrata nel tipo di risorsa attuale.

      2. In Seleziona una chiave gestita dal cliente, seleziona una chiave.

        Tieni presente che devi selezionare una regione prima di poter visualizzare le chiavi gestite dal cliente.

      3. (Facoltativo) Per inserire manualmente il nome della risorsa della chiave, nell'elenco Seleziona una chiave gestita dal cliente, fai clic su Inserisci chiave manualmente e inserisci il nome della chiave nel formato specificato.

      4. Se richiesto, concedi il ruolo cloudkms.cryptoKeyEncrypterDecrypter all'agente di servizio Eventarc.

    7. (Facoltativo) Per aggiungere etichette, fai clic su Aggiungi etichetta. Le etichette sono coppie chiave/valore che ti aiutano a organizzare le tue risorseGoogle Cloud . Per saperne di più, vedi Che cosa sono le etichette?

    8. Fai clic su Continua.

  4. Nel riquadro Registrazioni, segui questi passaggi:

    1. Fai clic su Aggiungi registrazione.
    2. Inserisci un nome registrazione.
    3. Nell'elenco Bus, seleziona un bus a cui abbonarti.
    4. Nel campo Espressione CEL, scrivi un'espressione di valutazione utilizzando CEL. Ad esempio:

      message.type == "google.cloud.dataflow.job.v1beta3.statusChanged"

      Tieni presente che l'espressione predefinita, true, indica che tutti i messaggi vengono indirizzati senza filtri.

    5. Fai clic su Fine.

    6. Puoi aggiungere un'altra registrazione o fare clic su Continua.

  5. (Facoltativo) Nel riquadro Mediazione degli eventi, esegui le seguenti operazioni o fai clic su Continua:

    1. Seleziona la casella di controllo Applica una trasformazione.
    2. Nell'elenco Formato in entrata, seleziona il formato applicabile.

      Tieni presente che quando applichi una trasformazione, devi specificare un formato dei dati in entrata per una pipeline e che tutti gli eventi devono corrispondere a questo formato.

    3. Per i formati Avro o Protobuf, devi specificare uno schema in entrata. (Facoltativo) Puoi caricare uno schema in entrata. Per maggiori informazioni, vedi Formattare gli eventi ricevuti.

    4. Nel campo Espressione CEL, scrivi un'espressione di trasformazione utilizzando CEL.

    5. Fai clic su Continua.

  6. Nel riquadro Destinazione, procedi nel seguente modo:

    1. Nell'elenco Tipo di destinazione, seleziona un tipo di destinazione a cui indirizzare i messaggi. A seconda del tipo di destinazione, procedi nel seguente modo:

      • Endpoint HTTP: specifica l'URI di destinazione. L'host può essere un indirizzo IP statico indirizzabile da una rete Virtual Private Cloud (VPC) o il nome host Domain Name System (DNS) interno di un servizio risolvibile utilizzando Cloud DNS.

        Tieni presente che puoi utilizzare questo tipo di destinazione per scegliere come target una funzione Cloud Run.

      • Bus Eventarc Advanced: seleziona un bus Eventarc Advanced.

      • Workflow Workflows: seleziona un workflow Workflows.

      • Argomento Pub/Sub: seleziona o crea un argomento Pub/Sub.

      • Servizio Cloud Run (tramite HTTP): seleziona un servizio Cloud Run che riceverà gli eventi come richieste HTTP POST inviate al percorso dell'URL radice (/); se vuoi, puoi specificare un percorso dell'URL relativo sul servizio di destinazione a cui devono essere inviati gli eventi.

      • Job Cloud Run (tramite HTTP): seleziona un job Cloud Run che riceverà gli eventi come richieste HTTP POST.

    2. Solo per gli endpoint HTTP (inclusi gli URL Cloud Run), specifica un collegamento di rete.

      Un collegamento di rete è una risorsa che consente a una rete VPC producer di avviare connessioni a una rete VPC consumer. Per pubblicare eventi, Eventarc Advanced utilizza il collegamento di rete per stabilire una connessione all'endpoint ospitato in una rete VPC.

      Puoi creare un collegamento di rete che accetta automaticamente le connessioni da qualsiasi interfaccia Private Service Connect che fa riferimento al collegamento di rete. Crea il collegamento di rete nella stessa rete e regione contenente l'endpoint di destinazione.

      Se indirizzi i messaggi a una destinazione Google utilizzando un indirizzo DNS, ad esempio Cloud Run, assicurati che l'accesso privato Google sia abilitato nella subnet utilizzata nell'allegato di rete. In caso contrario, l'indirizzo DNS non può essere risolto.

    3. Se applicabile, seleziona un formato nell'elenco Formato in uscita.

      Tieni presente che se un formato dei dati in entrata non è specificato per una pipeline, non è possibile impostare un formato in uscita.

    4. Se applicabile, applica un binding del messaggio. Per maggiori informazioni, vedi Definire un binding dei messaggi.

    5. Per attivare l'autenticazione, seleziona la casella di controllo Attiva autenticazione.

      1. Nell'elenco Intestazione di autenticazione, seleziona il tipo di token da generare e allegare come intestazione Authorization nella richiesta HTTP:

        • Un token OAuth deve essere utilizzato in genere solo quando si chiamano le API di Google ospitate su *.googleapis.com. (Facoltativo) Specifica l'ambito di questo token; in caso contrario, il valore predefinito è https://www.googleapis.com/auth/cloud-platform. Per i servizi Google Cloud , è una best practice utilizzare l'ambito https://www.googleapis.com/auth/cloud-platform, che include tutte le API Google Cloud , insieme a Identity and Access Management (IAM), che fornisce controllo dell'accesso granulare.

          Tieni presente che tutte le richieste a un altro bus Eventarc Advanced, Pub/Sub o Workflows devono avere un'intestazione di autorizzazione HTTP contenente un token OAuth firmato da Google per uno dei service account autorizzati.

        • Un token OIDC può essere utilizzato in molti scenari, inclusi gli endpoint in cui intendi convalidare il token autonomamente. Inoltre, specifica il pubblico a cui è destinato questo token. In genere, deve corrispondere all'URL della pipeline di destinazione. Se non specificato, viene utilizzato l'intero URL, inclusi eventuali parametri della richiesta.

          Tieni presente che Cloud Run esegue un controllo IAM su ogni richiesta e puoi utilizzare l'autorizzazione run.routes.invoke per configurare chi può accedere al tuo servizio Cloud Run in uno dei seguenti modi:

          • Concedi l'autorizzazione per selezionare service account o gruppi per consentire l'accesso al servizio. Tutte le richieste devono avere un'intestazione di autorizzazione HTTP contenente un token OpenID Connect firmato da Google per uno degli account di servizio autorizzati.

          • Concedi l'autorizzazione a allUsers per consentire l'accesso non autenticato.

          Per saperne di più, consulta Controllo dell'accesso per Cloud Run.

        Scopri di più sui tipi di token.

      2. Nell'elenco Service account, seleziona il account di servizio che richiamerà il servizio di destinazione. In alternativa, puoi creare un nuovo account di servizio.

        Specifica l'indirizzo email del account di servizio IAM associato alla pipeline e a cui hai precedentemente concesso ruoli specifici richiesti da Eventarc Advanced.

  7. Fai clic su Crea.

gcloud

Quando utilizzi gcloud CLI, crea prima la pipeline, poi crea la registrazione utilizzando i comandi appropriati.

Pipeline

  1. Apri un terminale.

  2. Crea una pipeline utilizzando il comando gcloud beta eventarc pipelines create:

    gcloud beta eventarc pipelines create PIPELINE_NAME \
        --destinations=DESTINATION_KEY \
        --location=LOCATION

    Sostituisci quanto segue:

    • PIPELINE_NAME: l'ID della pipeline o un nome completo
    • DESTINATION_KEY: una o più coppie chiave-valore per configurare una destinazione per la pipeline

      Devi impostare una sola delle seguenti chiavi:

      Solo per http_endpoint_uri (inclusi gli URL Cloud Run), devi impostare la seguente chiave:

      • network_attachment: una risorsa che consente a una rete VPC producer di avviare connessioni a una rete VPC consumer. Per pubblicare eventi, Eventarc Advanced utilizza il collegamento di rete per stabilire una connessione all'endpoint ospitato in una rete VPC.

        Puoi creare un collegamento di rete che accetta automaticamente le connessioni da qualsiasi interfaccia Private Service Connect che fa riferimento al collegamento di rete. Crea l'allegato di rete nella stessa rete e nella stessa regione contenente la risorsa di destinazione.

        Se indirizzi i messaggi a una destinazione Google utilizzando un indirizzo DNS, ad esempio Cloud Run, assicurati che l'accesso privato Google sia abilitato nella subnet utilizzata nell'allegato di rete; in caso contrario, l'indirizzo DNS non può essere risolto.

      Per abilitare l'autenticazione, puoi impostare una delle seguenti chiavi:

      • google_oidc_authentication_service_account: l'email dell'account di servizio utilizzata per generare un token OIDC che può essere utilizzato per molti scenari, inclusi gli endpoint in cui intendi convalidare il token personalmente. Se vuoi, puoi impostare google_oidc_authentication_audience per specificare il pubblico a cui è destinato questo token. In genere, deve corrispondere all'URL della pipeline di destinazione. Se non specificato, viene utilizzato l'intero URL, inclusi eventuali parametri della richiesta.

        Tieni presente che Cloud Run esegue un controllo IAM su ogni richiesta e puoi utilizzare l'autorizzazione run.routes.invoke per configurare chi può accedere al tuo servizio Cloud Run in uno dei seguenti modi:

        • Concedi l'autorizzazione per selezionare service account o gruppi per consentire l'accesso al servizio. Tutte le richieste devono avere un'intestazione di autorizzazione HTTP contenente un token OpenID Connect firmato da Google per uno degli account di servizio autorizzati.

        • Concedi l'autorizzazione a allUsers per consentire l'accesso non autenticato.

        Per saperne di più, consulta Controllo dell'accesso per Cloud Run .

      • oauth_token_authentication_service_account: l'email dell'account di servizio utilizzata per generare un token OAuth, che in genere deve essere utilizzato solo quando si chiamano le API di Google ospitate su *.googleapis.com. Se vuoi, puoi impostare oauth_token_authentication_scope per specificare l'ambito di questo token; in caso contrario, il valore predefinito è https://www.googleapis.com/auth/cloud-platform. Per i servizi Google Cloud , è una best practice utilizzare l'ambito https://www.googleapis.com/auth/cloud-platform, che include tutte le API Google Cloud , insieme a Identity and Access Management (IAM), che fornisce controllo dell'accesso granulare.

        Tieni presente che tutte le richieste a un altro bus Eventarc Advanced, Pub/Sub o Workflows devono avere un'intestazione di autorizzazione HTTP contenente un token OAuth firmato da Google per uno dei service account autorizzati.

        Scopri di più sui tipi di token.

      (Facoltativo) Puoi impostare uno dei seguenti tasti:

      • output_payload_format_avro_schema_definition
      • output_payload_format_json
      • output_payload_format_protobuf_schema_definition

        Tieni presente che se imposti un formato di output, devi specificare anche un formato di input (vedi i seguenti flag input-payload-format-*).

      (Facoltativo) Se http_endpoint_uri non viene utilizzato come chiave di destinazione, puoi impostare le seguenti chiavi:

      • project: l'ID progetto della risorsa di destinazione; per impostazione predefinita, viene utilizzato l'ID progetto della pipeline. Google Cloud
      • location: la posizione della risorsa di destinazione; per impostazione predefinita, viene utilizzata la posizione della pipeline.
    • LOCATION: un'area geografica Eventarc Advanced supportata

      In alternativa, puoi impostare la proprietà di posizione di gcloud CLI:

      gcloud config set eventarc/location LOCATION
      

    (Facoltativo) Puoi utilizzare i seguenti flag:

    • --async per tornare immediatamente dal comando, senza attendere il completamento dell'operazione in corso.
    • --crypto-key per specificare il nome completo di una chiave di crittografia gestita dal cliente; se non specificato,vengono utilizzati Google-owned and managed keys .
    • --logging-config per configurare il livello di logging, che deve essere uno dei seguenti: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
    • --mediations per applicare una trasformazione; transformation_template è l'unico modello supportato e per pipeline è supportata una sola mediazione; ad esempio:

      --mediations=transformation_template='message.removeFields(["id\ ","credit_card_number","age"])'

      Tieni presente che, se applichi una trasformazione, devi utilizzare uno dei seguenti flag per specificare un formato di input.

    • Uno dei seguenti per specificare un formato di input:

      • --input-payload-format-avro-schema-definition
      • --input-payload-format-json
      • --input-payload-format-protobuf-schema-definition
    • --max-retry-attempts, --max-retry-delay e --min-retry-delay a eventi di nuovi tentativi

    Ad esempio:

    gcloud beta eventarc pipelines create my-pipeline \
        --destinations=http_endpoint_uri='https://example-endpoint.com',network_attachment=my-network-attachment,oauth_token_authentication_service_account=example-service-account@example-project.gserviceaccount.iam.com,oauth_token_authentication_scope='https://www.googleapis.com/auth/cloud-platform',output_payload_format_avro_schema_definition='{"type": "record","name": "my_record", "fields": [{"name": "my_field", "type":"string"}]}' \
        --input-payload-format-avro-schema-definition='{"type":"record", "name": "my_record", "fields": [{"name": "my_field","type": "string"}]}' \
        --location=us-central1 \
        --async
    

    Per maggiori dettagli ed esempi, consulta la documentazione di gcloud CLI.

Registrazione

  1. Apri un terminale.

  2. Crea una registrazione utilizzando il comando gcloud beta eventarc enrollments create:

    gcloud beta eventarc enrollments create ENROLLMENT_NAME \
        --cel-match=MATCH_EXPRESSION \
        --destination-pipeline=PIPELINE_NAME \
        --message-bus=BUS_NAME \
        --message-bus-project=PROJECT_ID \
        --location=LOCATION

    Sostituisci quanto segue:

    • ENROLLMENT_NAME: l'ID della registrazione o un nome completo
    • MATCH_EXPRESSION: l'espressione di corrispondenza per questa registrazione utilizzando CEL, ad esempio, "message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'"
    • PIPELINE_NAME: l'ID pipeline di destinazione o il relativo nome completo per questa registrazione
    • BUS_NAME: l'ID del bus Eventarc Advanced o il suo nome completo
    • PROJECT_ID: l' Google Cloud ID progetto per il bus
    • LOCATION: una regione Eventarc Advanced supportata

      In alternativa, puoi impostare la proprietà di posizione di gcloud CLI:

      gcloud config set eventarc/location LOCATION
      

    (Facoltativo) Puoi utilizzare il seguente flag:

    • --async per tornare immediatamente dal comando, senza attendere il completamento dell'operazione in corso

    Ad esempio:

    gcloud beta eventarc enrollments create my-enrollment \
        --cel-match="message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'" \
        --destination-pipeline=my-pipeline \
        --message-bus=my-message-bus \
        --message-bus-project=another-google-cloud-project \
        --location=us-central1 \
        --async
    

API REST

Quando invii richieste all'API Eventarc, crea prima la pipeline e poi la registrazione.

Pipeline

Per creare una pipeline, utilizza il metodo projects.locations.pipelines.create.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • name: il nome completo della risorsa della pipeline nel formato projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto Google Cloud per il progetto della pipeline
    • LOCATION: la regione in cui deve essere eseguito il deployment della pipeline, ad esempio us-central1
    • PIPELINE_NAME: il nome della pipeline
  • LABEL_KEY e LABEL_VALUE: facoltativi. Una mappa di coppie chiave-valore di etichette che ti aiutano a organizzare le tue Google Cloud risorse. Per saperne di più, vedi Che cosa sono le etichette?
  • ANNOTATION_KEY e ANNOTATION_VALUE: facoltativi. Una mappa di coppie chiave-valore di annotazione di testo in formato libero. Puoi utilizzarli per allegare informazioni arbitrarie associate alla risorsa. Per ulteriori informazioni, consulta la sezione Annotazioni.
  • LOG_SEVERITY: facoltativo. La gravità minima dell'evento descritto in una voce di log. Uno tra: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY. Il valore predefinito è NONE. Per ulteriori informazioni, vedi LogSeverity.
  • destinations: la destinazione a cui verranno inoltrati i messaggi. È supportata una sola destinazione: httpEndpoint, messageBus, topic o workflow. Per ulteriori informazioni, consulta l'Destination target. Ad esempio, sostituisci quanto segue:
    • HTTP_URI: un URI di destinazione. L'host può essere un indirizzo IP statico indirizzabile da una rete Virtual Private Cloud (VPC) o il nome host DNS (Domain Name System) interno di un servizio risolvibile utilizzando Cloud DNS. Se vuoi, puoi anche impostare messageBindingTemplate per specificare un binding del messaggio.
    • networkAttachment: applicabile solo a httpEndpoint (inclusi gli URL Cloud Run). Il nome completo della risorsa di un collegamento di rete in questo formato: projects/NETWORK_ATTACHMENT_PROJECT_ID/regions/NETWORK_ATTACHMENT_LOCATION /networkAttachments/NETWORK_ATTACHMENT_NAME. Un collegamento di rete è una risorsa che consente a una rete Virtual Private Cloud producer di avviare connessioni a una rete VPC consumer e deve essere specificato. Per pubblicare eventi, Eventarc Advanced utilizza il collegamento di rete per stabilire una connessione all'endpoint ospitato in una rete VPC.

      Puoi creare un collegamento di rete che accetta automaticamente le connessioni da qualsiasi interfaccia Private Service Connect che fa riferimento al collegamento di rete. Crea il collegamento di rete nella stessa rete e nella stessa regione contenenti la risorsa di destinazione.

      Se indirizzi i messaggi a una destinazione Google utilizzando un indirizzo DNS, ad esempio Cloud Run, assicurati che l'accesso privato Google sia abilitato sulla subnet utilizzata nell'allegato di rete; in caso contrario, l'indirizzo DNS non può essere risolto.

    • SERVICE_ACCOUNT_EMAIL: il nome dell'email dell'account di servizio utilizzato per generare un token OIDC che può essere utilizzato in molti scenari, inclusi gli endpoint in cui intendi convalidare il token stesso. Se vuoi, puoi impostare audience per specificare il pubblico a cui è destinato questo token. In genere, deve corrispondere all'URL della pipeline di destinazione. Se non specificato, viene utilizzato l'intero URL, inclusi eventuali parametri della richiesta.

      In alternativa, puoi utilizzare oauthToken per specificare l'email del account di servizio utilizzata per generare un token OAuth che in genere deve essere utilizzato solo quando si chiamano le API di Google ospitate su *.googleapis.com. Se vuoi, puoi impostare scope per specificare l'ambito di questo token; in caso contrario, il valore predefinito è https://www.googleapis.com/auth/cloud-platform. Per i servizi Google Cloud, è una best practice utilizzare l'ambitohttps://www.googleapis.com/auth/cloud-platform, che include tutte le API Google Cloud , insieme a Identity and Access Management (IAM), che fornisce controllo dell'accesso granulare.

      Tieni presente che tutte le richieste a un altro bus Eventarc Advanced, Pub/Sub o Workflows devono avere un'intestazione di autorizzazione HTTP contenente un token OAuth firmato da Google per uno dei service account autorizzati.

      Scopri di più sui tipi di token.

Corpo JSON della richiesta:

{
  "name": "projects/PROJECT_ID/regions/LOCATION/pipelines/PIPELINE_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"},
  "destinations": [{"httpEndpoint": {"uri": "HTTP_URI"},"networkConfig":
  {"networkAttachment": "projects/NETWORK_ATTACHMENT_PROJECT_ID/regions/NETWORK_ATTACHMENT_LOCATION/networkAttachments/NETWORK_ATTACHMENT_NAME"},
  "authenticationConfig": {"googleOidc": {"serviceAccount": "SERVICE_ACCOUNT_EMAIL"}}}]
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Registrazione

Per creare una registrazione, utilizza il metodo projects.locations.enrollments.create.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • ENROLLMENT_NAME: il nome visualizzato della registrazione, ad esempio my_enrollment.
  • MATCH_EXPRESSION: un'espressione CEL che identifica a quali messaggi si applica questa registrazione. Ad esempio: message.type == 'hello-world-type'.
  • destination: il nome completo della risorsa della pipeline di destinazione nel formato projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME.

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto Google Cloud per il progetto della pipeline
    • LOCATION: la regione in cui viene eseguito il deployment della pipeline, ad esempio us-central1.
    • PIPELINE_NAME: il nome della pipeline
  • message_bus: il nome completo della risorsa del bus che identifica l'origine dei messaggi nel formato projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME.

    Sostituisci quanto segue:

    • BUS_PROJECT_ID: l'ID progetto Google Cloud per il progetto bus
    • BUS_LOCATION: la regione in cui viene eseguito il deployment del bus, ad esempio us-central1
    • BUS_NAME: il nome del bus di messaggi

Corpo JSON della richiesta:

{
  "display_name": "ENROLLMENT_NAME",
  "cel_match": "MATCH_EXPRESSION",
  "message_bus": "projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME",
  "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/enrollments/ENROLLMENT_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Elenco registrazioni

Puoi elencare le registrazioni nei seguenti modi:

  • Nella console Google Cloud
  • Utilizzando gcloud CLI nel terminale o in Cloud Shell
  • Inviando una richiesta all'API Eventarc

Console

  1. Per elencare le registrazioni per una pipeline specifica, nella console Google Cloud , vai alla pagina Eventarc > Pipeline.

    Vai a Pipeline

  2. Fai clic sul nome della pipeline per cui vuoi elencare le registrazioni.

    Viene visualizzata la pagina Dettagli pipeline.

    Nella scheda Registrazioni sono elencate tutte le registrazioni associate alla pipeline.

gcloud

  1. Apri un terminale.

  2. Elenca le registrazioni utilizzando il comando gcloud beta eventarc enrollments list:

    gcloud beta eventarc enrollments list \
        --location=LOCATION

    Sostituisci LOCATION con una regione Eventarc Advanced supportata.

API REST

Per elencare le registrazioni, utilizza il metodo projects.locations.enrollments.list.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui vengono create le registrazioni, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene istanze di Enrollment e la risposta dovrebbe essere simile alla seguente:

{
  "enrollments": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/enrollments/ENROLLMENT_NAME",
      "uid": "06e396f5-2d4f-43d2-961f-fd2c88403326",
      "createTime": "2025-03-26T17:57:25.214845320Z",
      "updateTime": "2025-03-26T17:57:45.136172180Z",
      "celMatch": "message.type == \"hello-world-type\"",
      "messageBus": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
      "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
    },
    {...}
  ]
}

Eliminare una registrazione

Puoi eliminare una registrazione nei seguenti modi:

  • Nella console Google Cloud
  • Utilizzando gcloud CLI nel terminale o in Cloud Shell
  • Inviando una richiesta all'API Eventarc

Console

  1. Per eliminare una registrazione, nella console Google Cloud , vai alla pagina Eventarc > Pipeline.

    Vai a Pipeline

  2. Fai clic sul nome della pipeline da cui vuoi eliminare la registrazione.

    Si apre il riquadro Dettagli pipeline.

  3. Fai clic su Modifica.

  4. Fai clic su Continua.

    Si apre il riquadro Registrazioni.

  5. Per la registrazione che vuoi eliminare, fai clic sull'icona Elimina.

  6. Fai clic su Salva.

gcloud

  1. Apri un terminale.

  2. Elimina una registrazione utilizzando il comando gcloud beta eventarc enrollments delete:

    gcloud beta eventarc enrollments delete ENROLLMENT_NAME \
          --location=LOCATION

    Sostituisci quanto segue:

API REST

Per eliminare una registrazione, utilizza il metodo projects.locations.enrollments.delete.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • ENROLLMENT_NAME: il nome visualizzato della registrazione che vuoi eliminare, ad esempio my_enrollment.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui viene eseguito il deployment della registrazione, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/enrollments/ENROLLMENT_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Elenca pipeline

Puoi elencare le pipeline nei seguenti modi:

  • Nella console Google Cloud
  • Utilizzando gcloud CLI nel terminale o in Cloud Shell
  • Inviando una richiesta all'API Eventarc

Console

Nella Google Cloud console, vai alla pagina Eventarc > Pipeline.

Vai a Pipeline

Vengono elencate tutte le pipeline. Se vuoi, puoi utilizzare il Filtro per limitare una ricerca.

gcloud

  1. Apri un terminale.

  2. Elenca le registrazioni utilizzando il comando gcloud beta eventarc pipelines list:

    gcloud beta eventarc pipelines list \
        --location=LOCATION

    Sostituisci LOCATION con una regione Eventarc Advanced supportata.

API REST

Per elencare le pipeline, utilizza il metodo projects.locations.pipelines.list.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui vengono create le pipeline, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene istanze di Pipeline e la risposta dovrebbe essere simile alla seguente:

{
  "pipelines": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME",
      "createTime": "2025-01-10T20:32:11.606516066Z",
      "updateTime": "2025-03-26T18:02:34.886616683Z",
      "uid": "7d58dd18-323a-43f6-a456-4f8c20a70218",
      "destinations": [
        {
          "networkConfig": {
            "networkAttachment": "projects/PROJECT_ID/regions/LOCATION/networkAttachments/NETWORK_ATTACHMENT_NAME"
          },
          "httpEndpoint": {
            "uri": "HTTP_URI"
          },
          "authenticationConfig": {
            "googleOidc": {
              "serviceAccount": "SERVICE_ACCOUNT_EMAIL"
            }
          }
        }
      ],
      "loggingConfig": {
        "logSeverity": "NONE"
      },
      "retryPolicy": {
        "maxAttempts": 5,
        "minRetryDelay": "1s",
        "maxRetryDelay": "60s"
      }
    },
    {...}
  ]
}

Elimina una pipeline

Puoi eliminare una pipeline nei seguenti modi:

  • Nella console Google Cloud
  • Utilizzando gcloud CLI nel terminale o in Cloud Shell
  • Inviando una richiesta all'API Eventarc

Tieni presente che l'eliminazione di una pipeline potrebbe richiedere più di 10 minuti.

Console

  1. Per eliminare una pipeline, nella console Google Cloud , vai alla pagina Eventarc > Pipeline.

    Vai a Pipeline

  2. Nell'elenco delle pipeline, seleziona la casella di controllo accanto al nome della pipeline che vuoi eliminare.

  3. Fai clic su Elimina.

  4. Conferma l'eliminazione inserendo Delete.

  5. Fai clic su Elimina.

gcloud

  1. Apri un terminale.

  2. Elimina una pipeline utilizzando il comando gcloud beta eventarc pipelines delete:

    gcloud beta eventarc pipelines delete PIPELINE_NAME \
          --location=LOCATION

    Sostituisci quanto segue:

API REST

Per eliminare una pipeline, utilizza il metodo projects.locations.pipelines.delete.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PIPELINE_NAME: il nome visualizzato della pipeline che vuoi eliminare, ad esempio my_pipeline.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui viene eseguito il deployment della pipeline, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Passaggi successivi