Eliminare uno schema per un argomento

Puoi eliminare gli schemi con la Google Cloud console, Google Cloud CLI, la libreria client o l'API Pub/Sub.

Prima di iniziare

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per eliminare e gestire gli schemi, 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 eliminare e gestire gli schemi. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eliminare e gestire gli schemi sono necessarie le seguenti autorizzazioni:

  • Crea schema: pubsub.schemas.create
  • Allega 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 il policy IAM per uno schema: pubsub.schemas.getIamPolicy
  • Configura il 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 allegarlo a un argomento che si trova in un altro progetto. Assicurati di disporre delle autorizzazioni necessarie per ogni progetto.

Elimina uno schema

Di seguito è riportato un elenco di informazioni importanti sull'eliminazione degli schemi:

  • Se uno schema viene eliminato, tutti i tentativi di pubblicare messaggi negli argomenti associati a questo schema non vanno a buon fine.

  • L'operazione di eliminazione di uno schema elimina anche tutte le revisioni associate allo schema.

  • Puoi creare uno schema con lo stesso nome di quello appena eliminato. Tuttavia, lo schema appena creato è completamente indipendente da quello eliminato in precedenza.

  • Prima di eliminare uno schema, assicurati di rimuovere la sua associazione da un argomento.

Console

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

    Vai a Schemi

  2. Seleziona uno o più schemi da eliminare.

  3. Fai clic su Elimina.

  4. Conferma l'operazione di eliminazione.

gcloud

gcloud pubsub schemas delete SCHEMA_NAME

REST

Per eliminare uno schema, invia una richiesta DELETE come la seguente:

DELETE https://pubsub.googleapis.com/v1/SCHEMA_NAME

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) {
  google::pubsub::v1::DeleteSchemaRequest request;
  request.set_name(pubsub::Schema(project_id, schema_id).FullName());
  auto status = client.DeleteSchema(request);
  // Note that kNotFound is a possible result when the library retries.
  if (status.code() == google::cloud::StatusCode::kNotFound) {
    std::cout << "The schema was not found\n";
    return;
  }
  if (!status.ok()) throw std::runtime_error(status.message());

  std::cout << "Schema successfully deleted\n";
}

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# .


using Google.Cloud.PubSub.V1;

public class DeleteSchemaSample
{
    public void DeleteSchema(string projectId, string schemaId)
    {
        SchemaServiceClient schemaService = SchemaServiceClient.Create();
        SchemaName schemaName = SchemaName.FromProjectSchema(projectId, schemaId);
        schemaService.