[JAVA] Une histoire liée à Google Cloud Storage avec un peu d'ingéniosité

Cet article est l'article du 9ème jour du Web Crew Advent Calendar 2017. Hier était le "Comment mettre en œuvre la notification push WEB" de @ kadota.

Contexte

J'avais besoin de me lier à Google Cloud Storage (GCS) dans une application Java (Java 6) fonctionnant sur CentOS 5 fonctionnant en tant que serveur d'applications. Je l'ai réalisé de manière légèrement acrobatique, j'ai donc écrit cet article.

Méthode de coopération générale

Une façon courante de travailler avec des applications Java consiste à utiliser la bibliothèque cliente Google Cloud pour Java pour travailler avec GCS. Lorsque nous avons mis en œuvre une fonction nécessitant l'intégration de GCS dans une autre application, nous avons utilisé la bibliothèque cliente Google Cloud pour Java pour l'intégrer à GCS.

Cependant, la bibliothèque cliente Google Cloud pour Java nécessite un environnement d'exécution Java 7 ou supérieur. Cette fois, la version Java de l'application liée était Java 6, une autre méthode était donc nécessaire.

Méthode de coopération adoptée

** Installez CLOUD SDK sur CentOS5 et exécutez la commande CLOUD SDK par appel externe de Java **

Installation du SDK CLOUD sur Cent OS 5

La procédure d'installation du SDK CLOUD pour Cent OS 5 est divisée en gros comme suit.

  1. Installez Python 2.7
  2. Installez le SDK CLOUD

J'expliquerai chacun d'eux en fonction des points à noter.

Installer Python 2.7

Le SDK CLOUD nécessite l'installation de Python 2.7. La version Python par défaut pour Cent OS 5 est 2.4. Je vais donc commencer par mettre à jour Python.

point important

** Vous devriez penser que vous ne pouvez pas mettre à jour Python en utilisant yum sur Cent OS 5 ** ** Vous devriez penser que vous ne pouvez pas mettre à jour Python en utilisant yum sur Cent OS 5 ** ** Vous devriez penser que vous ne pouvez pas mettre à jour Python en utilisant yum sur Cent OS 5 **

Je l'ai dit trois fois parce que c'est important.

Si vous recherchez "centos python update" sur google teacher, la méthode utilisant yum peut être utilisée, mais il est préférable de penser que la mise à jour Python à l'aide du référentiel yum n'est pas possible dans Cent OS 5.

Le référentiel officiel yum pour Cent OS 5 est EOL et Même si vous remplacez le référentiel par un site miroir, vous pouvez utiliser yum install comme centos-release-scl-rh (Software Collections for CentOS).

Visons la mise à jour en décompressant régulièrement le fichier compressé.

Procédure réelle

  1. Téléchargez et décompressez le fichier compressé

    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. Installez Python

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

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

Installation du SDK CLOUD

  1. Téléchargez et décompressez le fichier compressé

    cd /usr/local
    
  1. Installez le SDK CLOUD

    ./google-cloud-sdk/install.sh
    
  1. Confirmez l'installation du SDK CLOUD

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

Appels externes dans les applications Java

Après avoir installé le SDK CLOUD sur le serveur d'applications, exécutez la commande SDK par appel externe dans l'application Java.

Cette section décrit la procédure de téléchargement de fichiers du serveur d'applications vers GCS.

  1. Accorder l'approbation par gcloud auth
  2. Téléchargement du serveur d'applications vers GCS avec gsutil

Source Java réelle

  1. Accorder l'approbation par gcloud auth

L'approbation est accordée à l'aide d'un compte de service Consultez Autorisation de l'outil du SDK Cloud pour plus d'informations.

```java
ProcessBuilder pb = new ProcessBuilder({"/usr/local/google-cloud-sdk/bin/gcloud", "auth", "activate-service-account", "--key-file", "[Fichier de clé de compte de service]"});
process =pb.start();
processRes = process.waitFor();
//Effectuer la gestion des erreurs en fonction du résultat de processRes
```
  1. Téléchargement du serveur d'applications vers GCS avec gsutil

    ProcessBuilder pb = new ProcessBuilder({"/usr/local/google-cloud-sdk/bin/gsutil","mv","[Télécharger le chemin du fichier]","[Importer l'URL du bucket GCS de destination]"});
    process =pb.start();
    processRes = process.waitFor();
    //Effectuer la gestion des erreurs en fonction du résultat de processRes
    

Conclusion

Commençant par une légère panique de "intégration GCS sans utiliser la bibliothèque cliente Google Cloud pour Java!? Que dois-je faire !!", "CentOS 5, Python par défaut est 2.4!? Que dois-je faire !!", "yum ne peut pas être utilisé!" Il y a eu de nombreux cas tels que "Que dois-je faire !!" et "Je ne connais pas le jugement de succès de l'appel externe de la commande SDK!? Que dois-je faire !!", mais en conséquence, j'ai visité divers sites et reçu des conseils de mon patron. J'ai pu le mettre en œuvre fermement. Évidemment, il est important de ne pas arrêter de penser parce que vous ne pouvez pas le faire, mais d'essayer l'approche du «alors». Ce cas n'est peut-être pas très courant, mais j'espère que vous vous habituerez à aider quelqu'un qui a des problèmes avec un phénomène similaire.

Demain, c'est @ t-itou. Je vous remercie.

finalement

L'équipe Web est toujours à la recherche de personnes avec qui travailler. N'hésitez pas à entrer.

Recrutement d'ingénieurs de développement Recrutement d'ingénieurs front-end Recrutement d'ingénieurs de bases de données

Recommended Posts

Une histoire liée à Google Cloud Storage avec un peu d'ingéniosité
[GCP] Exploitez Google Cloud Storage avec Python
Utilisation de Google Cloud Storage (GCS) par "GAE / Py"
Un peu coincé dans le chainer
Copier des données d'Amazon S3 vers Google Cloud Storage avec Python (boto)
Reconnaissance vocale en streaming avec l'API Google Cloud Speech
Une histoire reliant Slack et la feuille de calcul Google
Une histoire sur l'apprentissage automatique avec Kyasuket
Essayez d'utiliser Python avec Google Cloud Functions
Créez un classificateur en cascade avec Google Colaboratory
Programme de livre de mots anglais lié à des documents Google
Obtenir la liste des objets Google Cloud Storage en Java
Transcription vocale automatique avec l'API Google Cloud Speech
Une histoire sur la gestion des données binaires en Python
Une histoire sur l'implémentation d'un écran de connexion avec django
Planification des tâches un peu avancée avec AP Schuler
Une histoire remplie de valeurs absolues de numpy.ndarray
Une histoire sur une erreur lors du chargement d'un modèle TensorFlow créé avec Google Colab localement