J'utilise la fonction cloud pour déployer une fonction python (version=3.7, memory=1go et timeout=1s).

Jusqu'à présent, cela fonctionne parfaitement.

Cependant, j'ai remarqué que, par défaut, la fonction cloud a sa région définie sur us-central1. J'ai besoin que ma fonction soit dans europe-west1 donc j'ai changé la région (https : //cloud.google.com/functions/docs/locations) en utilisant

gcloud function deploy .... --region europe-west1

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code. Error message: Error: function load attempt timed out

Je ne comprends pas pourquoi cela fonctionne avec us-central1 et non europe-west1.

Des idées ?

Merci pour votre aide !

MODIFIER :

Merci Renaud et Pablo

Des fautes de frappe étaient dans mon message, mais je pense que j'ai reçu la bonne commande. C'est ici :

gcloud functions deploy my_test --entry-point my_test_1 --runtime python37 --memory 1024MB --region=europe-west1 --trigger-http

Et j'ai toujours le même message d'erreur.

Mais ça

gcloud functions deploy my_test --entry-point my_test_1 --runtime python37 --memory 1024MB --trigger-http

Fonctionne bien.

J'espère que quelqu'un a une idée :) Merci !

2
azertyuiop 15 mars 2019 à 14:00

2 réponses

Meilleure réponse

Mise à jour suite à votre mise à jour (et à la réponse de Pablo Almécija Rodríguez) :

Vous devez suivre cette doc (c'est-à-dire la "référence complète pour le deploy command") et ajoutez = lorsque cela est nécessaire, comme détaillé dans la doc :

gcloud functions deploy (NAME : --region=REGION) [--entry- point=ENTRY_POINT] [--memory=MEMORY] [--retry]
[--runtime=RUNTIME] [--service-account=SERVICE_ACCOUNT]
[--source=SOURCE] [--stage-bucket=STAGE_BUCKET] [--timeout=TIMEOUT]
[--update-labels=[KEY=VALUE,…]] [--clear-env-vars     |
--env-vars-file=FILE_PATH     | --set-env-vars=[KEY=VALUE,…]     | --remove-env-vars=[KEY,…] --update-env-vars=[KEY=VALUE,…]] [--clear-labels     | --remove-labels=[KEY,…]]
[--trigger-bucket=TRIGGER_BUCKET     | --trigger-http     |
--trigger-topic=TRIGGER_TOPIC     | --trigger-event=EVENT_TYPE --trigger-resource=RESOURCE] [GCLOUD_WIDE_FLAG …]

Vous devez donc faire:

gcloud functions deploy my_test --entry-point=my_test_1 --runtime=python37 --memory=1024MB --timeout=1s --region=europe-west1 --trigger-http
2
Renaud Tarnec 15 mars 2019 à 13:08

Vous avez quelques fautes de frappe (et deux paramètres manquants au cas où vous déployez la fonction Cloud pour la première fois). Votre commande devrait ressembler à ceci :

gcloud functions deploy ... --region=europe-west1 [--trigger-http --runtime=python37]
               ^                    ^

Les derniers paramètres étaient un exemple de déclencheur et d'exécution (dans ce cas, vous utilisez les mêmes), car si c'est la première fois que vous déployez la fonction, vous devez spécifier le déclencheur souhaité et, idéalement, l'exécution également.

Comme Renaud l'a mentionné, voici la documentation sur les paramètres pour déployer Cloud Les fonctions.

0
Pablo Almécija Rodríguez 15 mars 2019 à 12:29