Je veux exécuter la commande gs pour copier des données à l'aide de la fonction python dans la fonction cloud, est-il possible d'exécuter une commande shell dans la fonction cloud ??.
3 Réponses :
Selon la documentation officielle Cloud Functions Execution Environment :
Cloud Functions s'exécute dans un environnement entièrement géré et sans serveur où Google gère l'infrastructure, les systèmes d'exploitation et l'exécution environnements entièrement en votre nom. Chaque fonction cloud s'exécute dans son propre contexte d'exécution sécurisé isolé, évolue automatiquement et a un cycle de vie indépendant des autres fonctions.
Voici les environnements d'exécution pris en charge par les fonctions cloud:
Node.js 8, Node.js 10 (Beta), Python, Go 1.11, Go 1.13
Actuellement, il n'est pas possible d'exécuter des commandes shell dans une fonction Google Cloud. p >
Cependant, en supposant que vous souhaitiez copier des données vers ou depuis Cloud Storage, vous pouvez utiliser Bibliothèques clientes Cloud Storage pour Python
J'ai essayé d'utiliser le module subprocess pour voir s'il vous aide à réaliser ce que vous avez besoin? Je n'ai pas essayé cela moi-même, donc je ne peux pas être sûr que cela fonctionnera.
import subprocess subprocess.run(["ls", "-l"])
Vous pouvez également utiliser CloudRun pour exécuter image Docker avec gcloud sdk qui pourrait vous aider à exécuter des commandes shell directement (plutôt que de passer via python).
Pour interagir avec les API Google à partir d'une fonction Cloud (runtime Python), la commande shell n'est pas le choix idéal. Google Cloud Platform dispose de bibliothèques Python pour interagir avec son service et je vous les suggère.
Exemple de code Python pour lister les objets dans un Bucket GCS
from google.cloud import storage bucket_name = "gcs-bucket-name" gcs_client = storage.Client() gcs_objects = gcs_client.list_blobs(bucket_name) for obj in gcs_objects: print(obj.name)
Non, car Cloud Functions n'est pas un système d'exploitation. Cloud Functions fournit un cadre pour exécuter des
fonctions
bien définies et non des programmes entiers.