Cette fois, nous visons à mettre le programme de scraping de précédent sur le cloud et à l'exécuter automatiquement, mais d'abord, mettre le PGM de test sur le cloud et le faire fonctionner normalement. Je vais l'amener à ce point.
(1) Réussir à gratter le contenu cible localement pour le moment. (2) Liez les résultats de la récupération locale à une feuille de calcul Google. (3) cron est automatiquement exécuté localement. (4) Défiez l'exécution automatique gratuite sur le serveur cloud. (Google Compute Engine) (4) -1 Placez la PGM de test sur le cloud et exécutez-la normalement sur CloudShell ← Maintenant ici </ font> (4) -2 Ajoutez la PGM de scraping au référentiel et exécutez-la normalement sur CloudShell. (4) -3 Créez une instance de VM de ComputeEngine et exécutez le scraping automatiquement. (5) Défiez l'exécution automatique gratuite sans serveur sur le cloud. (Peut-être Cloud Functions + Cloud Scheduler)
(1) Créez un référentiel git dans GCP à l'aide de git (compte GitHub requis) (2) Créer un clone localement (3) Ajoutez le programme que vous souhaitez télécharger sur GCP dans l'index du référentiel local et validez (4) Push to master sur GCP
Si vous n'avez pas installé le SDK Gcloud, installez-le. Assurez-vous que la commande gcloudl est définie pour le projet souhaité. (Pour un nouveau projet, définissez le projet avec la commande gcloud init.)
zsh
16:03:04 [~] % gcloud config list
[core]
account = [email protected]
disable_usage_reporting = False
project = my-hoge-app
Your active configuration is: [default]
Créez un référentiel dans Cloud Source Repositories.
zsh
16:41:59 [~] %
16:42:00 [~] % gcloud source repos create gce-cron-test
Created [gce-cron-test].
WARNING: You may be billed for this repository. See https://cloud.google.com/source-repositories/docs/pricing for details.
Un référentiel vide sera créé dans le projet cible comme ceci.
Créez un clone du référentiel que vous avez créé dans Cloud Source Repositories localement.
zsh
16:44:10 [~] %
16:44:10 [~] % gcloud source repos clone gce-cron-test
Cloning into '/Users/hoge/gce-cron-test'...
warning: You appear to have cloned an empty repository.
Project [my-hoge-app] repository [gce-cron-test] was cloned to [/Users/hoge/gce-cron-test].
État dans lequel le fichier py est stocké dans le référentiel local créé. (Vous pouvez voir qu'il s'agit d'un dépôt git.)
zsh
16:46:15 [~] %
16:46:15 [~] % cd gce-cron-test
16:46:44 [~/gce-cron-test] % ls -la
total 8
drwxr-xr-x 4 hoge staff 128 9 23 16:45 .
drwxr-xr-x+ 45 hoge staff 1440 9 23 16:45 ..
drwxr-xr-x 9 hoge staff 288 9 23 16:45 .git
-rw-r--r-- 1 hoge staff 146 9 21 15:29 cron-test.py
Ajoutez le fichier à l'index avec la commande git add Validez dans le référentiel local avec la commande git commit.
zsh
16:47:21 [~/gce-cron-test] %
16:47:21 [~/gce-cron-test] % git add .
16:48:03 [~/gce-cron-test] %
16:48:04 [~/gce-cron-test] % git commit -m "Add cron-test to Cloud Source Repositories"
[master (root-commit) 938ea70] Add cron-test to Cloud Source Repositories
1 file changed, 5 insertions(+)
create mode 100644 cron-test.py
Push to master (référentiels Cloud Source).
zsh
16:50:15 [~/gce-cron-test] %
16:50:15 [~/gce-cron-test] % git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 349 bytes | 116.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://source.developers.google.com/p/my-hoge-app/r/gce-cron-test
* [new branch] master -> master
Vous pouvez voir que vous avez pu pousser vers le maître avec le message de validation.
Testons-le sur Cloud Shell sur GCP.
Sélectionnez le projet souhaité et lancez Cloud Shell.
Le terminal démarre.
Clonez le dépôt git à partir de master comme vous le feriez localement.
bash
cloudshell:09/25/20 02:59:00 ~ $ gcloud source repos clone gce-cron-test
Cloning into '/home/hoge/gce-cron-test'...
remote: Total 3 (delta 0), reused 3 (delta 0)
Unpacking objects: 100% (3/3), done.
Project [my-xxx-app] repository [gce-cron-test] was cloned to [/home/hoge/gce-cron-test].
Il a été cloné.
bash
cloudshell:09/25/20 03:01:49 ~ $ cd gce-cron-test
cloudshell:09/25/20 03:02:09 ~/gce-cron-test $ ls -la
total 20
drwxr-xr-x 3 hoge hoge 4096 Sep 23 10:59 .
drwxr-xr-x 13 hoge rvm 4096 Sep 23 11:18 ..
-rw-r--r-- 1 hoge hoge 146 Sep 23 09:03 cron-test.py
drwxr-xr-x 8 hoge hoge 4096 Sep 23 09:03 .git
Vérifiez le chemin et la version de python. 3.8.5 est pré-installé dans cet environnement avec pyenv.
bash
cloudshell:09/25/20 03:02:21 ~/gce-cron-test $ which python
/home/hoge/.pyenv/shims/python
cloudshell:09/25/20 03:02:42 ~/gce-cron-test $ python -V
Python 3.8.5
Comme indiqué ci-dessous, cela fonctionne normalement sur CloudShell.
bash
cloudshell:09/25/20 03:02:50 ~/gce-cron-test $ python cron-test.py
2020/09/25 03:03:11 fonctionne Cron!
cloudshell:09/25/20 03:03:12 ~/gce-cron-test $
Cependant, crontab n'a pas fonctionné. L'environnement Cloud Shell semble être un environnement qui n'accepte que les commandes interactives interactives. .. .. La prochaine fois, j'ajouterai la PGM de scraping au référentiel et l'exécuterai normalement sur CloudShell.
CloudShell est un environnement IDE qui peut être utilisé sur le cloud de Google, une sorte d'environnement de VM virtuelle avec un disque de 5 Go et un éditeur de code basé sur Theia peut également être utilisé.
Vous pouvez également éditer des fichiers cachés avec un éditeur
bash
$ cloudshell edit $HOME/.bashrc
Vous pouvez également le télécharger.
bash
$ cloudshell download $HOME/.bashrc
[CloudShell] https://cloud.google.com/shell/?hl=ja
Recommended Posts