Crea un complemento

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

Esta función está en vista previa para Media CDN.

Para obtener una descripción general del producto, consulta la 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. En el caso de los complementos de Media CDN, si deseas 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 Complementos.

  3. Haz clic en Crear complemento.

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

    1. En Alcance, selecciona Global o Regional.

      Si estableces el alcance 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 breve descripción sobre el complemento con hasta 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 Plugin version description, ingresa una breve descripción sobre la versión del complemento con hasta 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 quieres 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, selecciona 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 Examinar para ubicarlo 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 en el panel de Artifact Registry. La opción para usar un repositorio genérico está en versión preliminar.

      Como alternativa, para especificar una imagen de contenedor en un repositorio de Docker, 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. Opcional: En la sección Logging, selecciona Enable logging y haz lo siguiente:

    • En Frecuencia 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 Minimum log level, 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.

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

    Reemplaza lo siguiente:

    • WASM_PLUGIN: Es el ID o el nombre completamente calificado del complemento.
    • PLUGIN_DESCRIPTION: una descripción del complemento
    • LOCATION: Es la ubicación del complemento como global o una región.
    • LABELS: Etiquetas en forma de pares clave-valor separados por comas
    • LOG_CONFIG: Son las opciones de registro del complemento. Cuando la opción enable se establece en false, no se capturan registros para el complemento. Para habilitar el registro, configura la opción enable en 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 los 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: 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.

    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 un nuevo nombre de imagen y versión:

    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 Service Extensions debe tener acceso al repositorio del proyecto y, según cómo se empaquete tu módulo de Wasm, uno de los siguientes permisos en el proyecto:

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

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

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

Reemplaza PROJECT_NUMBER por tu número de proyecto.

¿Qué sigue?