Je voulais appeler une fonction qui n'est pas librairie dans le SDK Python de Cloud Functions, mais comme la commande gcloud n'est pas incluse dans Cloud Functions, j'ai dû appeler l'API Cloud directement (gcloud n'est pas installé sur le nœud de calcul sur lequel Cloud Functions s'exécute).
Si vous souhaitez appeler l'API Cloud à partir de Cloud Functions by REST, vous pouvez l'appeler en vous authentifiant comme suit.
def hello_world(request):
import google.auth
from google.auth.transport import requests
# Get the credentials and project ID from the environment.
credentials, project = google.auth.default(
scopes=['https://www.googleapis.com/auth/cloud-platform'])
# Create a requests Session object with the credentials.
session = requests.AuthorizedSession(credentials)
# Make an authenticated API request
response = session.get(
'https://www.googleapis.com/storage/v1/b'.format(project),
params={'project': project})
response.raise_for_status()
retrun response.text
Pour tester l'API seule, un formulaire de test est préparé, c'est donc pratique https://cloud.google.com/storage/docs/json_api/v1/buckets/list