1
votes

Puis-je fournir des commandes gcloud à l'intérieur de python dans la fonction de fonction cloud

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 ??.


1 commentaires

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.


3 Réponses :


1
votes

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


0 commentaires

0
votes

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).


0 commentaires

0
votes

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)


0 commentaires