2010-10-03 21 views
34

¿Cómo funcionan los números de versión de App Engine? ¿Son solo enteros? ¿Puedo usar flotadores? ¿Puedo reutilizar los números de versiones anteriores?Google App Engine números de versión?

+0

Pasando por el mensaje de error, tiene que coincidir con la expresión '^ (?:^(?! -) [a-z \ d \ -] {0,62} [a-z \ d] $) $'. Si leo correctamente la expresión regular, significa que puede contener letras minúsculas, dígitos y guiones, tener entre 1 y 63 caracteres y no comenzar con un guión. Entonces no puedes usar flotadores como 1.1, pero puedes usar 1a, 1b ... o 1-1, 1-2 .... Y puedes reutilizar números de versiones anteriores, solo significa que sobreescribirás ese viejo versión en lugar de sobrescribir la última versión. – ShreevatsaR

Respuesta

47

Del manual:

http://code.google.com/appengine/docs/python/config/appconfig.html#Required_Elements

Un especificador de versión del código aplicación. App Engine conserva una copia de su aplicación para cada versión utilizada. Un administrador puede cambiar cuál es la versión principal de la aplicación predeterminada usando la Consola de administración , y puede probar versiones no predeterminadas antes de hacer que sea la predeterminada. El especificador de versión puede contener letras, dígitos y guiones .

Cada versión de una aplicación conserva su propia copia de app.yaml. Cuando se carga una aplicación , la versión mencionada en el archivo app.yaml que está siendo cargada es la versión que obtiene creada o reemplazada por la carga.

+0

@Henrik P. Hessel: aunque su respuesta todavía tiene algún mérito. Al menos el prefijo con números enteros hace que la ordenación sea mucho más fácil para su propia administración :) – Wolph

+0

Nunca utilicé nada más que enteros en el GAE. Usar A, B, C, etc. (o incluso cadenas) simplemente no se siente natural. –

+2

Tenga en cuenta que si utiliza letras, deben estar en minúsculas. Por ejemplo, la versión capital 'X' fallará con este mensaje: 'No se puede asignar el valor 'X' al atributo 'versión': El valor 'X' de la versión no coincide con la expresión '^ (?:^(?! -) [az \ d \ -] {0,62} [az \ d] $) $ '' – ocarlsen

4

Puede incrementarlo cuando empuja una nueva versión. Vea a continuación para referencia.

Cuando se construye una nueva versión principal de una aplicación que ya está ejecutando en App Engine, puede cargar la nueva versión como una nueva versión. La versión anterior continuará sirviendo a los usuarios hasta que cambie a la nueva versión. Puede probar la nueva versión en la aplicación Engine mientras que la versión anterior sigue ejecutándose .

Editado: No eliminé mi respuesta porque hay algunos buenos comentarios al respecto.

+1

Eso es incorrecto. Puede usar letras, dígitos y guiones en la versión. No hay necesidad de enteros. – Wolph

+1

Para la aplicación GAE que tengo en SVN, utilizo el número de revisión del repositorio. Si estuviese usando git, supongo que usaría una suma de comprobación, en cuyo caso prefijaría con lo que sugiera, un número entero incrementado por cada versión cargada. –

+0

Incluso después de lanzar una nueva versión con una nueva versión y cerrar manualmente todas las instancias anteriores, por alguna razón el motor de la aplicación sigue recreando la versión anterior – MobileMon

7

Para acceder a una versión de su aplicación distinta de la predeterminada, agregue #. antes de la URL de su aplicación como se explica aquí: https://stackoverflow.com/a/8549546/129202 Esto es útil para probar versiones nuevas antes de hacerlas funcionar.

Si la versión de la aplicación es 2 y la URL de su aplicación es appname.appspot.com continuación 2.appname.appspot.com URL le dará acceso a la versión 2 de su aplicación.

+3

Tenga en cuenta que Google ha cambiado la forma en que funcionan las URL versionadas. En su lugar, debe usar '2-dot-appname.appspot.com'; de lo contrario, recibirá una advertencia de seguridad. – Eran

+0

Parece que incluso si elimina la versión1 de su aplicación, no asigna la url predeterminada a la versión 2. – Soundararajan