Tous les produits
Search
Centre de documentation

Tablestore:Use Function Compute

Dernière mise à jour :Aug 18, 2026

Function Compute utilise un mécanisme événementiel pour traiter automatiquement les modifications incrémentielles des données issues de Tablestore. Cette approche permet des réponses en temps réel et un traitement automatisé.

Fonctionnement

Function Compute traite automatiquement les données incrémentielles de Tablestore à l'aide d'un déclencheur Tablestore. Lorsqu'une table de données est modifiée, Tablestore Stream capture les changements incrémentiels en temps réel. Le déclencheur surveille les modifications de données dans le flux et appelle automatiquement la fonction correspondante pour le traitement. Cela garantit une réponse et un traitement immédiats des évolutions des données.

image

Cette approche événementielle élimine la nécessité d'interroger périodiquement les modifications de données. Elle assure un traitement rapide et évite le gaspillage de ressources. Par rapport aux tâches planifiées traditionnelles ou aux méthodes manuelles, Function Compute offre de meilleures performances en temps réel et une automatisation accrue. Grâce au traitement asynchrone et à la mise à l'échelle élastique, elle réduit la complexité du système ainsi que les coûts d'exploitation et de maintenance (O&M). Cette solution est idéale pour les scénarios nécessitant des réponses en temps réel aux changements de données, tels que la synchronisation de données, les notifications d'événements et l'archivage incrémentiel des données.

Outre les fonctions événementielles, Function Compute prend également en charge d'autres types, comme les fonctions Web et les fonctions de tâche. Différents types de fonctions conviennent à différents scénarios métier et exigences d'architecture technique. Pour plus d'informations sur les types de fonctions et comment choisir celui qui convient, consultez Sélection de fonction .

Accéder à Tablestore à l'aide d'une fonction événementielle

Étape 1 : Activer la fonctionnalité Stream pour une table de données

Les déclencheurs Tablestore dans Function Compute (FC) s'appuient sur la fonctionnalité Stream pour récupérer les modifications incrémentielles des données d'une table de données. Vous devez d'abord activer la fonctionnalité Stream pour la table de données cible.

Les déclencheurs Tablestore sont pris en charge dans les régions suivantes : Chine (Pékin), Chine (Hangzhou), Chine (Shanghai), Chine (Shenzhen), Japon (Tokyo), Singapour, Allemagne (Francfort) et Chine (Hong Kong).
  1. Connectez-vous à la console Tablestore. Dans la barre de navigation supérieure, sélectionnez la région où se trouve l'instance, puis cliquez sur l'alias de l'instance cible.

  2. Sur la page Instance Details, cliquez sur le nom de la table de données cible dans la liste Tables.

  3. Cliquez sur l'onglet Tunnels, puis cliquez sur Enable à droite de Stream Information.

  4. Dans la boîte de dialogue Enable Stream, définissez le paramètre Log Expiration Time, puis cliquez sur Enable.

    Le paramètre Log Expiration Time doit être un entier non nul exprimé en heures. La valeur maximale est de 168 heures. La durée d'expiration des journaux ne peut pas être modifiée après sa définition. Définissez cette valeur avec précaution.

Étape 2 : Créer et configurer une fonction événementielle

Lorsque vous créez un déclencheur Tablestore, vous ne pouvez sélectionner que des instances Tablestore et des tables de données situées dans la même région que la fonction actuelle. Assurez-vous que la fonction et la table de données cible se trouvent dans la même région.

  1. Connectez-vous à la console Function Compute. Dans la barre de navigation supérieure, sélectionnez la même région que votre instance Tablestore.

  2. Dans le volet de navigation de gauche, cliquez sur Function Management > Functions.

  3. Cliquez sur Create Function, sélectionnez Event Function, puis cliquez sur Create Event Function.

  4. Configurez les paramètres de la fonction comme suit. Pour des instructions de configuration détaillées, consultez Créer une fonction déclenchée par un événement.

    • Function Name : nom de la fonction. Le nom doit être unique au sein du même compte et de la même région, et respecter les conventions de dénomination.

    • Runtime : nous vous recommandons de sélectionner Built-in Runtime ainsi qu'un langage et une version que vous maîtrisez, tels que Python et Java. Cet exemple utilise Python 3.12.

    • Code Upload Method : méthode de téléchargement du code vers Function Compute. Dans cet exemple, sélectionnez Upload ZIP. Vous pouvez télécharger et importer l'exemple de code tablestore_trigger_example.zip.

  5. Cliquez sur Create pour créer la fonction.

Étape 3 : Tester et valider la fonction événementielle

Avant de configurer le déclencheur Tablestore, testez la fonction en simulant un événement. Les déclencheurs Tablestore utilisent le format CBOR pour l'encodage. Pour les tests, vous pouvez simuler ce format avec du JSON.

  1. Sur la page Function Details, cliquez sur la flèche déroulante à côté de Test Function, puis cliquez sur Configure Test Parameters.

  2. Saisissez un Event Name, par exemple test-event, entrez l'événement exemple suivant dans l'éditeur de texte, puis cliquez sur OK.

    {
        "Version": "Sync-v1",
        "Records": [
            {
                "Type": "PutRow",
                "Info": {
                    "Timestamp": 1506416585740836
                },
                "PrimaryKey": [
                    {
                        "ColumnName": "pk_0",
                        "Value": 1506416585881590900
                    },
                    {
                        "ColumnName": "pk_1",
                        "Value": "2017-09-26 17:03:05.8815909 +0800 CST"
                    },
                    {
                        "ColumnName": "pk_2",
                        "Value": 1506416585741000
                    }
                ],
                "Columns": [
                    {
                        "Type": "Put",
                        "ColumnName": "attr_0",
                        "Value": "hello_table_store",
                        "Timestamp": 1506416585741
                    },
                    {
                        "Type": "Put",
                        "ColumnName": "attr_1",
                        "Value": 1506416585881590900,
                        "Timestamp": 1506416585741
                    }
                ]
            }
        ]
    }
  3. Cliquez sur Test Function et attendez la fin du test. Si l'exécution réussit, la valeur OK est renvoyée. Cliquez sur Log Output pour afficher le journal d'exécution.

    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] Begin to handle event
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] --------------------------------------------------
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] Event Type: PutRow
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] Timestamp: 1506416585740836
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] Primary Keys:
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO]   Name: pk_0, Value: 1506416585881590900
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO]   Name: pk_1, Value: 2017-09-26 17:03:05.8815909 +0800 CST
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO]   Name: pk_2, Value: 1506416585741000
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] Attribute Columns:
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO]   Type: Put, Name: attr_0, Value: hello_table_store, Timestamp: 1506416585741
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO]   Type: Put, Name: attr_1, Value: 1506416585881590900, Timestamp: 1506416585741
    2025-11-24 16:02:59 1-69241131-15e0c7d6-8ec1eb81c700 [INFO] --------------------------------------------------

Étape 4 : Configurer et valider le déclencheur

Après avoir testé et validé la fonction, configurez un déclencheur Tablestore pour répondre automatiquement aux modifications de la table de données. Vérifiez ensuite le fonctionnement du déclencheur en effectuant des opérations sur les données.

  1. Sur la page Function Details, cliquez sur l'onglet Triggers, puis cliquez sur Create Trigger.

  2. Configurez les paramètres du déclencheur comme suit.

    • Trigger Type : sélectionnez Tablestore.

    • Name : saisissez un nom personnalisé pour le déclencheur, par exemple test_trigger.

    • Instance : sélectionnez l'instance Tablestore cible.

    • Table : sélectionnez la table de données cible.

  3. Cliquez sur OK pour créer le déclencheur.

  4. Insérez ou mettez à jour une ligne de données dans la table de données Tablestore. Cet exemple montre comment insérer une ligne dans la console Tablestore.

  5. Sur la page Function Details, cliquez sur l'onglet Logs pour afficher les journaux et les résultats d'appel de la fonction. Dans la colonne Actions, cliquez sur Request Logs pour afficher les informations détaillées des journaux.

    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] Begin to handle event
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] --------------------------------------------------
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] Event Type: PutRow
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] Timestamp: 1763973009228992
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] Primary Keys:
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO]   Name: id, Value: 8
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO]   Name: name, Value: test-name
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] Attribute Columns:
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO]   Type: Put, Name: age, Value: 18, Timestamp: 1763973009229
    2025-11-24 16:30:12 1-69241793-15071122-c8e16b8b5ce5 [INFO] --------------------------------------------------

Quotas et limites

  • Lorsque vous écrivez le code de la fonction, n'introduisez pas de boucle logique. Par exemple, ne configurez pas un déclencheur pour la table A afin d'appeler une fonction qui met à jour les données de la table A. Cela provoquerait des appels de fonction infinis.

  • Si une exception se produit lors de l'exécution de la fonction, celle-ci est retentée indéfiniment jusqu'à l'expiration des données de journal dans Tablestore.

    Remarque
    • Une exception d'exécution de fonction peut survenir dans les situations suivantes :

      • Le code de la fonction génère une exception : l'instance de fonction a démarré et vous êtes facturé pour son temps d'exécution.

      • Le démarrage de la fonction échoue : l'instance de fonction ne démarre pas en raison d'une commande de démarrage incorrecte ou pour d'autres raisons. Vous n'êtes pas facturé dans ce cas.

    • Si une exception d'exécution de fonction se produit, désactivez la fonctionnalité Stream pour la table de données afin d'éviter les tentatives infinies. Avant de désactiver la fonctionnalité Stream, assurez-vous qu'aucun autre déclencheur n'utilise la table de données, afin de ne pas affecter les autres déclencheurs.

FAQ

  • Si vous ne pouvez pas créer de déclencheur Tablestore dans une région spécifique, vérifiez la liste des régions prises en charge.

  • Si vous ne trouvez pas votre table de données Tablestore lors de la création d'un déclencheur Tablestore, confirmez que la table de données Tablestore et le service Function Compute se trouvent dans la même région.

  • Si une erreur indiquant que le client a annulé la demande est signalée de manière répétée lors de l'utilisation d'un déclencheur Tablestore, cela est généralement dû au fait que le délai d'expiration défini sur le client est inférieur au temps d'exécution de la fonction. Nous vous recommandons d'augmenter le délai d'expiration du client. Pour plus d'informations, consultez Que faire si un client se déconnecte et qu'une erreur « Invocation canceled by client » est signalée ?.

  • Si de nouvelles données sont ajoutées à une table de données Tablestore mais que le déclencheur Tablestore n'est pas appelé, résolvez le problème en vérifiant les éléments suivants :

    • Vérifiez si la fonctionnalité Stream est activée pour la table de données.

    • Vérifiez si le rôle configuré pour le déclencheur est correct. Vous pouvez utiliser le rôle de déclencheur par défaut AliyunTableStoreStreamNotificationRole.

    • Consultez les journaux d'exécution de la fonction pour déterminer si l'exécution a échoué. En cas d'échec, la fonction est retentée jusqu'à l'expiration des données de journal dans Tablestore.