Dieses Mal möchten wir das Scraping-Programm von previous in die Cloud stellen und automatisch ausführen. Stellen Sie jedoch zuerst das Test-PGM in die Cloud und lassen Sie es normal funktionieren. Ich werde es auf diesen Punkt bringen.
(1) Schaffen Sie das Zielmaterial vorerst erfolgreich vor Ort ab. (2) Verknüpfen Sie die Ergebnisse von lokal abgekratzt mit einer Google-Tabelle. (3) cron wird automatisch lokal ausgeführt. (4) Fordern Sie die kostenlose automatische Ausführung auf dem Cloud-Server heraus. (Google Compute Engine) (4) -1 Legen Sie das Test-PGM in die Cloud und führen Sie es normal auf CloudShell aus. ← Jetzt hier </ font> (4) -2 Fügen Sie das Scraping-PGM zum Repository hinzu und führen Sie es normal in CloudShell aus. (4) -3 Erstellen Sie eine VM-Instanz von ComputeEngine und führen Sie das Scraping automatisch aus. (5) Fordern Sie die kostenlose automatische Ausführung ohne Server in der Cloud heraus. (Vielleicht Cloud-Funktionen + Cloud Scheduler)
(1) Erstellen Sie ein Git-Repository in GCP mit git (GitHub-Konto erforderlich) (2) Erstellen Sie lokal einen Klon (3) Fügen Sie das Programm, das Sie in GCP hochladen möchten, zum Index im lokalen Repository hinzu und schreiben Sie es fest (4) Zum Master auf GCP drücken
Wenn Sie das Gcloud SDK nicht installiert haben, installieren Sie es. Stellen Sie sicher, dass der Befehl gcloudl für das gewünschte Projekt festgelegt ist. (Legen Sie für ein neues Projekt das Projekt mit dem Befehl gcloud init fest.)
zsh
16:03:04 [~] % gcloud config list
[core]
account = [email protected]
disable_usage_reporting = False
project = my-hoge-app
Your active configuration is: [default]
Erstellen Sie ein neues Repository in 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.
So wird im Zielprojekt ein leeres Repository erstellt.
Erstellen Sie einen Klon des Repositorys, das Sie lokal in Cloud Source Repositories erstellt haben.
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].
Der Status, in dem die py-Datei im erstellten lokalen Repository gespeichert ist. (Sie können sehen, dass es sich um ein Git-Repository handelt.)
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
Fügen Sie die Datei mit dem Befehl git add zum Index hinzu Übertragen Sie mit dem Befehl git commit in das lokale Repository.
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 (Cloud Source Repositories).
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
Sie können sehen, dass Sie zusammen mit der Festschreibungsnachricht auf Master drücken konnten.
Testen wir es auf Cloud Shell auf GCP.
Wählen Sie das gewünschte Projekt aus und starten Sie Cloud Shell.
Das Terminal wird gestartet.
Klonen Sie das Git-Repository vom Master wie lokal.
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].
Es wurde geklont.
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
Überprüfen Sie den Pfad und die Version von Python. 3.8.5 ist in dieser Umgebung mit pyenv vorinstalliert.
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
Wie unten gezeigt, funktioniert es normalerweise unter CloudShell.
bash
cloudshell:09/25/20 03:02:50 ~/gce-cron-test $ python cron-test.py
2020/09/25 03:03:11 cron funktioniert!
cloudshell:09/25/20 03:03:12 ~/gce-cron-test $
Crontab funktionierte jedoch nicht. Die Cloud Shell-Umgebung scheint eine Umgebung zu sein, die nur interaktive interaktive Befehle akzeptiert. .. .. Nächstes Mal werde ich das Scraping-PGM zum Repository hinzufügen und es normal in CloudShell ausführen.
CloudShell ist eine IDE-Umgebung, die in der Google Cloud verwendet werden kann, eine Art virtuelle VM-Umgebung mit einer 5-GB-Festplatte und ein Theia-basierter Code-Editor.
Sie können versteckte Dateien auch mit einem Editor bearbeiten
bash
$ cloudshell edit $HOME/.bashrc
Sie können es auch herunterladen.
bash
$ cloudshell download $HOME/.bashrc
[CloudShell] https://cloud.google.com/shell/?hl=ja
Recommended Posts