Crea un plug-in

Questa pagina descrive come creare plug-in Service Extensions che puoi utilizzare per implementare l'estensibilità con i servizi Google Cloud .

Questa funzionalità è in anteprima per Media CDN.

Per una panoramica del prodotto, consulta la panoramica di Service Extensions.

Prima di iniziare

  1. Prepara e carica i file necessari per creare un plug-in.

  2. Ottieni i ruoli e le autorizzazioni Identity and Access Management (IAM) richiesti.

  3. Abilita l'API Network Services, se non è già abilitata.

    gcloud services enable networkservices.googleapis.com
    
  4. Per i plug-in Media CDN, se intendi abilitare la registrazione, abilita l'API Network Actions.

    gcloud services enable networkactions.googleapis.com
    

Crea una risorsa plug-in

La creazione di una risorsa plug-in implica la specifica di un'immagine che contiene il codice plug-in e la specifica di etichette e opzioni di logging per il plug-in.

Console

Per creare un plug-in:

  1. Nella console Google Cloud , vai alla pagina Estensioni di servizio.

    Vai a Service Extensions

  2. Fai clic sulla scheda Plug-in.

  3. Fai clic su Crea plug-in.

  4. Nella sezione Nozioni di base, segui questi passaggi:

    1. Per Ambito, seleziona Globale o A livello di regione.

      Se imposti l'ambito su Regionale, seleziona anche la regione.

    2. Inserisci un nome univoco per il plug-in.

      Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non deve terminare con un trattino.

    3. (Facoltativo) Inserisci una breve descrizione del plug-in utilizzando fino a 1024 caratteri.

  5. Nella sezione Immagine Wasm, segui questi passaggi:

    1. In Nome versione plug-in, specifica un nome per la versione del plug-in.

      Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non deve terminare con un trattino.

    2. (Facoltativo) In Descrizione versione del plug-in, inserisci una breve descrizione della versione del plug-in utilizzando fino a 1024 caratteri.

    3. Per URL immagine, inserisci l'URL dell'artefatto generico o dell'immagine container che contiene il modulo Wasm dal riquadro Artifact Registry. L'opzione per utilizzare un repository generico è in anteprima.

      Se vuoi specificare un'immagine container in un repository Docker, puoi in alternativa fare clic su Seleziona per sfogliarla e selezionarla. Il riquadro Artifact Registry mostra le cartelle nel repository collegato al progetto corrente.

      Per selezionare un'immagine da un altro progetto, assicurati che Service Extensions abbia accesso, quindi fai clic su Cambia accanto al nome del progetto.

  6. (Facoltativo) Nella sezione Configurazione plug-in, per associare i dati di configurazione al plug-in, seleziona la casella di controllo Aggiungi configurazione plug-in e poi seleziona una delle seguenti opzioni:

    • Carica file di configurazione plug-in. Se la dimensione del file è inferiore a 900 KiB e si trova in un'unità locale, fai clic su Sfoglia per individuarlo e selezionarlo.

    • Seleziona l'artefatto o l'immagine di configurazione del plug-in da Artifact Registry. Inserisci l'URL dell'immagine generica dell'artefatto o del container che contiene il modulo Wasm dal riquadro Artifact Registry. L'opzione per utilizzare un repository generico è in anteprima.

      Per specificare un'immagine container in un repository Docker, puoi in alternativa, fare clic su Seleziona per sfogliarla e selezionarla. Il riquadro Artifact Registry mostra le cartelle nel repository collegato al progetto corrente.

  7. (Facoltativo) Nella sezione Etichette, fai clic su Aggiungi etichetta. Quindi, nella riga visualizzata, procedi nel seguente modo:

    1. In Chiave, inserisci un nome per la chiave.
    2. In Valore, inserisci un valore per la chiave.

    Puoi aggiungere un massimo di 64 coppie chiave-valore. Per aggiungere altre coppie chiave-valore, fai clic su Aggiungi etichetta.

    Per saperne di più sulle etichette, consulta Creare e aggiornare le etichette per i progetti.

  8. (Facoltativo) Nella sezione Logging, seleziona Abilita il logging e segui questi passaggi:

    • Per Frequenza di campionamento, specifica un valore compreso tra 0 e 1. Il valore 0 indica che i messaggi di log non vengono archiviati. Il valore predefinito 1 indica che vengono archiviati tutti i messaggi di log. Un valore con virgola mobile compreso tra 0.0 e 1.0 indica che viene memorizzata una percentuale dei messaggi di log.

    • Per Livello di log minimo, seleziona il livello di gravità minimo dei messaggi di log dei plug-in da esportare in Cloud Logging. Il valore predefinito è Info and higher.

  9. Fai clic su Crea.

gcloud

  1. Crea un plug-in eseguendo il comando gcloud service-extensions wasm-plugins create:

    gcloud service-extensions wasm-plugins create WASM_PLUGIN \
        --description=PLUGIN_DESCRIPTION \
        --location=LOCATION \
        --labels=[LABELS,...] \
        --log-config=[LOG_CONFIG,...] \
        --image=IMAGE \
        --main-version=MAIN_VERSION \
        --plugin-config=PLUGIN_CONFIG | --plugin-config-file=PLUGIN_CONFIG_FILE | --plugin-config-uri=PLUGIN_CONFIG_URI
    

    Sostituisci quanto segue:

    • WASM_PLUGIN: l'ID o il nome completo del plug-in
    • PLUGIN_DESCRIPTION: una descrizione del plug-in
    • LOCATION: la posizione del plug-in come global o una regione
    • LABELS: etichette sotto forma di coppie chiave-valore separate da virgole
    • LOG_CONFIG: opzioni di logging per il plug-in. Quando l'opzione enable è impostata su false, i log non vengono acquisiti per il plug-in. Per attivare la registrazione, imposta l'opzione enable su true. Quindi, specifica i seguenti dettagli:

      • sample-rate: la frequenza di campionamento dei log attività come valore compreso tra 0 e 1. Il valore 0 indica che i messaggi di log non vengono archiviati. Il valore predefinito 1 indica che vengono archiviati tutti i messaggi di log. Un valore in virgola mobile compreso tra 0.0 e 1.0 indica che viene memorizzata una percentuale di messaggi di log.

      • min-log-level: il livello di gravità minimo dei messaggi di log del plug-in da esportare in Cloud Logging. Il valore predefinito è INFO.

    • IMAGE: l'URI dell'artefatto che contiene il modulo Wasm archiviato nel repository Artifact Registry. Prima di specificare un'immagine container di un altro progetto, assicurati che Service Extensions abbia accesso.

    • MAIN_VERSION: l'ID della versione del plug-in da creare e impostare come versione principale (attiva)

    • PLUGIN_CONFIG, PLUGIN_CONFIG_FILE o PLUGIN_CONFIG_URI: i dati di configurazione facoltativi, che possono essere specificati rispettivamente come testo, file locale o immagine container in Artifact Registry

    Ad esempio:

    gcloud service-extensions wasm-plugins create my-plugin \
        --description="This is my plugin." \
        --log-config=enable=true,sample-rate=0.5,min-log-level=INFO \
        --labels=key1=value1,key2=value2 \
        --image=...-docker.pkg.dev/my-project/repository/container:tag \
        --main-version=v1 \
        --plugin-config-file=config.txt
    

    Per eseguire il deployment di una nuova versione, utilizza il comando gcloud service-extensions wasm-plugins update. Specifica un nuovo nome per l'immagine e la versione:

    gcloud service-extensions wasm-plugins update my-plugin \
        --image=...-docker.pkg.dev/my-project/repository/container:tag \
        --main-version=v2
    

Per eseguire questi plug-in, puoi configurare le estensioni Cloud Load Balancing e le estensioni Media CDN.

Accedere alle immagini in un altro progetto

Prima di poter selezionare le immagini di un altro progetto, l'agente di servizio Service Extensions deve avere accesso al repository del progetto e, a seconda di come viene pacchettizzato il modulo Wasm, una delle seguenti autorizzazioni per il progetto:

  • Per gli artefatti generici: artifactregistry.files.download
  • Per le immagini container: artifactregistry.repositories.downloadArtifacts

Il service agent del servizio Service Extensions ha il seguente nome:

service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com

Sostituisci PROJECT_NUMBER con il tuo numero di progetto.

Passaggi successivi