Eine Geschichte, die mit ein wenig Einfallsreichtum mit Google Cloud Storage verknüpft ist

Dieser Artikel ist der Artikel zum 9. Tag des Web Crew Adventskalenders 2017. Gestern war @ kadotas "Implementieren der WEB-Push-Benachrichtigung".

Hintergrund

Ich musste eine Verknüpfung mit Google Cloud Storage (GCS) in einer Java-Anwendung (Java 6) herstellen, die unter CentOS 5 als Anwendungsserver ausgeführt wird. Ich habe es auf leicht akrobatische Weise erkannt und diesen Artikel geschrieben.

Allgemeine Kooperationsmethode

Eine gängige Methode zum Arbeiten mit Java-Anwendungen ist die Verwendung der Google Cloud Client Library für Java für die Arbeit mit GCS. Als wir tatsächlich eine Funktion implementiert haben, die eine GCS-Integration in eine andere Anwendung erfordert, haben wir die Google Cloud Client Library für Java zur Integration in GCS verwendet.

Für die Google Cloud Client Library für Java ist jedoch eine Ausführungsumgebung mit Java 7 oder höher erforderlich. Dieses Mal war die Java-Version der verknüpften Anwendung Java 6, daher war eine andere Methode erforderlich.

Angenommene Kooperationsmethode

** Installieren Sie CLOUD SDK unter CentOS5 und führen Sie den Befehl CLOUD SDK durch externen Aufruf von Java aus **

Installieren des CLOUD SDK unter Cent OS 5

Das Verfahren zum Installieren des CLOUD SDK für Cent OS 5 ist grob wie folgt unterteilt.

  1. Installieren Sie Python 2.7
  2. Installieren Sie das CLOUD SDK

Ich werde jeden von ihnen anhand der zu beachtenden Punkte erklären.

Python 2.7 Installation

Für das CLOUD SDK muss Python 2.7 installiert sein. Die Standardversion von Python für Cent OS 5 ist 2.4. Also beginne ich mit einem Upgrade von Python.

wichtiger Punkt

** Sie sollten denken, dass Sie Python unter Cent OS 5 nicht mit yum aktualisieren können ** ** Sie sollten denken, dass Sie Python unter Cent OS 5 nicht mit yum aktualisieren können ** ** Sie sollten denken, dass Sie Python unter Cent OS 5 nicht mit yum aktualisieren können **

Ich habe es dreimal gesagt, weil es wichtig ist.

Wenn Sie in Google Teacher nach "Centos Python Update" suchen, wird die Methode mit yum möglicherweise getroffen. Es ist jedoch besser zu glauben, dass Python Update mit yum Repository in Cent OS 5 nicht möglich ist.

Das offizielle Yum-Repository für Cent OS 5 ist EOL und Selbst wenn Sie das Repository durch eine Spiegel-Site ersetzen, können Sie eine yum-Installation wie "centos-release-scl-rh (Software-Sammlungen für CentOS)" verwenden.

Lassen Sie uns das Update anstreben, indem wir es kontinuierlich aus der komprimierten Datei dekomprimieren.

Tatsächliches Verfahren

  1. Laden Sie die komprimierte Datei herunter und entpacken Sie sie

    wget --no-check-certificate  https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
    tar xvzf Python-2.7.9.tgz
    
  2. Installieren Sie Python

    cd Python-2.7.9
    ./configure --prefix=/usr/local
    make
    make altinstall
    
  3. Python-Ersatz

    mv /usr/bin/python /usr/bin/python_bk
    

Installieren des CLOUD SDK

  1. Laden Sie die komprimierte Datei herunter und entpacken Sie sie

    cd /usr/local
    
  1. Installieren Sie das CLOUD SDK

    ./google-cloud-sdk/install.sh
    
  1. Bestätigen Sie die Installation des CLOUD SDK

    /usr/local/google-cloud-sdk/bin/gcloud --help
    

Externe Aufrufe in Java-Anwendungen

Führen Sie nach der Installation des CLOUD SDK auf dem Anwendungsserver den Befehl SDK durch externen Aufruf in der Java-Anwendung aus.

In diesem Abschnitt wird das Verfahren zum Hochladen von Dateien vom Anwendungsserver auf GCS beschrieben.

  1. Erteilen Sie die Genehmigung durch gcloud auth
  2. Laden Sie mit gsutil vom Anwendungsserver auf GCS hoch

Tatsächliche Java-Quelle

  1. Erteilen Sie die Genehmigung durch gcloud auth

Die Genehmigung wird über ein Dienstkonto erteilt Weitere Informationen finden Sie unter Autorisierung des Cloud SDK-Tools.

```java
ProcessBuilder pb = new ProcessBuilder({"/usr/local/google-cloud-sdk/bin/gcloud", "auth", "activate-service-account", "--key-file", "[Dienstkonto-Schlüsseldatei]"});
process =pb.start();
processRes = process.waitFor();
//Führen Sie die Fehlerbehandlung abhängig vom Ergebnis von processRes durch
```
  1. Laden Sie mit gsutil vom Anwendungsserver auf GCS hoch

    ProcessBuilder pb = new ProcessBuilder({"/usr/local/google-cloud-sdk/bin/gsutil","mv","[Dateipfad hochladen]","[Laden Sie die GCS-Bucket-URL des Ziels hoch]"});
    process =pb.start();
    processRes = process.waitFor();
    //Führen Sie die Fehlerbehandlung abhängig vom Ergebnis von processRes durch
    

Fazit

Es begann mit einer leichten Panik über "GCS-Zusammenarbeit ohne Verwendung der Google Cloud Client Library für Java !? Was soll ich tun !!", "CentOS 5, Standard-Python ist 2.4 !? Was soll ich tun !!", "Ich kann yum nicht verwenden!" Es gab viele Fälle wie "Was soll ich tun !!" und "Ich kenne das Erfolgsurteil des externen Aufrufs des SDK-Befehls nicht !? Was soll ich tun !!", aber als Ergebnis besuchte ich verschiedene Websites und erhielt Ratschläge von meinem Chef. Ich konnte es fest umsetzen. Natürlich ist es wichtig, nicht aufzuhören zu denken, weil man es nicht kann, sondern einen solchen Ansatz zu versuchen. Dieser Fall ist vielleicht nicht sehr häufig, aber ich hoffe, Sie gewöhnen sich daran, jemandem zu helfen, der Probleme mit einem ähnlichen Phänomen hat.

Morgen ist @ t-itou. Vielen Dank.

Schließlich

Das Web-Team ist immer auf der Suche nach Mitarbeitern. Bitte zögern Sie nicht einzutreten.

Rekrutierung von Entwicklungsingenieuren Rekrutierung von Front-End-Ingenieuren Rekrutierung von Datenbankingenieuren

Recommended Posts

Eine Geschichte, die mit ein wenig Einfallsreichtum mit Google Cloud Storage verknüpft ist
[GCP] Betreiben Sie Google Cloud Storage mit Python
Nutzung von Google Cloud Storage (GCS) durch "GAE / Py"
Ein bisschen im Kettenschiff stecken
Kopieren Sie Daten von Amazon S3 mit Python (boto) in Google Cloud Storage.
Streaming-Spracherkennung mit der Google Cloud Speech API
Eine Geschichte, die Slack und Google Spreadsheet verbindet
Eine Geschichte über maschinelles Lernen mit Kyasuket
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Englisches Wortbuchprogramm, das mit Google-Dokumenten verknüpft ist
Abrufen der Google Cloud Storage-Objektliste in Java
Automatische Sprachtranskription mit Google Cloud Speech API
Eine Geschichte über den Umgang mit Binärdaten in Python
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
Die Jobplanung ist bei AP Schuler etwas fortgeschritten
Eine Geschichte voller absoluter Werte von numpy.ndarray
Eine Geschichte über einen Fehler beim Laden eines TensorFlow-Modells, das lokal mit Google Colab erstellt wurde