Problèmes lors de l'appel de fonctions
Découvrez comment résoudre les problèmes lors de l'appel de fonctions déployées vers OCI Functions.
Vous pouvez rencontrer ces problèmes lors de l'appel de fonctions déployées vers OCI Functions.
L'appel d'une fonction renvoie un message FunctionInvokeRequestContentTooLarge et une erreur 413
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 adressée à OCI Functions dépasse la taille maximale autorisée de 6 Mo.
Si cette erreur s'affiche, vérifiez à nouveau que le contenu de la demande ne dépasse pas la taille maximale autorisée.
L'appel d'une fonction renvoie un message TooManyRequests et une erreur 429
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"code":"TooManyRequests","message":"User-rate limit exceeded"}
Fn: Error invoking function. status: 429 message: User-rate limit exceeded
Le message indique qu'OCI Functions gère 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, reportez-vous à Surveillance de l'utilisation de la mémoire et de la disponibilité pour OCI Functions.
Si vous voyez cette erreur, attendez quelques minutes avant d'appeler à nouveau la fonction. Vous pouvez également, ou si le problème persiste, nous contacter pour augmenter la mémoire totale pour l'exécution simultanée de fonctions.
L'appel d'une fonction entraîne le signalement d'un délai d'expiration 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 vers OCI Functions, le client peut signaler un délai d'expiration.
Pour plus d'informations, consultez les journaux de la fonction (reportez-vous à Stockage et affichage des journaux de fonction). Si les journaux contiennent un message de statut 444, la connexion entre le client et OCI Functions a été interrompue lors de l'exécution de la fonction. Si vous voyez un message de statut 444 dans les journaux de la fonction, appelez à nouveau la fonction.
Notez que la façon dont vous appelez une fonction détermine également la durée maximale pendant laquelle la fonction peut être exécutée. Pour plus d'informations, reportez-vous à Appel de fonctions.
L'appel d'une fonction renvoie un message d'échec de fonction et une erreur 502
En cas de problème avec le code d'une fonction, l'erreur suivante apparaît lorsque vous appelez la fonction :
Fn: Error invoking function. status: 502 message: Function failed
Pour examiner le problème avec le code de la fonction, consultez les journaux générés par la fonction. Le service Oracle Cloud Infrastructure Logging est l'option par défaut et recommandée pour rechercher et stocker des journaux de fonction, ainsi que pour y accéder. Pour stocker et afficher les journaux d'une fonction, celle-ci doit inclure des instructions d'impression. Pour plus d'informations, reportez-vous à Stockage et affichage des journaux de fonction.
L'appel d'une fonction renvoie un message FunctionInvokeSyslogUnavailable et une erreur 502
OCI Functions vous permet d'envoyer les journaux d'une fonction à une destination de journalisation externe (comme Papertrail) en définissant une URL Syslog pour l'application. Reportez-vous à Stockage et affichage 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 vérifier que l'URL de la destination de journalisation externe est à l'origine de l'erreur, procédez comme suit :
- Mettez à jour l'application pour annuler la définition de l'URL Syslog à l'aide de l'interface de ligne de commande du projet Fn. Par exemple, entrez la commande suivante :
fn update app helloworld-app --syslog-url ''
- Déployez la fonction à exécuter. Reportez-vous à Création et déploiement de fonctions.
- Appelez la fonction. Reportez-vous à Appel de fonctions.
Si la fonction est exécutée correctement, l'URL de la destination de journalisation externe n'est pas accessible à partir du sous-réseau dans lequel la fonction est exécutée. Vérifiez les éléments suivants :
- L'URL de la destination de journalisation externe est valide.
- L'URL de la destination de journalisation externe est accessible publiquement.
- Le sous-réseau dans lequel la fonction est exécutée dispose d'un accès sortant au réseau Internet public.
L'appel d'une fonction renvoie un message FunctionInvokeImageNotAvailable et une erreur 502
Lorsque vous appelez une fonction, OCI Functions extrait l'image correspondante d'Oracle Cloud Infrastructure Registry à l'aide du VCN et des sous-réseaux indiqués pour l'application.
Si OCI Functions n'est pas en mesure d'extraire l'image, le message suivant est renvoyé lors de l'appel :
{"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 indiquée pour la fonction existe toujours à l'emplacement indiqué dans Oracle Cloud Infrastructure Registry.
- Vérifiez qu'Oracle Cloud Infrastructure est disponible (ce message est renvoyé si Oracle Cloud Infrastructure n'est pas disponible de manière inattendue).
-
Vérifiez que le réseau cloud virtuel inclut une passerelle Internet ou une passerelle de service. Pour qu'OCI Functions 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 vous avez indiqué des sous-réseaux publics pour l'application, le réseau cloud virtuel 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é Bloc CIDR de destination définie sur 0.0.0.0/0. Une liste de sécurité doit inclure une règle sortante avec conservation de statut qui autorise l'accès à Oracle Cloud Infrastructure Registry (par exemple, avec sa propriété Type de destination définie sur
Service
, sa propriété Service de destination définie surAll <region> services In Oracle Services Network
et sa propriété Protocole IP définie surAll
). - Si vous avez indiqué des sous-réseaux privés pour l'application, le réseau cloud virtuel doit également inclure une passerelle de service. La passerelle de service doit être configurée de façon à 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é Service de destination définie surAll <region> Services In Oracle Services Network
. Une liste de sécurité doit inclure une règle sortante avec conservation de statut qui autorise l'accès à Oracle Cloud Infrastructure Registry (par exemple, avec sa propriété Type de destination définie surService
, sa propriété Service de destination définie surAll <region> services In Oracle Services Network
et sa propriété Protocole IP définie surAll
).
Si aucune passerelle Internet ou de service n'a été définie pour le réseau cloud virtuel, définissez-en une maintenant.
- Si vous avez indiqué des sous-réseaux publics pour l'application, le réseau cloud virtuel 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é Bloc CIDR de destination définie sur 0.0.0.0/0. Une liste de sécurité doit inclure une règle sortante avec conservation de statut qui autorise l'accès à Oracle Cloud Infrastructure Registry (par exemple, avec sa propriété Type de destination définie sur
L'appel d'une fonction renvoie un message FunctionInvokeSubnetOutOfIPs et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 vous voyez cette erreur, vérifiez à nouveau que chaque sous-réseau du VCN dispose au moins du nombre minimal requis d'adresses IP libres spécifié dans Création du VCN et des sous-réseaux à utiliser avec OCI Functions, s'ils n'existent pas déjà.
L'appel d'une fonction renvoie un message FunctionInvokeSubnetNotAvailable et une erreur 502 (due à un problème de sous-réseau)
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 vous voyez cette erreur, vérifiez que le sous-réseau indiqué pour l'application existe toujours.
L'appel d'une fonction renvoie un message FunctionInvokeSubnetNotAvailable et une erreur 502 (due à un problème d'options DHCP)
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 à nouveau que l'ensemble d'options DHCP dans le VCN spécifié pour l'application existe toujours.
L'appel d'une fonction renvoie un message FunctionInvokeResponseBodyTooLarge et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 renvoyé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 renvoie un message FunctionInvokeResponseHeaderTooLarge et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 renvoyé par l'exécution de la fonction dépasse la taille maximale autorisée.
Si cette erreur s'affiche, vérifiez le code de la fonction et réduisez le nombre et/ou la taille des en-têtes personnalisés renvoyés par la fonction.
L'appel d'une fonction renvoie un message FunctionInvokeTooManyMatchingDGs et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 à un nombre de groupes dynamiques supérieur au 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 mise en correspondance de groupes dynamiques. Pour connaître le nombre maximal de groupes dynamiques auxquels une fonction peut appartenir, reportez-vous à Limites relatives aux groupes dynamiques (la limite affichée pour une instance de calcul unique s'applique également à une fonction).
L'appel d'une fonction renvoie un message FunctionInvokeExecutionError et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 renvoie une erreur.
Si cette erreur se produit de manière inattendue, consultez le code de la fonction pour comprendre les conditions dans lesquelles la fonction ne s'exécute pas correctement.
L'appel d'une fonction renvoie un message FunctionInvokeExecutionFailed et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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, probablement due à un bogue dans le code de la fonction.
Si vous voyez cette erreur, vérifiez le code de la fonction et corrigez les bugs que vous trouvez.
L'appel d'une fonction renvoie un message FunctionInvokeInvalidResponse et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 renvoie un code de réponse HTTP non valide (ni échec de la fonction ni délai d'expiration).
Si vous voyez cette erreur, vérifiez le code de la fonction et corrigez les bugs que vous trouvez.
L'appel d'une fonction renvoie un message FunctionInvokeSubnetConfigError et une erreur 502
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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 VCN, probablement lié à la configuration du résolveur personnalisé.
Si vous voyez cette erreur, identifiez tout sous-réseau dans le 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 site), 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, reportez-vous à DNS dans votre réseau cloud virtuel.
Si l'erreur persiste, vérifiez que la configuration du VCN (et la configuration du résolveur personnalisé, si elle est utilisée) est correcte en appelant une nouvelle fonction hello world exécutée dans un nouveau VCN :
- Créez un 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é était utilisé auparavant, sélectionnez Résolveur personnalisé).
- Créez un sous-réseau dans le VCN et sélectionnez la ressource d'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.
- Vérifiez que vous pouvez appeler la nouvelle fonction hello world.
Si le problème persiste, contactez-nous pour vous aider à résoudre le problème de configuration VCN.
L'appel d'une fonction renvoie le message "La taille combinée non compressé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 vers OCI Functions, l'image de la fonction est extraite du registre Docker. Selon la taille de l'image et celle des images des autres fonctions de l'application, un message semblable au suivant 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 cette erreur se produit, effectuez les actions suivantes :
- Utilisez des techniques standard pour réduire la taille de l'image de la fonction et/ou la taille des images pour les autres fonctions de l'application.
- Réduisez le nombre de fonctions dans l'application.
L'appel d'une fonction renvoie un message FunctionInvokeServiceUnavailable et une erreur 503
Lorsque vous appelez une fonction déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"code":"FunctionInvokeServiceUnavailable","message":"Timed out - server too busy"}
Fn: Error invoking function. status: 503 message: Timed out - server too busy
Le message indique qu'OCI Functions est actuellement incapable de gérer la demande, peut-être en raison d'une capacité insuffisante. Il n'est pas rare de rencontrer ce message d'erreur plusieurs fois, car il peut prendre un certain temps pour augmenter la capacité d'OCI Functions afin de répondre à la demande des appels de fonction.
Si vous voyez cette erreur, essayez à nouveau d'appeler la fonction. Ne vous inquiétez pas si le message réapparaît. Continuez à réessayer d'appeler la fonction, en laissant un court laps de temps entre les tentatives d'appel.
Tenez compte des éléments suivants :
- 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 comme le backoff exponentiel gigue pour ajouter un degré de randomité à 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, les nouvelles tentatives d'appel de la fonction sont automatiquement relancées jusqu'à ce que la fonction soit appelée avec succès. Aucune intervention de votre part n'est requise.
- 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 notifications pour lesquelles aucune intervention de votre part n'est requise.
- Si le message continue d'apparaître après une longue période, contactez-nous pour obtenir de l'aide.
L'appel d'une fonction renvoie un message d'erreur FunctionInvokeContainerInitFail, une erreur 504 et un message de journal 'ModuleNotFoundError : No module Baptisé 'contextvars'
Lorsque vous appelez une fonction Python 3.6 déployée vers OCI Functions, le message d'erreur suivant peut apparaître :
{"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, consultez les journaux de la fonction. Si un message "ModuleNotFoundError: No module named 'contextvars'
" apparaît 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 vers OCI Functions.
- Appelez à nouveau la fonction.
L'appel d'une fonction renvoie les messages FunctionInvokeContainerInitFail et "Container initialization timed out", ainsi qu'une erreur 504
Lorsque vous appelez une fonction déployée vers OCI Functions, son exécution est soumise à un seuil de mémoire maximal. Si cette limite est dépassée, l'exécution de la fonction s'arrête et le message d'erreur suivant s'affiche :
{"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. Reportez-vous à la section Changing Default Memory and Timeout Settings pour obtenir des valeurs valides pour le seuil de mémoire maximal.
Par exemple, pour définir le seuil de mémoire maximal d'une fonction sur 256 Mo, procédez comme suit :
- Sélectionnez Modifier sur la page des détails de la fonction de la console, puis sélectionnez 256 dans l'arborescence Mémoire (en Mo).
-
Ajoutez la ligne suivante au fichier func.yaml de la fonction. Le seuil de mémoire maximal sera alors défini sur 256 Mo à chaque appel de la fonction :
memory: 256
Si vous modifiez le fichier func.yaml, vous devez déployer à nouveau la fonction vers OCI Functions avant de l'appeler à nouveau.
Il est préférable d'utiliser la dernière version de l'interface de ligne de commande du projet Fn lors de la création d'une fonction helloworld en Python. Lorsque vous entrez la commande fn init --runtime python <function-name>
pour créer la fonction helloworld, la ligne memory: 256
est automatiquement ajoutée au fichier func.yaml.
L'appel d'une fonction renvoie un message FunctionInvokeTimeout et une erreur 504
Lorsque vous appelez une fonction déployée vers OCI Functions, elle ne peut être exécutée que pendant un certain laps de temps. Si cette durée maximale est dépassée, l'exécution de la fonction s'arrête et le message d'erreur suivant s'affiche :
{"code":"FunctionInvokeTimeout","message":"Timed out"}
Fn: Error invoking function. status: 504 message: Timed out
Si cette erreur se produit, essayez d'augmenter la durée d'exécution maximale autorisée pour la fonction dans la définition de la fonction. Par exemple, pour définir la durée maximale sur 300 secondes, effectuez l'une des opérations suivantes :
- Sélectionnez Modifier sur la page des détails de la fonction de la console, puis entrez 300 dans le champ Délai d'expiration (en secondes).
-
Ajoutez la ligne suivante au fichier func.yaml de la fonction. La durée maximale de l'appel de fonction sera définie sur 300 secondes lors de chaque appel :
timeout: 300
N'oubliez pas que si vous modifiez le fichier func.yaml, vous devez redéployer la fonction vers OCI Functions avant de l'appeler à nouveau.
Notez que la façon dont vous appelez une fonction détermine également la durée maximale pendant laquelle la fonction peut être exécutée. Pour plus d'informations, reportez-vous à Appel de fonctions.
Ce message d'erreur peut également s'afficher lorsqu'une fonction en cours d'exécution dans un sous-réseau public ne parvient pas à se connecter à une instance Oracle Autonomous Database pour laquelle les listes de contrôle d'accès sont activées. Si tel est le cas, reportez-vous à Connexion à des instances Oracle Autonomous Database à partir de fonctions en cours d'exécution pour plus d'informations sur :
- Configuration du sous-réseau de manière à envoyer tout le trafic Internet sortant à une passerelle NAT et à 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 renvoie un message FunctionInvokeContainerInitTimeout et une erreur 504
Lorsque vous appelez une fonction que vous avez déployée vers OCI Functions, 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 beaucoup de 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. Reportez-vous à la section Changing Default Memory and Timeout Settings pour obtenir des valeurs valides pour le seuil de mémoire maximal.
Par exemple, pour définir le seuil de mémoire maximal d'une fonction sur 256 Mo, procédez comme suit :
- Sélectionnez Modifier sur la page des détails de la fonction de la console, puis sélectionnez 256 dans l'arborescence Mémoire (en Mo).
-
Ajoutez la ligne suivante au fichier func.yaml de la fonction. Le seuil de mémoire maximal sera alors défini sur 256 Mo à chaque appel de la fonction :
memory: 256
Si vous modifiez le fichier func.yaml, vous devez déployer à nouveau la fonction vers OCI Functions avant de l'appeler à nouveau.
Il est préférable d'utiliser la dernière version de l'interface de ligne de commande du projet Fn lors de la création d'une fonction helloworld en Python. Lorsque vous entrez la commande fn init --runtime python <function-name>
pour créer la fonction helloworld, la ligne memory: 256
est automatiquement ajoutée au fichier func.yaml.
L'appel d'une fonction renvoie un message FunctionInvokeImagePullTimeout et une erreur 504
Lorsque vous appelez une fonction que vous avez déployée vers OCI Functions, l'image de la fonction est extraite du registre Docker. Selon la taille de l'image, l'extraction de l'image peut prendre beaucoup de 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 indiquée pour la fonction existe toujours à l'emplacement indiqué dans Oracle Cloud Infrastructure Registry.