1. Introducción
Última actualización: 2024-05-01
Las redes de distribución de contenidos (CDN) mejoran el rendimiento del usuario almacenando en caché el contenido al que se accede con frecuencia más cerca de los usuarios finales, finalizando las conexiones más cerca de los clientes, reutilizando las conexiones al origen y adoptando protocolos y personalizaciones de redes modernos.
Media CDN, la red perimetral global de GCP para la transmisión de contenido multimedia, proporciona muchas capacidades integradas o "principales". Estas capacidades principales están diseñadas para abordar los casos de uso más comunes, pero es posible que también tengas requisitos que no se aborden con este conjunto de funciones principales.
Las extensiones del servicio para Media CDN, a veces también denominadas programabilidad perimetral, te permiten ejecutar tu propio código en el perímetro para personalizar el comportamiento de Media CDN. Esto habilita casos de uso adicionales, como la normalización de la clave de caché, la autenticación y revocación de tokens personalizados, campos de registro personalizados adicionales, pruebas A/B y páginas de error personalizadas.
Qué compilarás
En este codelab, analizaremos los pasos para implementar un entorno de entrega de CDN habilitado para Edge Compute con Media CDN (CDN) + Service Extensions (programabilidad perimetral) + Cloud Storage (fuente de la CDN).

Qué aprenderás
- Cómo configurar Media CDN con un bucket de Cloud Storage establecido como origen
- Cómo crear un complemento de extensión del servicio con autenticación HTTP personalizada y asociarlo con Media CDN
- Cómo validar que el complemento de Service Extension funcione según lo previsto
- (Opcional) Cómo administrar un complemento de Service Extension, como actualizar, hacer referencia, revertir y borrar una versión específica del complemento
Requisitos
- Conocimientos básicos de redes y HTTP
- Conocimiento básico de la línea de comandos de Unix/Linux
2. Antes de comenzar
Solicitud de lista de entidades permitidas de Media CDN y lista de entidades permitidas de extensiones de servicio
Antes de comenzar, deberás asegurarte de que tu proyecto se haya agregado a la lista de entidades permitidas de la versión preliminar privada tanto para Media CDN como para las extensiones de servicio de Media CDN.
- Para solicitar acceso a Media CDN y a Service Extensions para Media CDN, comunícate con tu equipo de Cuentas de Google para que cree una solicitud de acceso en tu nombre para Media CDN y Service Extensions.
3. Configuración y requisitos
Inicia Cloud Shell
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
En GCP Console, haga clic en el ícono de Cloud Shell en la barra de herramientas superior derecha:

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Puedes realizar todo tu trabajo en este lab usando simplemente un navegador.
Antes de comenzar
Roles y acceso de IAM
Los permisos de Identity and Access Management (IAM) necesarios para crear recursos de CDN de Media y Artifact Registry son los siguientes:
- roles/networkservices.edgeCacheAdmin
- roles/networkservices.edgeCacheUser
- roles/networkservices.edgeCacheViewer
- roles/artifactregistry.repoAdmin
En Cloud Shell, asegúrate de que estén configuradas las variables de entorno project_id, project_num, location y repository.
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] PROJECT_NUM=[YOUR-PROJECT-NUMBER] LOCATION=us-central1 REPOSITORY=service-extension-$PROJECT_ID
Habilita las APIs
Habilita las APIs de Media CDN y Service Extensions con los siguientes comandos
gcloud services enable networkservices.googleapis.com gcloud services enable networkactions.googleapis.com gcloud services enable edgecache.googleapis.com gcloud services enable artifactregistry.googleapis.com
4. Crea un bucket de Cloud Storage
El contenido de Media CDN puede originarse en ubicaciones como un bucket de Cloud Storage, una ubicación de almacenamiento de terceros o cualquier extremo HTTP(HTTPS) de acceso público.
En este codelab, almacenaremos contenido en un bucket de Cloud Storage.
Usaremos el comando gsutil mb para crear el bucket.
gsutil mb gs://mediacdn-bucket-$PROJECT_ID
De manera opcional, puedes crear un bucket de Cloud Storage con la GUI de la siguiente manera:
- En la consola de Google Cloud, ve a la página de Cloud Storage.
- Haz clic en el botón CREAR.
- Ingresa un nombre para el bucket. - Es decir, "mediacdn-bucket-$PROJECT_ID".
- Deja el resto de los parámetros de configuración con sus valores predeterminados.
- Haz clic en el botón CREAR.

5. Sube un objeto de prueba al bucket de Cloud Storage
Ahora subiremos un objeto al bucket de Cloud Storage.
- Crea un archivo en Cloud Shell y, luego, súbelo al bucket con gsutil.
echo media-cdn-service-extensions-test > file.txt gsutil cp file.txt gs://mediacdn-bucket-$PROJECT_ID
- Otorga acceso de Media CDN al bucket
gsutil iam ch \ serviceAccount:service-$PROJECT_NUM@gcp-sa-mediaedgefill.iam.gserviceaccount.com:objectViewer gs://mediacdn-bucket-$PROJECT_ID
6. Configura Media CDN
A continuación, crearemos una configuración de Media CDN.
Cada configuración de Media CDN consta de dos recursos principales:
- EdgeCacheService, responsable de la configuración orientada al cliente (TLS, direccionamiento IP), el enrutamiento, la configuración de CDN (modos de almacenamiento en caché, TTL, firma) y las políticas de seguridad.
- EdgeCacheOrigin, responsable de la configuración por origen para cualquier origen basado en HTTP, así como de las condiciones de reintento cuando el contenido no está disponible o no se puede acceder a él.
Configura un origen del almacenamiento en caché perimetral
Ahora, creemos un origen que apunte al bucket de Cloud Storage que acabas de crear.
- En la consola de Google Cloud, ve a la página Media CDN.
- Haz clic en la pestaña ORIGINS.
- Haz clic en CREATE ORIGIN.
- Ingresa "cloud-storage-origin" como el nombre del origen de la caché perimetral.
- En Dirección de origen, haz lo siguiente:
- Elige "Seleccionar un bucket de Google Cloud Storage".
- NAVEGA al bucket de Cloud Storage llamado "mediacdn-bucket-$PROJECT_ID".
- Haz clic en SELECCIONAR.
- Deja el resto de los parámetros de configuración con sus valores predeterminados.
- Haz clic en CREATE ORIGIN.

El recurso EdgeCacheOrigin recién creado aparecerá en la lista de orígenes de tu proyecto en la página Orígenes.
Configura un servicio de Edge Cache
- En la consola de Google Cloud, ve a la página Media CDN.
- Haz clic en la pestaña SERVICIOS.
- Haz clic en CREAR SERVICIO.
- Ingresa un nombre único para tu servicio, por ejemplo, "media-cdn", y, luego, haz clic en Siguiente.

- En la sección Enrutamiento, haz clic en AGREGAR REGLA DE HOST.
- Ingresa el comodín "*" en el campo Hosts.

- Haz clic en AGREGAR REGLA DE ENRUTAMIENTO.
- En Prioridad, especifica "1".
- Haz clic en AGREGAR UNA CONDICIÓN DE CONCORDANCIA, para Concordancia de ruta, selecciona "Concordancia de prefijo" como Tipo de concordancia, especifica "/" en el campo Concordancia de ruta y, luego, haz clic en Listo.
- Selecciona Fetch from an Origin en Acción principal y, luego, selecciona el origen que configuraste en la lista desplegable.

- Haz clic en CONFIGURACIONES AVANZADAS para expandir más opciones de configuración.
- En Acción de ruta, haz clic en AGREGAR UN ELEMENTO. A continuación, sigue estos pasos:
- En Tipo, selecciona "Política de CDN".
- En Modo de caché, selecciona "Forzar caché de todo".
- Deja el resto de las opciones con la configuración predeterminada.
- Haz clic en Listo.
- Haz clic en Guardar.

- Haz clic en CREAR SERVICIO.
El recurso EdgeCacheService recién creado aparecerá en la página Servicios, en la lista de servicios de tu proyecto.
Recupera la dirección IP de MediaCDN y realiza pruebas
- En la consola de Google Cloud, ve a la página Media CDN.
- Ir a Media CDN
- Haga clic en la pestaña Servicios.
- Para tu servicio, consulta la columna Addresses.

Para probar que tu servicio esté configurado correctamente para almacenar contenido en caché, usa la herramienta de línea de comandos curl para enviar solicitudes y verificar las respuestas.
curl -svo /dev/null "http://MEDIA_CDN_IP_ADDRESS/file.txt"
El comando debería producir un resultado similar al siguiente:
< HTTP/2 200 OK ... media-cdn-service-extensions-test ...
Ahora creaste correctamente una implementación de MediaCDN con Cloud Storage como origen.
7. Configura Artifact Registry para las extensiones de servicio
Antes de crear extensiones de servicio, debemos configurar Artifact Registry. Artifact Registry es el administrador de paquetes universal de Google Cloud para administrar artefactos de compilación. Los complementos de Service Extension (Proxy-Wasm) se publican en Artifact Registry. Una vez que se publican en Artifact Registry, los complementos de Proxy-Wasm se pueden implementar en tu implementación de Media CDN.
Usaremos el comando gcloud artifacts repositories create para crear el repositorio.
gcloud artifacts repositories create service-extension-$PROJECT_ID \
--repository-format=docker \
--location=$LOCATION \
--description="Repo for Service Extension" \
--async
De manera opcional, puedes crear un repositorio con la GUI de la siguiente manera:
- En la consola de Google Cloud, ve a la página Artifact Registry.
- Haz clic en el botón + CREAR REPOSITORIO.
- Ingresa un nombre para el repositorio, p. ej., “service-extension-$PROJECT_ID”.
- Formato: “Docker”, Modo: “Estándar”, Tipo de ubicación: “Región” y elige “us-central1 (Iowa)”.
- Haz clic en el botón CREAR.

El recurso del repositorio de Artifact Registry recién creado debería aparecer en la página Repositories.
Una vez que se haya creado el recurso Repository, ejecuta el siguiente comando en Cloud Shell para configurar tu cliente de Docker de Cloud Shell de modo que envíe y extraiga paquetes con este repositorio.
gcloud auth configure-docker $LOCATION-docker.pkg.dev
Resultado:
... Adding credentials for: us-central1-docker.pkg.dev Docker configuration file updated.
8. Configura Service Extensions en Media CDN
Ahora, demostraremos cómo escribir y compilar un complemento de Service Extension (Proxy-Wasm) que se puede implementar en Media CDN con el lenguaje de programación Rust.
En este ejemplo, crearemos un complemento de Proxy-Wasm que verifique que cada solicitud HTTP contenga un encabezado de autorización con el valor "secreto". Si la solicitud no contiene este encabezado, el complemento generará una respuesta HTTP 403 Forbidden.
Un breve repaso sobre las extensiones de servicio: existen tres recursos clave: WasmAction, WasmPlugin y WasmPluginVersion.
- Un recurso WasmAction es lo que se adjunta a tu EdgeCacheService de Media CDN. Un WasmAction hace referencia a un recurso de WasmPlugin.
- Un recurso de WasmPlugin tiene una versión principal que corresponde a la versión activa actual de WasmPluginVersion.
- Un WasmPluginVersions hace referencia a una imagen de contenedor de Artifact Registry. A medida que realices cambios en tus complementos de proxy-wasm, crearás diferentes versiones de WasmPlugin.
Consulta el siguiente diagrama para comprender mejor la relación entre estos recursos.

Escribe y compila un complemento de Service Extension
- Instala la cadena de herramientas de Rust. Para ello, sigue las instrucciones que se encuentran en https://www.rust-lang.org/tools/install.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- A continuación, ejecuta el siguiente comando para agregar compatibilidad con Wasm a tu cadena de herramientas de Rust:
rustup target add wasm32-wasi
- Crea un paquete de Rust llamado my-wasm-plugin:
cargo new --lib my-wasm-plugin
Resultado:
Created library `my-wasm-plugin` package
- Ingresa al directorio my-wasm-plugin y deberías ver un archivo
Cargo.tomly un directoriosrc.
cd my-wasm-plugin ls
Resultado:
Cargo.toml src
- A continuación, configura tu paquete de Rust editando el archivo
Cargo.toml. Después de la línea[dependencies]en el archivo Cargo.toml, agrega lo siguiente:
proxy-wasm = "0.2"
log = "0.4"
[lib]
crate-type = ["cdylib"]
[profile.release]
lto = true
opt-level = 3
codegen-units = 1
panic = "abort"
strip = "debuginfo"
- Después de tus ediciones, el archivo
Cargo.tomldebería verse aproximadamente de la siguiente manera:
[package]
name = "my-wasm-plugin"
version = "0.1.0"
edition = "2021"
[dependencies]
proxy-wasm = "0.2"
log = "0.4"
[lib]
crate-type = ["cdylib"]
[profile.release]
lto = true
opt-level = 3
codegen-units = 1
panic = "abort"
strip = "debuginfo"
- . Copia todo el contenido del archivo sample_code en el archivo
lib.rsdel directoriosrcen Cloud Shell.
- Después de tus ediciones, el archivo
lib.rsdebería verse aproximadamente de la siguiente manera:
use log::info;
use proxy_wasm::traits::*;
use proxy_wasm::types::*;
...
struct DemoPlugin;
impl HttpContext for DemoPlugin {
fn on_http_request_headers(&mut self, _: usize, _: bool) -> Action {
if self.get_http_request_header("Authorization") == Some(String::from("secret")) {
info!("Access granted.");
Action::Continue
} else {
self.send_http_response(403, vec![], Some(b"Access forbidden.\n"));
Action::Pause
}
}
}
impl Context for DemoPlugin {}
- Ahora que configuramos el archivo de manifiesto
Cargo.tomly escribimos nuestro código de Proxy-Wasm en el archivolib.rs, podemos compilar nuestro complemento de Proxy-Wasm.
cargo build --release --target wasm32-wasi
Una vez que la compilación se complete correctamente, verás un mensaje como el que se muestra a continuación:
Finished release [optimized] target(s) in 1.01s
También verificaremos el directorio target y comprobaremos que se hayan creado los archivos:
ls ./target
Verás el resultado que se muestra a continuación:
CACHEDIR.TAG release wasm32-wasi
Publica un complemento de Proxy-Wasm en Artifact Registry
Ahora, publicaremos nuestro complemento de Proxy-Wasm en el repositorio de Artifact Registry que creaste antes para que se pueda implementar en Media CDN.
Primero, empaquetamos los complementos de Proxy-Wasm en una imagen de contenedor.
- Crea un archivo llamado
Dockerfileen el mismo directorio my-wasm-plugin con el siguiente contenido:
FROM scratch
COPY target/wasm32-wasi/release/my_wasm_plugin.wasm plugin.wasm
- A continuación, compila la imagen del contenedor:
docker build --no-cache --platform wasm -t my-wasm-plugin .
(Solo para procesadores que no son x86) A continuación, compila la imagen del contenedor:
docker build --no-cache --platform wasm --provenance=false -t my-wasm-plugin .
Salida
[+] Building 0.2s (5/5) FINISHED docker:default ...
- A continuación, publica o "envía" tu complemento de Proxy-Wasm a Artifact Registry. Etiquetaremos nuestra imagen de contenedor con la etiqueta "prod".
docker tag my-wasm-plugin $LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin:prod
Ahora, enviaremos la imagen de contenedor etiquetada como "prod" al repositorio.
docker push $LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin:prod
Resultado:
The push refers to repository ... 8564ddd9910a: Pushed prod: digest: sha256:f3ae4e392eb45393bfd9c200cf8c0c261762f7f39dde5c7cd4b9a8951c6f2812 size: 525
Ahora, verifiquemos que la imagen de contenedor del complemento de Proxy-Wasm se haya enviado correctamente a Artifact Registry. Deberías ver un resultado similar al siguiente:
gcloud artifacts docker images list $LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin --include-tags
Resultado:
Listing items under project ... IMAGE DIGEST TAGS CREATE_TIME UPDATE_TIME <LOCATION>-docker.pkg.dev/.../my-wasm-plugin sha256:08c12... prod 2021-11-10T23:31:27 2021-11-10T23:31:27
Asocia un complemento de Proxy-Wasm con tu implementación de Media CDN
Ahora ya puedes asociar el complemento Proxy-Wasm a tu implementación de Media CDN.
Los complementos de Proxy-Wasm se asocian con rutas de Media CDN en el recurso EdgeCacheService.
- Primero, creamos un recurso de complemento de Wasm para nuestro complemento de Proxy-Wasm.
gcloud alpha service-extensions wasm-plugins create my-wasm-plugin-resource
- A continuación, crearemos un WasmPluginVersion.
gcloud alpha service-extensions wasm-plugin-versions create my-version-1 \
--wasm-plugin=my-wasm-plugin-resource \
--image="$LOCATION-docker.pkg.dev/$PROJECT_ID/$REPOSITORY/my-wasm-plugin:prod"
- A continuación, especificamos la versión principal de nuestro complemento de Proxy-Wasm.
gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource \
--main-version=my-version-1
Ahora, verifiquemos que el complemento de Proxy-Wasm se haya asociado correctamente a la imagen de contenedor que reside en el repositorio de Artifact Registry. Deberías ver un resultado similar al siguiente:
gcloud alpha service-extensions wasm-plugin-versions list --wasm-plugin=my-wasm-plugin-resource
Resultado:
NAME WASM_IMAGE WASM_IMAGE_DIGEST CONFIG_SIZE CONFIG_IMAGE CONFIG_IMAGE_DIGEST UPDATE_TIME c7cfa2 <LOCATION>-docker.pkg.dev/.../my-wasm-plugin@sha256:6d663... ... ... ...
- A continuación, crearemos un recurso WasmAction que haga referencia a nuestro recurso de complemento de Wasm.
gcloud alpha service-extensions wasm-actions create my-wasm-action-resource \
--wasm-plugin=my-wasm-plugin-resource
También verificaremos que el recurso WasmAction se haya asociado correctamente al complemento Proxy-Wasm. Deberías ver un resultado similar al siguiente:
gcloud alpha service-extensions wasm-actions list
Resultado:
NAME WASMPLUGIN my-wasm-action-resource projects/805782461588/locations/global/wasmPlugins/myenvoyfilter-resource ...
- Ahora, debemos exportar la configuración de nuestro Media CDN EdgeCacheService:
gcloud edge-cache services export media-cdn --destination=my-service.yaml
- Luego, abre el archivo my-service.yaml y agrega un wasmAction al routeAction para la ruta determinada, que hace referencia al recurso WasmPlugin creado anteriormente.
wasmAction: "my-wasm-action-resource"
- Después de tus ediciones, el archivo my-service.yaml debería verse aproximadamente así:
...
pathMatchers:
- name: routes
routeRules:
- headerAction: {}
matchRules:
- prefixMatch: /
origin: projects/<PROJECT_NUM>/locations/global/edgeCacheOrigins/cloud-storage-origin
priority: '1'
routeAction:
cdnPolicy:
cacheKeyPolicy: {}
cacheMode: FORCE_CACHE_ALL
defaultTtl: 3600s
signedRequestMode: DISABLED
wasmAction: "my-wasm-action-resource"
...
- Luego, guardamos la configuración actualizada con la configuración de Proxy-Wasm en el archivo
my-service-with-wasm.yaml.
- Por último, importamos la configuración actualizada para el entorno de producción de Media CDN:
$ gcloud alpha edge-cache services import media-cdn --source=my-service-with-wasm.yaml
9. Valida el complemento de Service Extensions Proxy-Wasm en Media CDN
Para probar que tu servicio esté configurado correctamente para almacenar contenido en caché, usa la herramienta de línea de comandos curl para enviar solicitudes y verificar las respuestas.
curl -svo /dev/null "http://IP_ADDRESS/file.txt"
El comando debería producir un resultado similar al siguiente:
< HTTP/2 403 Forbidden ... Access forbidden. ...
Ahora, vuelve a enviar la solicitud con un encabezado de autorización y su valor de secreto.
curl -svo /dev/null "http://IP_ADDRESS/file.txt" -H "Authorization: secret"
El comando debería producir un resultado similar al siguiente:
< HTTP/2 200 OK ... media-cdn-service-extensions-test ...
10. Opcional: Administra complementos de Proxy-Wasm
Cómo actualizar un complemento de Proxy-Wasm
A medida que realices mejoras o agregues funciones nuevas a tus complementos de Proxy-Wasm, deberás implementar los complementos actualizados en Media CDN. A continuación, se describen los pasos para implementar una versión actualizada de un complemento.
Por ejemplo, puedes actualizar el código de muestra del complemento para evaluar el encabezado de autorización en función de otro valor para la autenticación. Para ello, modifica el código de la siguiente manera.
Primero, actualiza el archivo fuente src/lib.rs con el código que se muestra a continuación:
use log::{info, warn};
use proxy_wasm::traits::*;
use proxy_wasm::types::*;
...
struct DemoPlugin;
impl HttpContext for DemoPlugin {
fn on_http_request_headers(&mut self, _: usize, _: bool) -> Action {
if self.get_http_request_header("Authorization") == Some(String::from("another_secret")) {
info!("Access granted.");
Action::Continue
} else {
warn!("Access forbidden.");
self.send_http_response(403, vec![], Some(b"Access forbidden.\n"));
Action::Pause
}
}
}
impl Context for DemoPlugin {}
A continuación, compila, empaqueta y publica el complemento actualizado:
cargo build --release --target wasm32-wasi docker build --no-cache --platform wasm -t my-wasm-plugin . docker tag my-wasm-plugin $LOCATION-docker.pkg.dev/$PROJECT_NUM/$REPOSITORY/my-wasm-plugin:prod docker push $LOCATION-docker.pkg.dev/$PROJECT_NUM/$REPOSITORY>/my-wasm-plugin:prod
Una vez que se actualice la imagen de contenedor en Artifact Registry, debemos crear una nueva WasmPluginVersion y, luego, actualizar la versión principal de WasmPlugin para que haga referencia a la nueva versión.
gcloud alpha service-extensions wasm-plugin-versions create my-version-2 \
--wasm-plugin=my-wasm-plugin-resource \
--image="$LOCATION-docker.pkg.dev/$PROJECT_NUM/$REPOSITORY>/my-wasm-plugin:prod"
gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource \
--main-version=my-version-2
Ahora, actualizaste correctamente la versión de la imagen del contenedor que se importará desde Artifact Registry y se enviará en vivo a tu implementación de CDN de medios.
Cómo revertir a una versión anterior
Para revertir a una versión anterior de un complemento, puedes actualizar el recurso del complemento de Wasm para que haga referencia a una versión anterior.
Primero, enumeramos las versiones disponibles:
gcloud alpha service-extensions wasm-plugin-versions list --wasm-plugin=my-wasm-plugin-resource
Deberías ver el siguiente resultado:
NAME WASM_IMAGE WASM_IMAGE_DIGEST CONFIG_SIZE CONFIG_IMAGE CONFIG_IMAGE_DIGEST UPDATE_TIME c7cfa2 <LOCATION>-docker.pkg.dev/.../my-wasm-plugin@sha256:6d663... ... ... a2a8ce <LOCATION>-docker.pkg.dev/.../my-wasm-plugin@sha256:08c12... ... ...
A continuación, actualizamos el recurso del complemento de Wasm para hacer referencia a la versión anterior, "a2a8ce":
$ gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource \
--main-version="a2a8ce"
Una vez que la operación se realice correctamente, deberías ver este resultado:
✓ WASM Plugin [my-wasm-plugin-resource] is now serving version "a2a8ce"
Dado que Media CDN guarda el resumen de la imagen de tu imagen de Docker cada vez que se crea un recurso nuevo de complemento de Wasm, la reversión usará la versión de tu código que se ejecutaba antes de la última versión.
gcloud alpha service-extensions wasm-plugins describe my-wasm-plugin-resource \ --expand-config
Para la versión "a2a8ce", es la versión con el resumen sha256:08c12…:
name: "my-wasm-plugin-resource" mainVersion: "a2a8ce" mainVersionDetails: image: "<LOCATION>-docker.pkg.dev/<PROJECT>/<REPOSITORY>/my-wasm-plugin" imageDigest: "<LOCATION>-docker.pkg.dev/<PROJECT>/<REPOSITORY>/my-wasm-plugin@sha256:08c121dd7fd1e4d3a116a28300e9fc1fa41b2e9775620ebf3d96cb7119bd9976"
Cómo borrar un WasmAction y un WasmPlugin
Para borrar un WasmAction, un WasmPlugin y los WasmPluginVersions asociados, sigue estos pasos.
Primero, quita la referencia a WasmAction en la configuración de EdgeCacheService de Media CDN.
Línea de referencia que se quitará:
wasmAction: "my-wasm-action-resource"
Luego, actualizamos la configuración editada de EdgeCacheService.
gcloud alpha edge-cache services import prod-media-service --source=my-service.yaml
A continuación, actualiza la versión principal de tu WasmPlugin a una cadena vacía "".
gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource --main-version=
""
Por último, realiza los siguientes pasos para borrar el rol en orden.
gcloud alpha service-extensions wasm-actions delete my-wasm-action-resource gcloud alpha service-extensions wasm-plugin-versions delete my-version \ --wasm-plugin=my-wasm-plugin-resource gcloud alpha service-extensions wasm-plugins delete my-wasm-plugin-resource
11. Limpia el entorno del lab
Después de completar el codelab, no olvides limpiar los recursos del lab. De lo contrario, seguirán ejecutándose y acumulando costos.
Los siguientes comandos borrarán el servicio EdgeCache de Media CDN, la configuración de EdgeCache y el complemento de extensiones de servicio. Sigue los pasos que se indican a continuación para borrar el historial.
gcloud edge-cache services delete media-cdn gcloud edge-cache origins delete cloud-storage-origin gcloud alpha service-extensions wasm-actions delete my-wasm-action-resource gcloud alpha service-extensions wasm-plugins update my-wasm-plugin-resource --main-version="" gcloud alpha service-extensions wasm-plugin-versions delete my-version-1 --wasm-plugin=my-wasm-plugin-resource gcloud alpha service-extensions wasm-plugins delete my-wasm-plugin-resource gcloud artifacts repositories delete service-extension-$PROJECT_ID --location=$LOCATION
Cada uno de los comandos anteriores debería pedirte que confirmes el borrado del recurso.
12. ¡Felicitaciones!
¡Felicitaciones! Completaste el codelab de Service Extensions en Media CDN.
Temas abordados
- Cómo configurar Media CDN con un bucket de Cloud Storage establecido como origen
- Cómo crear un complemento de extensión del servicio con autenticación HTTP personalizada y asociarlo con Media CDN
- Cómo validar que el complemento de Service Extension funcione según lo previsto
- (Opcional) Cómo administrar un complemento de Service Extension, como actualizar, hacer referencia, revertir y borrar una versión específica del complemento
¿Qué sigue?
Consulta algunos codelabs sobre los siguientes temas:
Lecturas adicionales
- Carga de Service Worker de alto rendimiento
- Estrategias de almacenamiento en caché de Service Worker basadas en tipos de solicitudes