Pruebe e implemente desde CI
Un bucle viable desde la primera edición hasta una implementación automática, con los límites de la emulación local establecidos desde el principio.
1. Ejecútelo localmente
aura functions serve ejecuta su archivo con Deno y lo reinicia cuando lo guarda.
Es un servidor Deno simple. En comparación con la plataforma, tiene:
- Sin encabezados de plataforma.
x-aura-roleyx-aura-user-idestán ausentes: envíelos usted mismo concurl -Hpara probar las ramas de autorización. - Sin secretos. Pásalos en tu shell:
STRIPE_SECRET_KEY=sk_test_… aura functions serve checkout. - Sin límites. No se aplican límites de memoria, tiempo de espera, tamaño corporal ni velocidad.
- Solicitudes simples. Llamas a la función directamente, por lo que
pathymethodson las de tucurl, no las opcionesinvokedel SDK.
El SDK no puede apuntar a este servidor porque invoke llama a la ruta de la plataforma. Pruebe la ruta del SDK con un proyecto real, como se muestra a continuación.
2. Pruébalo de verdad
Cree un proyecto para desarrollo (consulte su primera función), implemente la función allí y pruebe a través del SDK. Esto cubre los encabezados de identidad, los límites y las clases de error de la plataforma.
Consejos:
- Utilice un proyecto dedicado, nunca producción, y mantenga sus claves en sus secretos de CI.
- El límite de tasa de invocación es de 15 llamadas y luego 1 por segundo por IP. Espacie sus pruebas o ejecútelas en serie.
3. Implementación desde CI
La CLI aura se instala desde npm en macOS Apple Silicon y desde una fuente en otro lugar, por lo que un trabajo de CI de Linux es más sencillo con la API HTTP. La implementación es un POST por función, autenticado con una clave service_role. Este bucle exacto se ejecutó en un proyecto real y la función respondió posteriormente.
Datos que hacen que sea seguro ejecutarlo en cada impulso:
- El
POSTreemplaza el código de una función existente y mantiene sus secretos, porque el cuerpo no tieneenv_vars. - Una función es de un solo archivo: las importaciones relativas no se envían. Agrupe primero si usa módulos locales.
- No hay historial de versiones en el servidor. Su historial de Git es la reversión: para regresar, revierta la confirmación y deje que CI se implemente nuevamente.
Luego ejecute sus pruebas de integración en el proyecto que acaba de implementar, en el siguiente trabajo.
4. Desarrollo, puesta en escena y producción
Un proyecto es un entorno. Cree un proyecto por entorno, cada uno con su propia URL y claves, y deje que CI elija el destino:
| Medio ambiente | Proyecto | Implementado cuando |
|---|---|---|
| Desarrollo | uno por desarrollador o compartido | bajo demanda, en sucursal |
| Puesta en escena | my-app-staging | cada empujón a main |
| Producción | my-app | una etiqueta de lanzamiento, después de que pasen las pruebas de preparación |
Almacene AURA_PROJECT_URL y AURA_SERVICE_ROLE_KEY por entorno GitHub y establezca los secretos de cada función por separado en cada proyecto. No se comparte nada entre proyectos.