Problèmes d'appel de fonctions
Découvrez comment résoudre les problèmes lors de l'appel de fonctions déployées dans le service des fonctions pour OCI.
Vous pourriez rencontrer ces problèmes lors de l'appel de fonctions déployées dans le service des fonctions pour OCI.
L'appel d'une fonction retourne un message FunctionInvokeRequestContentTooLarge et une erreur 413
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeRequestContentTooLarge","message":"Request content too large"}
Fn: Error invoking function. status: 413 message: Request content too large
Le message indique que le contenu de la demande au service des fonctions pour OCI dépasse la taille maximale autorisée de 6 Mo.
Si cette erreur s'affiche, vérifiez que le contenu de la demande ne dépasse pas la taille maximale autorisée.
L'appel d'une fonction retourne un message TooManyRequests et une erreur 429
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"TooManyRequests","message":"User-rate limit exceeded"}
Fn: Error invoking function. status: 429 message: User-rate limit exceeded
Le message indique que le service des fonctions pour OCI traite déjà le nombre maximal de demandes autorisées pour votre location et ne peut pas accepter une autre demande.
Pour plus d'informations sur l'anticipation proactive et l'évitement de cette erreur, voir Surveillance de l'utilisation et de la disponibilité de la mémoire pour le service des fonctions pour OCI.
Si vous voyez cette erreur, attendez quelques minutes avant d'appeler à nouveau la fonction. Sinon, ou si le problème persiste, communiquez avec nous pour augmenter la mémoire totale pour l'exécution de la fonction concurrente.
L'appel d'une fonction entraîne le signalement d'une temporisation par le client, et une erreur 444 est affichée dans les journaux de la fonction
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, le client peut signaler une temporisation.
Examinez plus avant en vérifiant les journaux de la fonction (voir Stockage et consultation des journaux de fonction). Si les journaux contiennent un message de statut 444, la connexion entre le client et le service des fonctions pour OCI a été interrompue lors de l'exécution de la fonction. Si vous voyez un message d'état 444 dans les journaux de la fonction, appelez de nouveau la fonction.
Notez que la façon dont vous appelez une fonction détermine également la durée maximale d'exécution de la fonction. Pour plus d'informations, voir Appel de fonctions.
L'appel d'une fonction retourne un message d'échec de fonction et une erreur 502
En cas de problème avec le code d'une fonction, l'erreur suivante s'affiche lors de l'appel de la fonction :
Fn: Error invoking function. status: 502 message: Function failed
Pour examiner le problème avec le code de la fonction, vérifiez les journaux générés par la fonction. Le service de journalisation pour Oracle Cloud Infrastructure est l'option par défaut recommandée pour l'accès, la recherche et le stockage des journaux de fonction. Notez que pour stocker et consulter les journaux d'une fonction, la fonction doit inclure des énoncés d'impression. Pour plus d'informations, voir Stockage et consultation des journaux de fonction.
L'appel d'une fonction retourne un message FunctionInvokeSyslogUnavailable et une erreur de type 502
OCI Functions vous permet d'envoyer les journaux d'une fonction vers une destination de journalisation externe (telle que Papertrail) en définissant une URL syslog pour l'application. Voir Stockage et consultation des journaux de fonction.
Si l'URL syslog n'est pas valide ou est inaccessible, l'erreur suivante s'affiche lorsque vous appelez la fonction :
{"code":"FunctionInvokeSyslogUnavailable","message":"Syslog endpoint unavailable"}
Fn: Error invoking function. status: 502 message: Syslog endpoint unavailable
Pour confirmer que l'URL de destination de la journalisation externe est la cause de l'erreur :
- Mettez à jour l'application afin d'annuler la définition de l'URL syslog à l'aide de l'interface de ligne de commande Fn Project. Par exemple, en entrant :
fn update app helloworld-app --syslog-url ''
- Déployez la fonction à exécuter. Voir Création et déploiement de fonctions.
- Appelez la fonction. Voir Appel de fonctions.
Si la fonction est exécutée avec succès, l'URL de destination de la journalisation externe est inaccessible à partir du sous-réseau dans lequel la fonction est en cours d'exécution. Vérifiez que :
- L'URL de destination de la journalisation externe est valide.
- L'URL de la destination de la journalisation externe est accessible publiquement.
- Le sous-réseau dans lequel la fonction s'exécute comporte un accès sortant vers l'Internet public.
L'appel d'une fonction retourne un message FunctionInvokeImageNotAvailable et une erreur de type 502
Lorsque vous appelez une fonction, le service des fonctions pour OCI extrait l'image correspondante d'Oracle Cloud Infrastructure Registry à l'aide du VCN et des sous-réseaux spécifiés pour l'application.
Si le service des fonctions pour OCI ne peut pas extraire l'image, le message suivant est retourné lorsque vous appelez une fonction :
{"code":"FunctionInvokeImageNotAvailable","message":"Failed to pull function image"}
Fn: Error invoking function. status: 502 message: Failed to pull function image
Solutions possibles :
- Vérifiez que l'image spécifiée pour la fonction existe toujours à l'emplacement spécifié dans Oracle Cloud Infrastructure Registry.
- Vérifiez qu'Oracle Cloud Infrastructure est disponible (ce message est retourné si Oracle Cloud Infrastructure n'est pas disponible, ce qui est inattendu).
-
Vérifiez que le VCN inclut une passerelle Internet ou une passerelle de service. Pour que le service des fonctions pour OCI puisse accéder à Oracle Cloud Infrastructure Registry pour extraire une image, le VCN doit inclure une passerelle Internet ou une passerelle de service, comme suit :
- Si des sous-réseaux publics ont été spécifiés pour l'application, le VCN doit également inclure une passerelle Internet. Une table de routage doit inclure une règle de routage qui cible la passerelle Internet, avec sa propriété de bloc CIDR de destination réglée à 0.0.0.0/0. Une liste de sécurité doit inclure une règle de trafic sortant avec état qui permet l'accès à Oracle Cloud Infrastructure Registry (par exemple, avec sa propriété Type de destination réglée à
Service
, sa propriété Service de destination réglée àAll <region> services In Oracle Services Network
et sa propriété Protocole IP réglée àAll
). - Si des sous-réseaux privés ont été spécifiés pour l'application, le VCN doit également inclure une passerelle de service. La passerelle de service doit être configurée pour autoriser l'accès à
All <region> Services In Oracle Services Network
. Une table de routage doit inclure une règle de routage qui cible la passerelle de service, avec sa propriété de service de destination réglée àAll <region> Services In Oracle Services Network
. Une liste de sécurité doit inclure une règle de trafic sortant avec état qui permet l'accès à Oracle Cloud Infrastructure Registry (par exemple, avec sa propriété Type de destination réglée àService
, sa propriété Service de destination réglée àAll <region> services In Oracle Services Network
et sa propriété Protocole IP réglée àAll
).
Si aucune passerelle Internet ou passerelle de service n'a été définie pour le VCN, définissez-en une maintenant.
- Si des sous-réseaux publics ont été spécifiés pour l'application, le VCN doit également inclure une passerelle Internet. Une table de routage doit inclure une règle de routage qui cible la passerelle Internet, avec sa propriété de bloc CIDR de destination réglée à 0.0.0.0/0. Une liste de sécurité doit inclure une règle de trafic sortant avec état qui permet l'accès à Oracle Cloud Infrastructure Registry (par exemple, avec sa propriété Type de destination réglée à
L'appel d'une fonction retourne un message FunctionInvokeSubnetOutOfIPs et une erreur de type 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeSubnetOutOfIPs","message":"subnet ocid1.subnet.oc1.phx.aaaaaaaac... is out of IPs"}
Fn: Error invoking function. status: 502 message: subnet ocid1.subnet.oc1.phx.aaaaaaaac... is out of IPs
Si cette erreur s'affiche, vérifiez que chaque sous-réseau dans le VCN comporte au moins le nombre minimal d'adresses IP libres requis sous Création du VCN et des sous-réseaux à utiliser avec le service des fonctions pour OCI, s'ils n'existent pas déjà.
L'appel d'une fonction retourne un message FunctionInvokeSubnetNotAvailable et une erreur de type 502 (en raison d'un problème de sous-réseau)
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeSubnetNotAvailable","message":"subnet ocid1.subnet.oc1.phx.aaaaaaaac... does not exist or Oracle Functions is not authorized to use it"}
Fn: Error invoking function. status: 502 message: subnet ocid1.subnet.oc1.phx.aaaaaaaac... does not exist or Oracle Functions is not authorized to use it
Si cette erreur s'affiche, vérifiez que le sous-réseau spécifié pour l'application existe toujours.
L'appel d'une fonction retourne un message FunctionInvokeSubnetNotAvailable et une erreur de type 502 (en raison d'un problème d'options DHCP)
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeSubnetNotAvailable","message":"dhcp options ocid1.dhcpoptions.oc1.phx.aaaaaaaac... does not exist or Oracle Functions is not authorized to use it"}
Fn: Error invoking function. status: 502 message: dhcp options ocid1.dhcpoptions.oc1.phx.aaaaaaaac... does not exist or Oracle Functions is not authorized to use it
Si vous voyez cette erreur, vérifiez que le jeu d'options DHCP dans le VCN spécifié pour l'application existe toujours.
L'appel d'une fonction retourne un message FunctionInvokeResponseBodyTooLarge et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeResponseBodyTooLarge","message":"function response body too large"}
Fn: Error invoking function. status: 502 message: function response body too large
Le message indique que la réponse retournée par l'exécution de la fonction dépasse la taille maximale autorisée de 6 Mo.
Si vous voyez cette erreur, vérifiez le code de la fonction et réduisez la taille des réponses renvoyées par la fonction.
L'appel d'une fonction retourne un message FunctionInvokeResponseHeaderTooLarge et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeResponseHeaderTooLarge","message":"function response header too large"}
Fn: Error invoking function. status: 502 message: function response body too large
Le message indique que l'en-tête de réponse retourné par l'exécution de la fonction dépasse la taille maximale autorisée.
Si vous voyez cette erreur, vérifiez le code de la fonction et réduisez le nombre et/ou la taille des en-têtes personnalisés retournés par la fonction.
L'appel d'une fonction retourne un message FunctionInvokeTooManyMatchingDGs et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":" FunctionInvokeTooManyMatchingDGs","message":"Unable to get resource authorization token due to Function resource matching too many Dynamic Groups. Update your Dynamic Groups' matching rules"}
Fn: Error invoking function. status: 502 message: Unable to get resource authorization token due to Function resource matching too many Dynamic Groups. Update your Dynamic Groups' matching rules
Le message indique que la fonction appartient à plus de groupes dynamiques que le nombre maximal pris en charge.
Si vous voyez cette erreur, réduisez le nombre de groupes dynamiques auxquels la fonction appartient en mettant à jour les règles de correspondance des groupes dynamiques. Pour connaître le nombre maximal de groupes dynamiques auxquels une fonction peut appartenir, voir Limites des groupes dynamiques (la limite affichée pour une seule instance de calcul s'applique également à une fonction).
L'appel d'une fonction retourne un message FunctionInvokeExecutionError et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeExecutionError","message":"error receiving function response"}
Fn: Error invoking function. status: 502 message: error receiving function response
Le message indique que la réponse de l'exécution de la fonction retourne une erreur.
Si vous voyez cette erreur de manière inattendue, vérifiez le code de la fonction pour comprendre les conditions dans lesquelles la fonction ne s'exécute pas correctement.
L'appel d'une fonction retourne un message FunctionInvokeExecutionFailed et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeExecutionFailed","message":"function failed"}
Fn: Error invoking function. status: 502 message: function failed
Le message indique qu'une erreur a été détectée lors de l'exécution de la fonction, qui a probablement été causée par un bogue dans le code de la fonction.
Si vous voyez cette erreur, vérifiez le code de la fonction et corrigez les bogues que vous trouvez.
L'appel d'une fonction retourne un message FunctionInvokeInvalidResponse et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeInvalidResponse","message":"invalid function response"}
Fn: Error invoking function. status: 502 message: invalid function response
Le message indique que l'appel de la fonction retourne un code de réponse HTTP non valide (ni échec de la fonction ni temporisation).
Si vous voyez cette erreur, vérifiez le code de la fonction et corrigez les bogues que vous trouvez.
L'appel d'une fonction retourne un message FunctionInvokeSubnetConfigError et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeSubnetConfigError","message":"Customer subnet DNS resolver error. Please fix the subnet configuration and try again"}
Fn: Error invoking function. status: 502 message: Customer subnet DNS resolver error. Please fix the subnet configuration and try again
Le message indique un problème de configuration du VCN, probablement lié à la configuration du résolveur personnalisé.
Si cette erreur s'affiche, identifiez tout sous-réseau du VCN qui utilise un résolveur personnalisé. Lorsqu'un sous-réseau utilise un résolveur personnalisé (par exemple, situé sur Internet, dans le VCN ou sur votre réseau sur place), confirmez que le résolveur personnalisé est accessible. Vérifiez également que le résolveur personnalisé fonctionne correctement. Pour plus d'informations sur les résolveurs personnalisés, voir DNS dans votre réseau en nuage virtuel.
Si l'erreur persiste, vérifiez que la configuration du VCN (et la configuration du résolveur personnalisé, le cas échéant) est correcte en appelant une nouvelle fonction Hello World exécutée dans un nouveau VCN :
- Créez un nouveau VCN à l'aide de l'assistant VCN (sélectionnez VCN avec connectivité Internet).
- Créez une ressource d'options DHCP et spécifiez les mêmes options DNS qu'auparavant (si un résolveur personnalisé a été utilisé précédemment, sélectionnez Résolveur personnalisé).
- Créez un sous-réseau dans le VCN et sélectionnez la ressource Options DHCP que vous venez de créer.
- Créez une application, en spécifiant le VCN et le sous-réseau que vous venez de créer.
- Créez une simple fonction Hello World dans l'application que vous venez de créer.
- Confirmez que vous pouvez appeler la nouvelle fonction hello world avec succès.
Si le problème persiste, communiquez avec nous pour vous aider à résoudre le problème de configuration du VCN.
L'appel d'une fonction retourne le message "La taille non compressée combinée de toutes les images de fonction dans une application a dépassé la limite allouée...." et une erreur 502
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, l'image de la fonction est extraite du registre Docker. Selon la taille de l'image et la taille des images pour d'autres fonctions de l'application, un message similaire à ce qui suit peut s'afficher :
Fn: Error invoking function. status: 502 message: The combined uncompressed size of all Function images in an application has exceeded the allowed limit. Please reduce the size of the images or number of functions from the application.
Ce message indique que l'extraction de l'image de la fonction a augmenté la taille totale non compressée de toutes les images pour les fonctions de l'application au-delà de la limite maximale autorisée.
Si vous voyez cette erreur :
- Utilisez des techniques standard pour réduire la taille de l'image de la fonction et/ou la taille des images pour d'autres fonctions de l'application.
- Réduisez le nombre de fonctions dans l'application.
L'appel d'une fonction retourne un message FunctionInvokeServiceUnavailable et une erreur 503
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeServiceUnavailable","message":"Timed out - server too busy"}
Fn: Error invoking function. status: 503 message: Timed out - server too busy
Le message indique que le service des fonctions pour OCI ne peut pas traiter la demande actuellement, peut-être en raison d'une capacité insuffisante. La détection de ce message d'erreur à plusieurs reprises n'est pas rare, car l'augmentation de la capacité du service des fonctions pour OCI peut prendre un certain temps pour répondre à la demande provenant des appels de fonction.
Si cette erreur s'affiche, réessayez d'appeler la fonction. Ne vous inquiétez pas si le message réapparaît. Continuez à réessayer d'appeler la fonction, en laissant une courte période entre les tentatives d'appel.
Notez ce qui suit :
- Si vous continuez à voir cette erreur, envisagez d'augmenter l'intervalle de temps entre les appels de fonction (peut-être en utilisant une technique standard telle qu'un backoff exponentiel gigue pour ajouter un degré d'aléatoire à l'intervalle).
- Si le message s'affiche lorsqu'une fonction est appelée à la suite d'une action déclenchée par un événement, des tentatives supplémentaires d'appel de la fonction sont relancées automatiquement jusqu'à ce qu'elle soit appelée avec succès. Aucune intervention de votre part n'est nécessaire.
- Si vous configurez des alarmes déclenchées par des réponses d'erreur de fonction contenant 503 codes d'erreur, vous pouvez voir plusieurs avis pour lesquels aucune intervention de votre part n'est requise
- Si le message continue d'apparaître après une longue période, Communiquez avec nous pour obtenir de l'aide.
L'appel d'une fonction retourne un message d'erreur FunctionInvokeContainerInitFail, une erreur 504 et un message de journal 'ModuleNotFoundError : Aucun module nommé 'contextvars'
Lorsque vous appelez une fonction Python 3.6 que vous avez déployée dans le service des fonctions pour OCI, vous pourriez voir le message d'erreur suivant :
{"code":"FunctionInvokeContainerInitFail","message":"Container failed to initialize, please ensure you are using the latest fdk and check the logs"}
Fn: Error invoking function. status: 504 message: Container failed to initialize, please ensure you are using the latest fdk and check the logs
Si vous voyez cette erreur, vérifiez les journaux de la fonction. Si vous voyez un message "ModuleNotFoundError: No module named 'contextvars'
dans les journaux de la fonction :
- Ajoutez la ligne suivante au fichier requirements.txt de la fonction :
fdk>=0.1.21
- Redéployez la fonction dans le service des fonctions pour OCI.
- Appelez à nouveau la fonction.
L'appel d'une fonction retourne des messages FunctionInvokeContainerInitFail et Container initialization timed out, et une erreur de type 504
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, l'exécution de la fonction est soumise à un seuil de mémoire maximal. Si cette limite est dépassée, l'exécution de la fonction s'arrête; le message d'erreur suivant est retourné :
{"code":"FunctionInvokeContainerInitFail","message":"Container failed to initialize, please ensure you are using the latest fdk and check the logs"}
Fn: Error invoking function. status: 504 message: Container failed to initialize, please ensure you are using the latest fdk and check the logs
Si vous voyez cette erreur, augmentez le seuil de mémoire maximum de la fonction. Par exemple, jusqu'à 256 Mo, 512 Mo, 1024 Mo, 2048 Mo ou 3072 Mo. Voir Modification des paramètres de mémoire et de temporisation par défaut pour obtenir des valeurs valides pour le seuil de mémoire maximal.
Par exemple, pour régler le seuil de mémoire maximum d'une fonction à 256 Mo :
- Sélectionnez Modifier dans la page des détails de la fonction dans la console, puis sélectionnez 256 dans la liste déroulante Mémoire (en Mo).
-
Ajoutez la ligne suivante au fichier func.yaml de la fonction. Cela définira le seuil de mémoire maximal à 256 Mo chaque fois que la fonction sera appelée :
memory: 256
Notez que si vous modifiez le fichier func.yaml, vous devez déployer de nouveau la fonction dans le service des fonctions pour OCI avant de l'appeler de nouveau.
Il est conseillé d'utiliser la dernière version de l'interface de ligne de commande Fn Project lors de la création d'une fonction Python helloworld. Lorsque vous entrez la commande fn init --runtime python <function-name>
pour créer la fonction helloworld, la ligne memory: 256
est ajoutée au fichier func.yaml automatiquement.
L'appel d'une fonction retourne un message FunctionInvokeTimeout et une erreur de type 504
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, elle ne peut être exécutée que pendant un certain temps. Si cette limite de temps est dépassée, l'exécution de la fonction s'arrête; le message d'erreur suivant est retourné :
{"code":"FunctionInvokeTimeout","message":"Timed out"}
Fn: Error invoking function. status: 504 message: Timed out
Si cette erreur s'affiche, essayez d'augmenter la durée maximale d'exécution de la fonction dans la définition de la fonction. Par exemple, pour régler la durée maximale à 300 secondes, effectuez l'une des actions suivantes :
- Sélectionnez Modifier dans la page des détails de la fonction dans la console, puis entrez 300 dans le champ Délai d'attente (en secondes).
-
Ajoutez la ligne suivante au fichier func.yaml de la fonction. Cela définira la durée d'exécution maximale à 300 secondes chaque fois que la fonction sera appelée :
timeout: 300
N'oubliez pas que si vous modifiez le fichier func.yaml, vous devez déployer de nouveau la fonction dans le service des fonctions pour OCI avant de l'appeler de nouveau.
Notez que la façon dont vous appelez une fonction détermine également la durée maximale d'exécution de la fonction. Pour plus d'informations, voir Appel de fonctions.
Ce message d'erreur peut également s'afficher lorsqu'une fonction s'exécutant dans un sous-réseau public ne peut pas se connecter à une instance Oracle Autonomous Database pour laquelle les listes de contrôle d'accès (LCA) sont activées. Si tel est le cas, voir Connexion aux instances Oracle Autonomous Database à partir de fonctions en cours d'exécution pour plus d'informations sur :
- Configuration du sous-réseau pour envoyer tout le trafic Internet sortant à une passerelle NAT et pour autoriser le trafic Internet.
- Ajout de l'adresse IP publique de la passerelle NAT à la liste de contrôle d'accès de la base de données.
L'appel d'une fonction retourne un message FunctionInvokeContainerInitTimeout et une erreur 504
Lorsque vous appelez une fonction que vous avez déployée pour le service des fonctions pour OCI, l'image de la fonction est extraite du registre Docker et exécutée dans un conteneur. Selon les dépendances de la fonction, le démarrage du conteneur peut prendre un certain temps. Si le démarrage du conteneur prend trop de temps, le message d'erreur suivant peut s'afficher :
{"code":"FunctionInvokeContainerInitTimeout","message":"Container initialization timed out, please ensure you are using the latest fdk and check the logs"}
Fn: Error invoking function. status: 504 message: Container initialization timed out, please ensure you are using the latest fdk and check the logs
Si vous voyez cette erreur, augmentez le seuil de mémoire maximum de la fonction. Par exemple, jusqu'à 256 Mo, 512 Mo, 1024 Mo, 2048 Mo ou 3072 Mo. Voir Modification des paramètres de mémoire et de temporisation par défaut pour obtenir des valeurs valides pour le seuil de mémoire maximal.
Par exemple, pour régler le seuil de mémoire maximum d'une fonction à 256 Mo :
- Sélectionnez Modifier dans la page des détails de la fonction dans la console, puis sélectionnez 256 dans la liste déroulante Mémoire (en Mo).
-
Ajoutez la ligne suivante au fichier func.yaml de la fonction. Cela définira le seuil de mémoire maximal à 256 Mo chaque fois que la fonction sera appelée :
memory: 256
Notez que si vous modifiez le fichier func.yaml, vous devez déployer de nouveau la fonction dans le service des fonctions pour OCI avant de l'appeler de nouveau.
Il est conseillé d'utiliser la dernière version de l'interface de ligne de commande Fn Project lors de la création d'une fonction Python helloworld. Lorsque vous entrez la commande fn init --runtime python <function-name>
pour créer la fonction helloworld, la ligne memory: 256
est ajoutée au fichier func.yaml automatiquement.
L'appel d'une fonction retourne un message FunctionInvokeImagePullTimeout et une erreur 504
Lorsque vous appelez une fonction que vous avez déployée dans le service des fonctions pour OCI, l'image de la fonction est extraite du registre Docker. Selon la taille de l'image, l'extraction de l'image peut prendre un certain temps. Si l'extraction de l'image prend trop de temps, le message d'erreur suivant peut s'afficher :
{"code":"FunctionInvokeImagePullTimeout","message":"Image pull timed out"}
Fn: Error invoking function. status: 504 message: Image pull timed out
- Utilisez des techniques standard pour réduire la taille de l'image.
- Vérifiez que l'image spécifiée pour la fonction existe toujours à l'emplacement spécifié dans Oracle Cloud Infrastructure Registry.