Crea un complemento

En esta página, se describe cómo crear complementos de Service Extensions que puedes usar para implementar la extensibilidad con los servicios de Google Cloud .

Esta función se encuentra en versión preliminar para Media CDN.

Para obtener una descripción general del producto, consulta Descripción general de las extensiones de servicio.

Antes de comenzar

  1. Prepara y sube los archivos necesarios para crear un complemento.

  2. Obtén los roles y permisos de Identity and Access Management (IAM) necesarios.

  3. Habilita la API de Network Services si aún no está habilitada.

    gcloud services enable networkservices.googleapis.com
    
  4. Para los complementos de Media CDN, si quieres habilitar el registro, habilita la API de Network Actions.

    gcloud services enable networkactions.googleapis.com
    

Crea un recurso de complemento

La creación de un recurso de complemento implica especificar una imagen que contenga el código del complemento y especificar las etiquetas y las opciones de registro para el complemento.

Console

Para crear un complemento, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Extensiones de servicio.

    Ir a Extensiones del servicio

  2. Haz clic en la pestaña Plugins.

  3. Haz clic en Crear complemento.

  4. En la sección Conceptos básicos, haz lo siguiente:

    1. En Alcance, selecciona Global o Regional.

      Si estableces el permiso como Regional, selecciona también la región.

    2. Ingresa un nombre único para el complemento.

      El nombre debe comenzar con una letra minúscula seguida por un máximo de 62 letras minúsculas, números o guiones, y no puede terminar con un guion.

    3. Opcional: Ingresa una descripción breve sobre el complemento con un máximo de 1,024 caracteres.

  5. En la sección Imagen de Wasm, haz lo siguiente:

    1. En Nombre de la versión del complemento, especifica un nombre para la versión del complemento.

      El nombre debe comenzar con una letra minúscula seguida por un máximo de 62 letras minúsculas, números o guiones, y no puede terminar con un guion.

    2. Opcional: En Descripción de la versión del complemento, ingresa una breve descripción sobre la versión del complemento con un máximo de 1,024 caracteres.

    3. En URL de la imagen, ingresa la URL del artefacto genérico o la imagen de contenedor que tiene el módulo de Wasm del panel de Artifact Registry. La opción para usar un repositorio genérico está en versión preliminar.

      Si deseas especificar una imagen de contenedor en un repositorio de Docker, también puedes hacer clic en Seleccionar para buscarla y seleccionarla. En el panel de Artifact Registry, se muestran las carpetas del repositorio que está conectado al proyecto actual.

      Para seleccionar una imagen de otro proyecto, asegúrate de que las extensiones de servicio tengan acceso a ella y, luego, haz clic en Cambiar, junto al nombre del proyecto.

  6. Opcional: En la sección Configuración del complemento, para asociar los datos de configuración con el complemento, selecciona la casilla de verificación Agregar configuración del complemento y, luego, elige una de las siguientes opciones:

    • Sube el archivo de configuración del complemento. Si el tamaño del archivo es inferior a 900 KiB y se encuentra en una unidad local, haz clic en Explorar para buscarlo y seleccionarlo.

    • Selecciona la imagen o el artefacto de configuración del complemento desde Artifact Registry. Ingresa la URL del artefacto genérico o la imagen de contenedor que tiene el módulo de Wasm desde el panel de Artifact Registry. La opción para usar un repositorio genérico está en versión preliminar.

      Para especificar una imagen de contenedor en un repositorio de Docker, también puedes hacer clic en Seleccionar para buscarla y seleccionarla. En el panel de Artifact Registry, se muestran las carpetas del repositorio que está conectado al proyecto actual.

  7. Opcional: En la sección Etiquetas, haz clic en Agregar etiqueta. Luego, en la fila que aparece, haz lo siguiente:

    1. En Clave, ingresa un nombre de clave.
    2. En Valor, ingresa un valor para la clave.

    Puedes agregar un máximo de 64 pares clave-valor. Para agregar más pares clave-valor, haz clic en Agregar etiqueta.

    Para obtener más información sobre las etiquetas, consulta Crea y actualiza etiquetas para proyectos.

  8. En la sección Encriptación, elige el mecanismo de encriptación para el complemento. Esta opción solo está disponible para los complementos regionales.

  9. Opcional: En la sección Registro, selecciona Habilitar registro y haz lo siguiente:

    • En Tasa de muestreo, especifica un valor entre 0 y 1. El valor 0 indica que no se almacenan los mensajes de registro. El valor predeterminado 1 indica que se almacenan todos los mensajes de registro. Un valor de punto flotante entre 0.0 y 1.0 indica que se almacena un porcentaje de los mensajes de registro.

    • En Nivel de registro mínimo, selecciona el nivel de gravedad mínimo de los mensajes de registro del complemento que se exportarán a Cloud Logging. El valor predeterminado es Info and higher.

  10. Haz clic en Crear.

gcloud

  1. Ejecuta el comando gcloud service-extensions wasm-plugins create para crear un complemento:

    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
    

    Reemplaza lo siguiente:

    • WASM_PLUGIN: el ID o el nombre completamente calificado del complemento
    • PLUGIN_DESCRIPTION: una descripción del complemento
    • LOCATION: Es la ubicación del complemento, ya sea global o una región.
    • LABELS: Son etiquetas en forma de pares clave-valor separados por comas.
    • LOG_CONFIG: Son las opciones de registro para el complemento. Cuando la opción enable se establece en false, no se capturan los registros del complemento. Para habilitar el registro, configura la opción enable como true. Luego, especifica los siguientes detalles:

      • sample-rate: Es la tasa de muestreo de los registros de actividad como un valor entre 0 y 1. El valor 0 indica que no se almacenan los mensajes de registro. El valor predeterminado 1 indica que se almacenan todos los mensajes de registro. Un valor de punto flotante entre 0.0 y 1.0 indica que se almacena un porcentaje de mensajes de registro.

      • min-log-level: Es el nivel de gravedad mínimo de los mensajes de registro del complemento que se exportarán a Cloud Logging. El valor predeterminado es INFO.

    • IMAGE: Es el URI del artefacto que contiene el módulo de Wasm almacenado en el repositorio de Artifact Registry. Antes de especificar una imagen de contenedor de otro proyecto, asegúrate de que Service Extensions tenga acceso a ella.

    • MAIN_VERSION: Es el ID de la versión del complemento que se creará y establecerá como la versión principal (activa).

    • PLUGIN_CONFIG, PLUGIN_CONFIG_FILE o PLUGIN_CONFIG_URI: Son los datos de configuración opcionales, que se pueden especificar como texto, un archivo local o una imagen de contenedor en Artifact Registry, respectivamente.

    • KEY_NAME: Para los complementos regionales, el nombre completamente calificado de la clave de encriptación administrada por el cliente en el siguiente formato: projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

      Reemplaza lo siguiente:

      • PROJECT: el ID del proyecto que contiene la clave
      • LOCATION: es la ubicación de la clave.
      • KEYRING_NAME: es el nombre del llavero de claves
      • KEY_NAME: el nombre de la clave

      Si no se especifica esta opción, se usa el mecanismo de encriptación predeterminado de Google.

    Por ejemplo:

    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 implementar una versión nueva, usa el comando gcloud service-extensions wasm-plugins update. Especifica una imagen y un nombre de versión nuevos:

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

Para ejecutar estos complementos, puedes configurar las extensiones de Cloud Load Balancing y las extensiones de Media CDN.

Accede a imágenes en otro proyecto

Antes de que puedas seleccionar imágenes de otro proyecto, el agente de servicio de extensiones de servicio debe tener acceso al repositorio del proyecto y, según cómo esté empaquetado tu módulo de Wasm, uno de los siguientes permisos en el proyecto:

  • Para artefactos genéricos: artifactregistry.files.download
  • Para las imágenes de contenedor: artifactregistry.repositories.downloadArtifacts

El agente de servicio de Service Extensions se llama de la siguiente manera:

service-PROJECT_NUMBER@gcp-sa-networkactions.

Reemplaza PROJECT_NUMBER por el número de tu proyecto.

¿Qué sigue?