Criar um plug-in

Nesta página, descrevemos como criar plug-ins do Service Extensions que você pode usar para implementar a extensibilidade com serviços Google Cloud .

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

Para uma visão geral do produto, consulte Visão geral das extensões de serviço.

Antes de começar

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

  2. Receba as permissões e os papéis 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 da 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 contenha o código do plug-in e especificar rótulos e opções de geração de registros para ele.

Console

Para criar um plug-in, siga estas etapas:

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

    Acessar Extensões de serviço

  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 hífens 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 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 hífens 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 do 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 procurar e selecionar. O painel do Artifact Registry mostra as pastas no repositório conectado ao projeto atual.

      Para selecionar uma imagem de outro projeto, verifique se as extensões de serviço têm acesso a ela e clique em Mudar 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 destas 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 um drive local, clique em Procurar para localizar e selecionar.

    • Selecione a imagem ou o artefato de configuração do plug-in no Artifact Registry. Insira o URL do artefato genérico ou da imagem do 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 procurar e selecionar. 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 até 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. 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 de mensagens de registro é armazenada.

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

  9. Clique em Criar.

gcloud

  1. Crie um plug-in executando o 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
    

    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 na forma 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 é 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 atividade 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 de 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 de contêiner de outro projeto, verifique se as extensões de serviço têm 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.

    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 comando gcloud service-extensions wasm-plugins update. 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, configure as extensões do Cloud Load Balancing e as extensões do Media CDN.

Acessar imagens em outro projeto

Antes de selecionar imagens de outro projeto, o agente de serviço das extensões de serviço 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 das extensões de serviço tem o seguinte nome:

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

Substitua PROJECT_NUMBER pelo número do projeto.

A seguir