Le folder depl/gcf contient les fichiers ajustés pour ce déploiement:
.gclodignorepackage.jsonréduitindex.ts: configuration de l'application adaptée
Pour déployer:
- créer le répertoire de déploiement
./tmp/gcf ./dplgsf.sh- copie les fichiers nécessaires
- créé le fichier
src/keys.js - effectue un
npm install(doute sur le fonctionnement deyarn) - compilation tsc
- suppression des .js
Dans le répertoire de déploiement:
npm run testgcf: test localnpm run deplgcf: déploiement sur Google Cloud Run (c'est long)
Les logs sont visible dans la console Google >>> Cloud Run functions >>> asocialgcf >>> onglet 'Logs'.
URL GCF : https://europe-west1-asocial2.cloudfunctions.net/asocialgcf
https://johnwargo.com/posts/2024/google-cloud-support-notice/
https://cloud.google.com/functions/docs/deploy
src/index.ts- décommenter :
import { HttpFunction } from '@google-cloud/functions-framework' const gcp = true- commenter les imports des providers non utilisés
- décommenter :
package.json:- enlever les modules inemployés. (les devDependencies ne semblent pas utiles mais n'ont pas gêner).
- pas sur que le "main" soit utile.
- yarn add @google-cloud/functions-framework : ne serait pas utile en GAE.
-
src/index.ts- Commenter :
// import { HttpFunction } from '@google-cloud/functions-framework' - const gcp = false`
- Commenter :
-
package.json:"source": "src/index.ts", "main": "dist/bundle.cjs", "targets": { "main": { "includeNodeModules": false }},
yarn remove @google-cloud/functions-framework // mais ça ne gêne pas
Test local: npm run testsrv
- Créer un folder temporaire:
../tmp/srv-
./filestorea (vide)
-
./sqlite ./testa.db3
-
./package.json
{ "name": "srv", "dependencies": { "@google-cloud/functions-framework": "^4.0.0", "@google-cloud/logging-winston": "^6.0.0", "@msgpack/msgpack": "^3.1.1", "better-sqlite3": "^11.9.1", "cors": "^2.8.5", "express": "^5.1.0", "typescript": "^5.8.3", "winston": "^3.17.0" } }
yarn install npm run builddist npm run testdist
-
A scripter et tester en s'inspirant de ./tmp/gcf avec un yaml de déploiement.