Un déclencheur peut ne pas invoquer votre fonction en raison d'une règle de déclenchement mal configurée ou d'un rôle de déclencheur incorrect. Consultez la section appropriée ci-dessous selon le type de votre déclencheur.
Problèmes liés aux déclencheurs OSS
Le bucket et la fonction se trouvent dans des régions différentes
Le bucket Object Storage Service (OSS) et votre fonction doivent résider dans la même région. S'ils se trouvent dans des régions distinctes, le déclencheur ne peut pas invoquer la fonction.
Déplacez le bucket ou la fonction afin que tous deux se trouvent dans la même région.
Le préfixe ou le suffixe de l'objet ne correspond pas
Le préfixe ou le suffixe de l'objet téléchargé doit correspondre au préfixe ou au suffixe configuré pour le déclencheur. Les objets qui ne correspondent pas sont ignorés.
Example: Si le préfixe du déclencheur est ab, le téléchargement de a/b.zip, ab.zip et abc.zip vers OSS ne déclenche l'exécution de la fonction que pour ab.zip et abc.zip.
Vérifiez la configuration de votre déclencheur et corrigez le préfixe ou le suffixe.
Le type d'événement OSS ne correspond pas
L'événement généré par l'opération de téléchargement doit correspondre au type d'événement configuré dans le déclencheur. Incompatibilités fréquentes :
| Méthode de téléchargement | Événement généré | Événement de déclenchement à configurer |
|---|---|---|
| ossbrowser (téléchargement multipartite) | oss:ObjectCreated:CompleteMultipartUpload |
oss:ObjectCreated:CompleteMultipartUpload |
| Téléchargement via la console Function Compute | oss:ObjectCreated:PostObject |
oss:ObjectCreated:PostObject |
Appel d'API PutObject |
oss:ObjectCreated:PutObject |
oss:ObjectCreated:PutObject |
Mettez à jour le type d'événement du déclencheur pour qu'il corresponde à la méthode utilisée pour télécharger les objets.
Suppression d'un objet sans ID de version dans un bucket avec gestion des versions activée
Lorsque vous supprimez un objet d'un bucket OSS avec gestion des versions activée sans spécifier d'ID de version (par exemple, via ossbrowser), OSS ne déclenche pas l'événement oss:ObjectRemoved:DeleteObject ni oss:ObjectRemoved:DeleteObjects. La version actuelle devient alors une version historique et un marqueur de suppression est ajouté.
Spécifiez un ID de version lors de la suppression d'objets dans un bucket avec gestion des versions activée. Pour plus de détails, consultez la section « FAQ » de Présentation des notifications d'événements OSS.
Problèmes liés aux déclencheurs Tablestore
Le paramètre Stream Information n'est pas activé pour la table de données
Un déclencheur Tablestore nécessite que le paramètre Stream Information soit défini sur Enabled pour la table de données source. Si ce paramètre est désactivé, le déclencheur n'a aucune donnée à consommer et ne peut pas invoquer la fonction.
Activez le paramètre Stream Information sur votre table de données Tablestore. Pour connaître la procédure, reportez-vous à l'étape « Step 1: Enable the Stream feature for a data table » dans Utiliser Function Compute.
Problèmes liés au rôle du déclencheur
Le rôle du déclencheur accorde au service source (tel que OSS) l'autorisation d'invoquer votre fonction. Si ce rôle est supprimé ou s'il manque des permissions requises, le déclencheur échoue silencieusement.
Vérifiez les points suivants :
Existence du rôle : assurez-vous que le rôle n'a pas été supprimé dans la console RAM.
Permissions du rôle : confirmez que le rôle autorise le service source à appeler Function Compute.
Utilisez le rôle système prédéfini correspondant à votre type de déclencheur :
| Type de déclencheur | Rôle prédéfini |
|---|---|
| Déclencheur OSS | AliyunOSSEventNotificationRole |
Pour les étapes de configuration, consultez Configurer un déclencheur OSS natif.
Contacter le support technique
Si le problème persiste après avoir vérifié les éléments ci-dessus, rejoignez le groupe d'utilisateurs DingTalk (ID : 11721331) pour obtenir de l'aide. Fournissez les informations suivantes :
Compte Alibaba Cloud
Nom du bucket OSS
Nom du service
Nom de la fonction
Source de l'événement