Tous les produits
Search
Centre de documentation

Function Compute:États et invocation des fonctions pour les images personnalisées

Dernière mise à jour :Aug 26, 2026

Les fonctions Custom Container dépendent des ressources que Function Compute réserve en votre nom, notamment des images mises en cache depuis Alibaba Cloud Container Registry (ACR) afin de réduire la latence au démarrage à froid. La mise en cache des images s'effectuant de manière asynchrone en arrière-plan, une fonction peut ne pas être prête à traiter les invocations immédiatement après sa création ou sa mise à jour. Les états de fonction vous indiquent précisément quand une fonction est prête à être invoquée.

États de fonction

Function Compute attribue à chaque fonction Custom Container l'un des états suivants.

État Invocable Description
Pending Non État initial après la création d'une fonction. Function Compute réserve les ressources et met l'image en cache. L'état passe à Active lorsque l'image est prête.
Active Oui La réservation des ressources est terminée. La fonction traite les invocations normalement.
Failed Non Une erreur s'est produite lors de la préparation des ressources ou de l'accès à l'image. Consultez la section État Failed pour connaître les étapes de récupération.
Inactive Non La fonction est restée inactive suffisamment longtemps pour que Function Compute libère ses ressources mises en cache. Redéployez ou déclenchez la fonction pour la faire revenir à l'état Pending. Si la préparation des ressources réussit, la fonction revient à l'état Active ; sinon, elle reste Inactive.

État Failed

Une fonction passe à l'état Failed dans deux situations :

  • Échec de la préparation des ressources lors de la création ou de la mise à jour : la fonction ne peut pas être invoquée car un problème est survenu lors de la préparation des ressources.

  • L'image d'origine n'est plus accessible : Function Compute met les images en cache pour accélérer les démarrages à froid, mais l'image d'origine dans ACR doit rester accessible pendant les invocations. Si l'image est supprimée ou si le tag est écrasé avec un digest différent, la fonction passe à l'état Failed. Mettez à jour la fonction avec des informations d'image valides et redéployez-la.

Important

Function Compute enregistre à la fois le tag et le digest de la version de l'image que vous sélectionnez lors de la création ou de la mise à jour d'une fonction. Si ce digest est ultérieurement écrasé dans ACR, l'invocation de la fonction échoue. Assurez-vous que les tags d'image ne sont pas écrasés après le déploiement. En cas d'écrasement, redéployez la fonction en utilisant les informations d'image les plus récentes.

États de mise à jour

Pendant qu'une mise à jour de fonction est en cours, le champ LastUpdateStatus suit la mise à jour séparément de l'état principal de la fonction.

**LastUpdateStatus** Description Routage des invocations
InProgress Function Compute prépare les ressources pour la mise à jour. Dirigées vers le code avant mise à jour
Successful La mise à jour est terminée. Dirigées vers le code mis à jour
Failed La préparation des ressources pour la mise à jour a échoué. Dirigées vers le code avant mise à jour

Vérifier l'état avant l'invocation

Appelez l'opération GetFunction pour obtenir l'état et le digest de l'image d'une fonction. Si vous utilisez un SDK ou Serverless Devs pour créer ou mettre à jour une fonction Custom Container, appelez l'opération GetFunction afin de vérifier l'état de la fonction avant de l'invoquer.

  • Fonctions nouvellement créées : confirmez que l'état est Active. Les fonctions dans d'autres états ne peuvent pas être invoquées.

  • Fonctions mises à jour : confirmez que LastUpdateStatus est Successful.

Diagrammes d'état

La sortie suivante montre le résultat de s3 info pour une fonction nouvellement créée à l'état Pending (Function Compute réserve les ressources et met l'image en cache).

s3 info

Steps for [info] of [hello-world-app]
====================
✔ [hello_world] completed (3.68s)

Result for [info] of [hello-world-app]
====================
hello_world:
  region:               us-east-1
  codeChecksum:
  codeSize:             0
  cpu:                  0.5
  createdTime:          2023-10-27T06:56:00Z
  customContainerConfig:
    image:              registry.us-east-1.aliyuncs.com/fxxx2/flask_xxx_ask_v001
    resolvedImageUri:   registry.us-east-1.aliyuncs.com/fc-dxxx_ask@shaxxx9e19867xxx23c4xxx78ffxxx4116cd9xxx9cde7370b43dd889
  description:          hello world by serverless devs
  diskSize:             512
  functionArn:          acs:fc:us-east-1:143*********149:functions/start-python-xxx:3
  functionId:           b24c69ed-0xxx-xxx-5ff3f51c4190
  functionName:         start-pxxx_xilixxx_est3
  handler:              handler
  instanceConcurrency:  1
  internetAccess:       true
  lastModifiedTime:     2023-10-27T06:56:00Z
  memorySize:           512
  role:
  runtime:              custom-container
  state:                Pending
  stateReason:          The function is being created.
  stateReasonCode:      Creating
  timeout:              60

A complete log of this run can be found in: /home/admin/.s/logs/1027145606

La sortie suivante montre le résultat de s3 info pour une fonction en cours de mise à jour (LastUpdateStatus : InProgress).

admin  ~/workspace/xxx/demo-3  s3 info
  Steps for [ixxx-app]
========================

✔ [hello_world] completed (4.97s)

Result for [info] of [hello-world-app]
========================
hello_world:
  region:               us-east-1
  codeChecksum:
  codeSize:             0
  cpu:                  0.5
  createdTime:          2023-10-27T05:45:30Z
  customContainerConfig:
    image:              registry.us-east-1.aliyuncs.comxxx k:f   k_vxxx
    resolvedImageUri: registry.us-east-1.aliyuncs.com/fcxxx k@sha256:f65d0acd5xxx ab9cd923f3afxxx b9exxx 2cdxxx 99d51bbae2fe0ba
  description:          hello world by serverless devs
  diskSize:             512
  functionArn:          acs:fc:us-east-1:143**********149:functions/start-pxxx xilxxx
  functionId:           82597d19xxx f-9581fe2429d7
  functionName:         start-pythonxxx t1
  handler:              handler
  instanceConcurrency:  1
  internetAccess:       true
  lastModifiedTime:     2023-10-27T06:52:03Z
  lastUpdateStatus:     InProgress
  memorySize:           512
  role:
  runtime:              custom-container
  state:                Active
  timeout:              60

A complete log of this run can be found in: /home/admin/.s/logs/xxx5200

La sortie suivante montre le résultat de s3 info après une mise à jour réussie. Lorsque lastUpdateStatus est Successful et que state est Active, la mise à jour de la fonction est terminée et la fonction est à l'état actif.

admin  ~/wc       xxx       mo-3    s3 info
Steps for [info] of [hello-world-app]
====================
✔ [hello_world] completed (1.32s)

Result for [info] of [hello-world-app]
====================
hello_world:
  region:               us-east-1
  codeChecksum:
  codeSize:             0
  cpu:                  0.5
  createdTime:          2023-10-27T05:45:30Z
  customContainerConfig:
    image:              registry.us-east-1.aliyuncs.com,xxx/flask:flask_v001
    resolvedImageUri:   registry.us-east-1.aliyuncs.com,xxx/mo2/flask@sha256:9614366c50xxx4bcxxxxxxxxxxxxxxxx/cae95c74f44
  description:          hello world by serverless dexxx
  diskSize:             512
  functionArn:          acs:fc:us-east-1:xxx:49:functions/start-pyxxxxxxxx
  functionId:           82597d19-2bc0-41c3-92f1-xxx429d7
  functionName:         start-pyxxx-n-xxxxxx1
  handler:              handler
  instanceConcurrency:  1
  internetAccess:       true
  lastModifiedTime:     2023-10-27T05:56:10Z
  lastUpdateStatus:     Successful
  logConfig:
    enableInstanceMetrics: true
    enableRequestMetrics:  true
    logBeginRule:       DefaultRegex
    logstore:           function-log
    project:            aliyun-fc xxx0908f0a5f
  memorySize:           512
  role:
  runtime:              custom-container
  state:                Active
  timeout:              60

A complete log of this run can be found in: /home/admin/.s/logs/xxx