Eseguire il rollback di una revisione dello schema

Questo documento mostra come eseguire il rollback di uno schema per un argomento Pub/Sub.

L'operazione di rollback consente di creare un'altra revisione dello schema con la stessa definizione dello schema della revisione precedente specificata.

Prima di iniziare

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per eseguire il rollback degli schemi e gestirli, chiedi all'amministratore di concederti il ruolo IAM Pub/Sub Editor (roles/pubsub.editor) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per eseguire il rollback degli schemi e gestirli. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eseguire il rollback degli schemi e gestirli sono necessarie le seguenti autorizzazioni:

  • Crea schema: pubsub.schemas.create
  • Collega schema all'argomento: pubsub.schemas.attach
  • Esegui il commit di una revisione dello schema: pubsub.schemas.commit
  • Elimina uno schema o una revisione dello schema: pubsub.schemas.delete
  • Ottieni uno schema o le revisioni dello schema: pubsub.schemas.get
  • Elenca schemi: pubsub.schemas.list
  • Elenca revisioni dello schema: pubsub.schemas.listRevisions
  • Esegui il rollback di uno schema: pubsub.schemas.rollback
  • Convalida un messaggio: pubsub.schemas.validate
  • Ottieni la policy IAM per uno schema: pubsub.schemas.getIamPolicy
  • Configura la policy IAM per uno schema: pubsub.schemas.setIamPolicy

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Puoi concedere ruoli e autorizzazioni a entità come utenti, gruppi, domini o service account. Puoi creare uno schema in un progetto e collegarlo a un argomento che si trova in un altro progetto. Assicurati di disporre delle autorizzazioni necessarie per ogni progetto.

Esegui il rollback di una revisione dello schema

Puoi eseguire il rollback di uno schema utilizzando la Google Cloud console, gcloud CLI, l'API Pub/Sub, o le librerie client di Cloud. Segui questi passaggi:

Console

  1. Nellaconsole, vai alla pagina Schemi Pub/Sub. Google Cloud

    Vai a Schemi

  2. Fai clic sul nome di uno schema esistente.

    Viene visualizzata la pagina Dettagli schema per lo schema.

  3. Fai clic su Esegui il rollback.

    Viene visualizzata la finestra di dialogo Esegui il rollback dello schema.

  4. Seleziona la revisione a cui vuoi eseguire il rollback dello schema.

  5. Fai clic su Conferma per salvare l'operazione di rollback.

    Viene creata una nuova revisione con lo schema specificato nell'operazione di rollback.

  6. Nella pagina Dettagli schema, seleziona l'ultima versione dello schema e la versione selezionata come origine per l'operazione di rollback.

  7. Fai clic su Visualizza differenze.

    Puoi verificare che i due schemi siano identici.

    Puoi utilizzare la revisione dello schema appena creata come ultima revisione per la convalida di un argomento aggiornando il campo Ultima revisione consentita.

gcloud

gcloud pubsub schemas rollback SCHEMA_ID \
        --revision-id=REVISION_ID

Dove:

  • REVISION_ID è la revisione a cui vuoi eseguire il rollback.

REST

Per eseguire il rollback di uno schema, invia una richiesta POST come la seguente:

POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID:rollback
Authorization: Bearer $(gcloud auth application-default print-access-token)
Content-Type: application/json --data @response-body.json

Specifica i seguenti campi nel corpo della richiesta:

{
  "revisionId": REVISION_KD
}

Dove:

  • REVISION_ID è l'ID della revisione a cui eseguire il rollback.

Il corpo della risposta deve contenere una rappresentazione JSON di una risorsa schema.

C++

Prima di provare questo esempio, segui le istruzioni di configurazione di C++ in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub C++ .

namespace pubsub = ::google::cloud::pubsub;
[](pubsub::SchemaServiceClient client, std::string const& project_id,
   std::string const& schema_id, std::string const& revision_id) {
  google::pubsub::v1::RollbackSchemaRequest request;
  request.set_name(pubsub::Schema(project_id, schema_id).FullName());
  request.set_revision_id(revision_id);
  auto schema = client.RollbackSchema(request);
  if (!schema) throw std::move(schema).status();

  std::cout << "Rolledback schema. Created a new schema and its metadata is:"
            << "\n"
            << schema->DebugString() << "\n";
}

Vai

L'esempio seguente utilizza la versione principale della libreria client Go Pub/Sub (v2). Se utilizzi ancora la libreria v1, consulta la guida alla migrazione alla v2. Per visualizzare un elenco di esempi di codice della versione 1, consulta gli esempi di codice deprecati.

Prima di provare questo esempio, segui le istruzioni di configurazione di Go in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.

import (
	"context"
	"fmt"
	"io"