Saltar al contenido principal

Compartir y duplicar

Una plantilla tiene dos identificadores, y responden preguntas distintas.

IdentificadorFormaCambia cuandoResponde
idun UUIDnunca"¿de qué fila de plantilla se trata?"
hash_idth_ seguido de un resumen hexadecimalcambia la receta de lanzamiento"¿de qué receta exacta se trata?"

id es la fila. hash_id es un hash del contenido de los campos que deciden qué se lanza realmente, así que dos plantillas con recetas idénticas obtienen igualmente hashes distintos — la identidad de la fila entra en el cálculo — mientras que una misma fila conserva su hash a lo largo de ediciones cosméticas.

Qué cubre el hash

En el hashFuera del hash
image, tag, reponame, description
launch_mode, args_str, onstartreadme, enlace
env, ports, constraintsvisibility, orden de clasificación
jupyter_dir, use_jupyter_labla contraseña del registro privado
registry_useruse_count, marcas de tiempo

Cambie el nombre de una plantilla, reescriba su readme, pásela de privada a pública: el hash no se mueve. Cambie un puerto, una entrada de entorno, el script de inicio o la imagen: el hash se vuelve a generar en el acto.

Un hash regenerado rompe los enlaces que ya compartió

El hash antiguo ya no pertenece a ninguna plantilla, así que un enlace fijado construido a partir de él devuelve TEMPLATE_NOT_FOUND. Después de editar la receta, vuelva a copiar el enlace fijado y a enviarlo.

Compartir

Compartir, en la tarjeta o en el detalle de una plantilla, ofrece dos enlaces.

EnlaceFormaComportamiento
De referencia/templates?t=<id>Sigue a la plantilla. Quien lo reciba siempre ve sus últimas ediciones.
Fijado/templates?h=<hash_id>Nombra una receta exacta, y deja de resolverse si usted la cambia.

Ambos abren el detalle de la plantilla en la galería de quien los recibe, desde donde puede lanzarla o duplicarla. Ninguno concede acceso por sí mismo: quien lo recibe ya debe poder ver la plantilla. Eso significa una plantilla system, una plantilla public o una plantilla que pertenezca a una organización a la que esa persona pertenezca. Enviar el enlace de una plantilla privada a alguien de fuera de su organización le devuelve un 404.

Buscar una plantilla por hash

El enlace fijado es una envoltura sobre un endpoint:

curl "$SUPERHEAT_API/v1/templates/by-hash/th_9f2c…" \
-H "Authorization: Bearer $SUPERHEAT_KEY"

Devuelve el mismo objeto que GET /v1/templates/{id}, con las mismas reglas de visibilidad y el mismo enmascaramiento de secretos, y 404 TEMPLATE_NOT_FOUND cuando el hash no coincide con nada que usted pueda ver.

Esta es la herramienta de reproducibilidad. Registre el hash_id junto a una ejecución de entrenamiento, y la búsqueda o bien devuelve la receta exacta que usó, o bien le indica que ha cambiado desde entonces — lo cual es más útil que entregarle un entorno distinto sin decir nada.

Duplicar

Duplicar es la forma de construir sobre una plantilla que no puede editar: una plantilla de sistema seleccionada, o la plantilla pública de otra organización.

curl -X POST "$SUPERHEAT_API/v1/templates/$TEMPLATE_ID/duplicate" \
-H "Authorization: Bearer $SUPERHEAT_KEY"

La copia se crea de inmediato y:

  • pertenece a su organización actual, con usted registrado como su creador
  • es siempre private, fuera lo que fuera el original
  • se llama <source name> (copy), o (copy 2), (copy 3) y así sucesivamente si ese nombre está ocupado
  • lleva un id nuevo y un hash_id nuevo, y empieza con cero lanzamientos
  • copia sin cambios la imagen, el modo de lanzamiento, los argumentos, el script de inicio, los puertos y las restricciones

Dos cosas no se copian deliberadamente cuando el original no es suyo:

No se copiaPor qué
Los valores de entorno secretosUsted nunca tuvo acceso de lectura a ellos; los valores de la copia llegan en blanco con la marca secret intacta.
El usuario y la contraseña del registro privadoPor la misma razón. Vuelva a introducir sus propias credenciales en la copia.

Duplicar una plantilla que ya pertenece a su organización conserva ambos, porque no se revela nada nuevo.

El flujo habitual

  1. Encuentre una plantilla seleccionada que se acerque a lo que quiere.
  2. Duplíquela.
  3. Edite la copia — cambie la etiqueta de la imagen, agregue puertos, escriba un script de inicio.
  4. Lánzela, confirme que funciona y luego comparta el enlace fijado con su equipo.
  5. Cuando cambie la receta, vuelva a compartir el enlace.

Eliminar una plantilla no afecta a las instancias ya desplegadas a partir de ella, y no invalida nada salvo la entrada de la galería y sus enlaces.