J'ai réussi à mettre en place et à exécuter l'exemple "Quickstart for Python 3 in the App Engine Standard Environment", et j'ai pensé que j'essaierais d'approfondir un peu mes connaissances, peut-être en essayant de lancer une tâche cron.
p> J'ai donc mis à jour le code python, en ajoutant un autre point de terminaison, un compteur, comme ceci:
@app.route('/counter') def counter(): with open('counter.txt', 'a') as the_file: the_file.write('Hello\n') return 'Counter incremented'
J'ai l'intention d'avoir le travail cron périodiquement sur / compteur. Lorsque ce point de terminaison est atteint, il ouvrira le fichier et y ajoutera une ligne. Le point de terminaison / counter fonctionne sur ma machine locale. Après avoir déployé ce code mis à jour sur le cloud Google, si je vais sur mon url blahblah.appspot.com/counter, il devrait mettre à jour ce fichier "counter.txt".
Ma question est la suivante: comment puis-je voir ce fichier pour savoir s'il est mis à jour ou non? Comment afficher ce fichier dans le cloud? Merci.
3 Réponses :
Vous ne devez pas écrire dans le système de fichiers local de Google App Engine. Il peut être visible ou non par votre application lors de sa mise à l'échelle.
Google Cloud Storage est la méthode préférée de stockage de fichiers.
https://cloud.google.com/appengine / docs / standard / python3 / using-cloud-storage
Il n'est pas possible d'écrire des fichiers dans l'environnement Python3 standard de Google App Engine, sauf dans le répertoire / tmp
. Comme indiqué dans la documentation officielle de Python3 GAE : p >
Le runtime inclut un système de fichiers complet. Le système de fichiers est en lecture seule, à l'exception de l'emplacement
/ tmp
, qui est un disque virtuel stockant des données dans la RAM de votre instance App Engine.
Je suis d'accord avec la réponse de @Josh J, vous devriez plutôt utiliser Google Cloud Storage.
Pour python 2.7, vous pouvez importer un module à partir d'une chaîne au lieu d'un fichier, vous pouvez voir dans cette réponse: https://stackoverflow.com/a/7548190/8244338