Criar um plug-in

Esta página descreve como criar plug-ins de extensões de serviço que você pode usar para implementar a capacidade de extensão com Google Cloud serviços.

Esse recurso está em pré-lançamento para o Media CDN.

Para uma visão geral do produto, consulte Visão geral das Service Extensions.

Antes de começar

  1. Prepare e faça upload dos arquivos necessários para criar um plug-in.

  2. Receba os papéis e as permissões necessários do Identity and Access Management (IAM).

  3. Ative a API Network Services, se ela ainda não estiver ativada.

    gcloud services enable networkservices.googleapis.com
    
  4. Para plug-ins do Media CDN, se você pretende ativar a geração de registros, ative a API Network Actions.

    gcloud services enable networkactions.googleapis.com
    

Criar um recurso de plug-in

A criação de um recurso de plug-in envolve especificar uma imagem que contém o código do plug-in e especificar rótulos e opções de geração de registros para o plug-in.

Console

Para criar um plug-in, siga estas etapas:

  1. No Google Cloud console do, acesse a página Extensões de serviço.

    Acessar a página de Service Extensions

  2. Clique na guia Plug-ins.

  3. Clique em Criar plug-in.

  4. Na seção Noções básicas, faça o seguinte:

    1. Em Escopo, selecione Global ou Regional.

      Se você definir o escopo como Regional, selecione também a região.

    2. Insira um nome exclusivo para o plug-in.

      O nome precisa começar com uma letra minúscula seguida por até 62 letras minúsculas, números ou hifens e não pode terminar com um hífen.

    3. Opcional: insira uma breve descrição sobre o plug-in usando até 1.024 caracteres.

  5. Na seção Imagem do Wasm, faça o seguinte:

    1. Em Nome da versão do plug-in, especifique um nome para a versão do plug-in.

      O nome precisa começar com uma letra minúscula seguida por até 62 letras minúsculas, números ou hifens e não pode terminar com um hífen.

    2. Opcional: em Descrição da versão do plug-in, insira uma breve descrição sobre a versão do plug-in usando até 1.024 caracteres.

    3. Em URL da imagem, insira o URL do artefato genérico ou da imagem de contêiner que tem o módulo Wasm no painel do Artifact Registry. A opção de usar um repositório genérico está em pré-lançamento.

      Se você quiser especificar uma imagem de contêiner em um repositório do Docker, clique em Selecionar para navegar e selecioná-la. O painel do Artifact Registry mostra as pastas no repositório conectado ao projeto atual.

      Para selecionar uma imagem de outro projeto, verifique se o Service Extensions tem acesso a ela, e clique em Alterar ao lado do nome do projeto.

  6. Opcional: na seção Configuração do plug-in , para associar os dados de configuração ao plug-in, marque a caixa de seleção Adicionar configuração do plug-in e selecione uma das seguintes opções:

    • Fazer upload do arquivo de configuração do plug-in. Se o tamanho do arquivo for menor que 900 KiB e estiver em uma unidade local, clique em Navegar para localizá-lo e selecioná-lo.

    • Selecionar imagem ou artefato de configuração do plug-in no Artifact Registry. Insira o URL do artefato genérico ou da imagem de contêiner que tem o módulo Wasm no painel do Artifact Registry. A opção de usar um repositório genérico está em pré-lançamento.

      Para especificar uma imagem de contêiner em um repositório do Docker, clique em Selecionar para navegar e selecioná-la. O painel do Artifact Registry mostra as pastas no repositório conectado ao projeto atual.

  7. Opcional: na seção Rótulos, clique em Adicionar rótulo. Em seguida, na linha que aparece, faça o seguinte:

    1. Em Chave, insira um nome de chave.
    2. Em Valor, insira um valor para a chave.

    É possível adicionar no máximo 64 pares de chave-valor. Para adicionar mais pares de chave-valor, clique em Adicionar rótulo.

    Para mais informações sobre rótulos, consulte Criar e atualizar rótulos para projetos.

  8. Na seção Criptografia, escolha o mecanismo de criptografia do plug-in. Essa opção está disponível apenas para plug-ins regionais.

  9. Opcional: na seção Geração de registros, selecione Ativar geração de registros e faça o seguinte:

    • Em Taxa de amostragem, especifique um valor entre 0 e 1. O valor 0 indica que as mensagens de registro não são armazenadas. O valor padrão 1 indica que todas as mensagens de registro são armazenadas. Um pontuação flutuante entre 0.0 e 1.0 indica que uma porcentagem das mensagens de registro é armazenada.

    • Em Nível mínimo de registro, selecione o nível mínimo de gravidade das mensagens de registro do plug-in a serem exportadas para o Cloud Logging. O valor padrão é Info and higher.

  10. Clique em Criar.

gcloud

  1. Crie um plug-in executando o gcloud service-extensions wasm-plugins create comando:

    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 \
        --kms-key-name=KEY_NAME
    

    Substitua:

    • WASM_PLUGIN: o ID ou o nome totalmente qualificado do plug-in
    • PLUGIN_DESCRIPTION: uma descrição do plug-in
    • LOCATION: o local do plug-in como global ou uma região
    • LABELS: rótulos no formato de pares de chave-valor separados por vírgulas
    • LOG_CONFIG: opções de geração de registros para o plug-in. Quando a opção enable está definida como false, os registros não são capturados para o plug-in. Para ativar a geração de registros, defina a opção enable como true. Em seguida, especifique os seguintes detalhes:

      • sample-rate: a taxa de amostragem dos registros de atividades como um valor entre 0 e 1. O valor 0 indica que as mensagens de registro não são armazenadas. O valor padrão 1 indica que todas as mensagens de registro são armazenadas. Um pontuação flutuante entre 0.0 e 1.0 indica que uma porcentagem das mensagens de registro é armazenada.

      • min-log-level: o nível mínimo de gravidade das mensagens de registro do plug-in a serem exportadas para o Cloud Logging. O valor padrão é INFO.

    • IMAGE: o URI do artefato que contém o módulo Wasm armazenado no repositório do Artifact Registry. Antes de especificar uma imagem do contêiner de outro projeto, verifique se o Service Extensions tem acesso a ela.

    • MAIN_VERSION: o ID da versão do plug-in a ser criada e definida como a versão principal (ativa).

    • PLUGIN_CONFIG, PLUGIN_CONFIG_FILE, ou PLUGIN_CONFIG_URI: os dados de configuração opcionais, que podem ser especificados como texto, um arquivo local ou uma imagem de contêiner no Artifact Registry, respectivamente.

    • KEY_NAME: para plug-ins regionais, o nome totalmente qualificado da chave de criptografia gerenciada pelo cliente no seguinte formato: projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

      Substitua:

      • PROJECT: o ID do projeto que contém a chave
      • LOCATION: a localização da chave
      • KEYRING_NAME: é o nome do keyring
      • KEY_NAME: o nome da chave

      Se essa opção não for especificada, o mecanismo de criptografia padrão do Google será usado.

    Exemplo:

    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
    

    Para implantar uma nova versão, use o gcloud service-extensions wasm-plugins update comando. Especifique um novo nome de imagem e versão:

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

Para executar esses plug-ins, é possível configurar extensões do Cloud Load Balancing e extensões do Media CDN.

Acessar imagens em outro projeto

Antes de selecionar imagens de outro projeto, o agente de serviço do Service Extensions precisa ter acesso ao repositório do projeto e, dependendo de como o módulo Wasm é empacotado, uma das seguintes permissões no projeto:

  • Para artefatos genéricos: artifactregistry.files.download
  • Para imagens de contêiner: artifactregistry.repositories.downloadArtifacts

O agente de serviço do Service Extensions é nomeado da seguinte maneira:

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

Substitua PROJECT_NUMBER pelo número do projeto.

A seguir