Créez un connecteur de réception Function Compute pour exporter les données d'une rubrique source de votre instance ApsaraMQ for Kafka vers une fonction Function Compute.
Prérequis
Avant de créer un connecteur de réception Function Compute, assurez-vous que les conditions suivantes sont remplies :
-
ApsaraMQ for Kafka
Activez la fonctionnalité de connecteur pour l'instance ApsaraMQ for Kafka. Pour plus d'informations, consultez la rubrique Activer un connecteur.
-
Créez une rubrique source pour l'instance ApsaraMQ for Kafka. Pour plus d'informations, consultez la section Étape 1 : Créer une rubrique.
Cet exemple utilise une rubrique nommée fc-test-input.
-
Function Compute
-
Créez une fonction dans Function Compute. Pour plus d'informations, consultez la rubrique Créer une fonction.
ImportantLa fonction doit être une fonction événementielle.
Ce guide utilise une fonction événementielle nommée hello_world à titre d'exemple. La fonction se trouve dans le service guide-hello_world et s'exécute dans un environnement d'exécution Python. Le code exemple de la fonction est le suivant :
# -*- coding: utf-8 -*- import logging # To enable the initializer feature # Implement the initializer function as follows: # def initializer(context): # logger = logging.getLogger() # logger.info('initializing') def handler(event, context): logger = logging.getLogger() logger.info('hello world:' + bytes.decode(event)) return 'hello world:' + bytes.decode(event)
-
-
Facultatif : EventBridge
RemarqueCette étape n'est requise que si votre instance ApsaraMQ for Kafka se trouve dans la région Chine (Hangzhou) ou Chine (Chengdu).
Notes
Vous ne pouvez exporter des données d'une rubrique source d'une instance ApsaraMQ for Kafka vers une fonction Function Compute que si elles se trouvent dans la même région. Pour plus d'informations sur les limites des connecteurs, consultez la section Limites.
-
Si votre instance ApsaraMQ for Kafka se trouve dans la région Chine (Hangzhou) ou Chine (Chengdu), le connecteur est déployé sur EventBridge.
EventBridge est actuellement gratuit. Pour plus d'informations, consultez la rubrique Facturation.
-
Lorsque vous créez un connecteur, EventBridge crée automatiquement les rôles liés au service suivants : AliyunServiceRoleForEventBridgeSourceKafka et AliyunServiceRoleForEventBridgeConnectVPC.
Si un rôle lié au service n'a pas été créé, EventBridge en crée automatiquement un correspondant afin qu'il puisse accéder à ApsaraMQ for Kafka et au VPC.
Si ces rôles liés au service existent déjà, EventBridge ne les recrée pas.
Pour plus d'informations sur les rôles liés au service, consultez la rubrique Rôles liés au service.
Vous ne pouvez pas actuellement afficher les journaux d'exécution des tâches déployées sur EventBridge. Une fois la tâche du connecteur terminée, vérifiez sa progression en consultant l'état de consommation du groupe de consommateurs de la rubrique source. Pour plus de détails, consultez la rubrique Afficher l'état du consommateur.
Procédure
Utilisez un connecteur de réception Function Compute pour exporter les données d'une rubrique source d'une instance ApsaraMQ for Kafka vers une fonction Function Compute :
-
Facultatif : Activez l'accès interrégional pour le connecteur de réception Function Compute
ImportantSi vous n'avez pas besoin d'un accès interrégional, ignorez cette étape.
Activer l'accès Internet pour le connecteur de réception Function Compute
-
Facultatif : Activez l'accès intercomptes pour le connecteur de réception Function Compute
ImportantSi vous n'avez pas besoin d'un accès intercomptes, ignorez cette étape.
-
Facultatif : Créez les rubriques et le groupe de consommateurs requis par le connecteur de réception Function Compute
ImportantSi vous n'avez pas besoin de personnaliser les noms des rubriques et du groupe de consommateurs, vous pouvez ignorer cette étape.
Certaines rubriques requises par un connecteur de réception Function Compute doivent utiliser le moteur de stockage local. Si votre instance ApsaraMQ for Kafka est en version majeure 0.10.2, vous ne pouvez pas créer manuellement des rubriques avec un stockage local. Ces rubriques doivent être créées automatiquement.
Créer et déployer un connecteur de réception Function Compute
-
Vérifiez les résultats
Activer l'accès Internet pour un connecteur de réception FC
Si un connecteur de réception Function Compute doit accéder aux services Alibaba Cloud d'autres régions, vous devez activer l'accès Internet pour celui-ci. Pour plus de détails, consultez la rubrique Activer l'accès Internet pour un connecteur.
Créer une stratégie personnalisée
Dans le compte cible, créez une stratégie personnalisée pour accorder l'accès à Function Compute.
Connectez-vous à la console RAM.
Dans le volet de navigation de gauche, sélectionnez Permissions > Stratégies.
Sur la page Stratégies, cliquez sur Créer une stratégie.
-
Sur la page Créer une stratégie, configurez la stratégie.
-
Sous l'onglet JSON, saisissez le script de stratégie et cliquez sur Suivant.
Le script de stratégie suivant accorde les autorisations d'accès à Function Compute :
{ "Version": "1", "Statement": [ { "Action": [ "fc:InvokeFunction", "fc:GetFunction" ], "Resource": "*", "Effect": "Allow" } ] } Sous Informations de base, saisissez KafkaConnectorFcAccess pour le champ Nom.
Cliquez sur OK.
-
Créer un rôle RAM
Créez un rôle RAM dans le compte cible. Vous ne pouvez pas sélectionner ApsaraMQ for Kafka comme service de confiance lors de la création d'un rôle RAM. Par conséquent, vous devez sélectionner un autre service pris en charge, puis modifier manuellement la stratégie d'approbation après la création du rôle.
Dans le volet de navigation de gauche, sélectionnez Gestion des identités > Rôles.
Sur la page Rôles, cliquez sur Créer un rôle.
-
Dans le panneau Créer un rôle, configurez le rôle.
Sélectionnez Service Alibaba Cloud pour le type d'entité de confiance, puis cliquez sur Suivant.
Dans la section Type de rôle, sélectionnez Rôle de service normal. Pour Nom du rôle, saisissez AliyunKafkaConnectorRole. Dans la liste déroulante Sélectionner un service de confiance, sélectionnez Function Compute, puis cliquez sur Terminer.
Sur la page Rôles, recherchez et cliquez sur AliyunKafkaConnectorRole.
Sur la page des détails de AliyunKafkaConnectorRole, cliquez sur l'onglet Gestion des stratégies d'approbation, puis sur Modifier la stratégie d'approbation.
-
Dans le panneau Modifier la stratégie d'approbation, remplacez fc par alikafka dans le script, puis cliquez sur OK.
Après avoir enregistré les modifications, sous l'onglet Gestion des stratégies d'approbation pour AliyunKafkaConnectorRole, confirmez que le paramètre
Servicede la stratégie d'approbation est mis à jour versalikafka.aliyuncs.comet que le paramètreActionest défini sursts:AssumeRole.
Ajouter des autorisations
Dans le compte cible, accordez au rôle RAM les autorisations d'accès à Function Compute.
Dans le volet de navigation de gauche, accédez à Gestion des identités > Rôles.
Sur la page Rôles, recherchez AliyunKafkaConnectorRole et cliquez sur Ajouter des autorisations dans la colonne Actions.
-
Dans le panneau Ajouter des autorisations, ajoutez la stratégie KafkaConnectorFcAccess.
Dans la section Sélectionner une stratégie, sélectionnez Stratégie personnalisée.
Dans la liste Nom de la stratégie d'autorisation, recherchez et cliquez sur KafkaConnectorFcAccess.
Cliquez sur OK.
Cliquez sur Terminer.
Créer les topics pour le connecteur de destination Function Compute
Dans la console ApsaraMQ for Kafka, vous pouvez créer manuellement les cinq topics requis par un connecteur de destination Function Compute : un topic d'offset de tâche, un topic de configuration de tâche, un topic d'état de tâche, un topic de file d'attente des messages non livrables (dead-letter queue) et un topic de données d'erreur. Ces topics ont des exigences différentes en termes de nombre de partitions et de moteur de stockage. Pour plus d'informations, consultez la section Paramètres à l'étape Configurer le service source.
Connectez-vous à la console ApsaraMQ for Kafka.
-
Sur la page Overview, sélectionnez une région dans la section Resource Distribution.
ImportantVous devez créer les topics dans la même région que votre application, c'est-à-dire la région où l'instance ECS est déployée. Les topics ne peuvent pas être utilisés entre différentes régions. Par exemple, si un topic est créé dans la région Chine (Pékin), le producteur et le consommateur de messages doivent également s'exécuter sur une instance ECS dans la région Chine (Pékin).
Sur la page Instances, cliquez sur le nom de l'instance cible.
Dans le volet de navigation de gauche, cliquez sur Topics.
Sur la page Topics, cliquez sur Create Topic.
-
Dans le panneau Create Topic, configurez les paramètres du topic et cliquez sur OK.
Parameter
Description
Example
Name
Le nom du topic.
RemarqueKafka considère les noms de topic contenant des traits de soulignement (
xxx_xxx) et des points (xxx.xxx) comme identiques. Si vous tentez de créer un topic en double, le système renvoie une erreur.demo
Description
Une brève description du topic.
demo test
Partitions
Le nombre de partitions du topic.
12
Storage Engine
RemarqueActuellement, vous pouvez sélectionner un moteur de stockage uniquement pour les instances Professional Edition non serverless. Pour les autres types d'instances, cette option n'est pas disponible et Cloud Storage est utilisé par défaut.
Le moteur de stockage pour les messages du topic.
ApsaraMQ for Kafka prend en charge les deux moteurs de stockage suivants :
-
Cloud Storage : ce moteur utilise des disques Alibaba Cloud pour le stockage sous-jacent et offre des performances élevées, une faible latence et une grande fiabilité grâce à un mécanisme distribué à trois réplicas. Si l'Instance Edition de l'instance est Standard (High Write), seul Cloud Storage peut être utilisé.
-
Local Storage : ce moteur utilise l'algorithme de réplication natif Kafka ISR (In-Sync Replica) et un mécanisme distribué à trois réplicas.
Cloud Storage
Message Type
Le type de messages dans le topic.
-
Normal Message : par défaut, Kafka distribue les messages ayant la même clé vers la même partition et les stocke dans l'ordre d'envoi. En cas de défaillance d'un nœud du cluster, les messages peuvent être désordonnés. Si vous définissez le Storage Engine sur Cloud Storage, le système sélectionne Normal Message par défaut.
-
Partitionally Ordered Message : par défaut, Kafka distribue les messages ayant la même clé vers la même partition et les stocke dans l'ordre d'envoi. Même en cas de défaillance d'un nœud du cluster, l'ordre des messages au sein de la partition est garanti. Toutefois, l'envoi de messages vers certaines partitions peut échouer jusqu'à leur récupération. Si vous définissez le Storage Engine sur Local Storage, le système sélectionne Partitionally Ordered Message par défaut.
Normal Message
Log Cleanup Policy
La politique de nettoyage des journaux pour le topic.
Lorsque vous sélectionnez Local Storage comme Storage Engine (actuellement, seules les instances Professional Edition prennent en charge le stockage local ; cette option n'est pas disponible pour les instances Standard Edition), vous devez configurer la Log Cleanup Policy.
ApsaraMQ for Kafka prend en charge les deux politiques de nettoyage des journaux suivantes.
-
Delete : politique de nettoyage des messages par défaut. Si l'espace disque est suffisant, les messages sont conservés pendant la période de rétention spécifiée. Si l'espace disque est insuffisant (généralement lorsque l'utilisation du disque dépasse 85 %), le système supprime les anciens messages prématurément afin de garantir la disponibilité du service.
-
Compact : utilise la politique de nettoyage Kafka Log Compaction. La compaction des journaux garantit que le système conserve la dernière valeur pour chaque clé de message. Cette méthode est principalement utilisée pour des scénarios tels que la restauration de l'état après un plantage du système ou le rechargement d'un cache après un redémarrage du système. Par exemple, Kafka Connect et Confluent Schema Registry utilisent des topics compactés pour stocker l'état du système et les données de configuration.
ImportantLes topics compactés sont généralement utilisés uniquement pour des composants spécifiques de l'écosystème, tels que Kafka Connect ou Confluent Schema Registry. Ne définissez pas cette propriété pour les topics utilisés pour la production et la consommation générales de messages. Pour plus d'informations, consultez la bibliothèque de démonstration ApsaraMQ for Kafka.
Compact
Tag
Les tags pour le topic.
demo
Après la création du topic, celui-ci apparaît dans la liste des topics sur la page Topics.
-
Créer un groupe de consommateurs pour le connecteur de destination FC
Vous pouvez créer manuellement le consumer group pour une tâche de synchronisation de données avec un connecteur de destination Function Compute dans la console ApsaraMQ for Kafka. Le nom du consumer group doit être connect-nom-de-la-tâche. Pour plus d'informations, consultez la section Paramètres à l'étape Configurer le service source.
Connectez-vous à la console ApsaraMQ for Kafka.
Sur la page Overview, sélectionnez une région dans la section Resource Distribution.
Sur la page Instances, cliquez sur le nom de l'instance cible.
Dans le volet de navigation de gauche, cliquez sur Groups.
Sur la page Groups, cliquez sur Create Group.
-
Dans le panneau Create Group, saisissez un nom pour le groupe de consommateurs dans la zone de texte Group ID, entrez une brève description dans la zone de texte Description, ajoutez des tags au groupe de consommateurs, puis cliquez sur OK.
Une fois créé, le groupe de consommateurs apparaît dans la liste sur la page Groups.
Créer et déployer un connecteur de type Sink pour Function Compute
Créez et déployez un connecteur de type Sink pour Function Compute afin de synchroniser les données depuis ApsaraMQ for Kafka vers Function Compute.
Connectez-vous à la console ApsaraMQ for Kafka.
Sur la page Overview, sélectionnez une région dans la section Resource Distribution.
Dans le volet de navigation de gauche, cliquez sur Connectors.
Sur la page Connectors, sélectionnez l'instance à laquelle le connecteur appartient dans la liste déroulante Select Instance et cliquez sur Create Connector.
-
Dans l'assistant Create Connector, effectuez les étapes suivantes.
-
Sous l'onglet Configure Basic Information, configurez les paramètres suivants selon vos besoins, puis cliquez sur Next.
Paramètre
Description
Exemple
Name
Nom du connecteur. Le nom doit respecter les exigences suivantes :
-
Le nom peut comporter jusqu'à 48 caractères et ne peut contenir que des chiffres, des lettres minuscules et des traits d'union (-). Il ne peut pas commencer par un trait d'union (-).
-
Le nom doit être unique au sein d'une instance ApsaraMQ for Kafka.
La tâche de synchronisation des données du connecteur utilise un consumer group nommé
connect-task-name. Si vous ne créez pas ce consumer group manuellement, le système le crée automatiquement.kafka-fc-sink
Instance
Par défaut, le nom et l'ID de l'instance s'affichent.
demo alikafka_post-cn-st21p8vj****
-
-
Sous l'onglet Configure Source Service, définissez Data Source sur Message Queue for Apache Kafka, configurez les paramètres suivants, puis cliquez sur Next.
RemarqueSi vous avez déjà créé un topic et un consumer group, choisissez la création manuelle des ressources et saisissez les informations relatives à vos ressources existantes. Sinon, optez pour la création automatique des ressources.
Tableau 1. Paramètres de configuration du service source
Paramètre
Description
Exemple
Data Source Topic
Topic source à partir duquel les données sont synchronisées.
fc-test-input
Consumer Thread Concurrency
Nombre de threads de consommation simultanés pour le topic source. Valeur par défaut : 6. Valeurs possibles :
-
1
-
2
-
3
-
6
-
12
6
Consumer Offset
Offset à partir duquel la consommation commence. Valeurs possibles :
-
Earliest Offset : Commencez la consommation à partir de l'offset le plus ancien.
-
Latest Offset : Commencez la consommation à partir de l'offset le plus récent.
Earliest Offset
VPC ID
ID du VPC dans lequel la tâche de synchronisation des données s'exécute. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment. Par défaut, il s'agit du VPC de votre instance ApsaraMQ for Kafka. Vous n'avez pas besoin de spécifier de valeur.
vpc-bp1xpdnd3l***
vSwitch ID
ID du vSwitch dans lequel la tâche de synchronisation des données s'exécute. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment. Le vSwitch doit se trouver dans le même VPC que l'instance ApsaraMQ for Kafka. Par défaut, il s'agit du vSwitch que vous avez spécifié lors du déploiement de l'instance ApsaraMQ for Kafka.
vsw-bp1d2jgg81***
Failure Handling Policy
Contrôle le comportement en cas d'échec de la livraison d'un message provenant d'une partition. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment. Valeurs possibles :
-
Continue Subscription : Poursuivez la consommation à partir de la partition et enregistrez l'erreur.
-
Stop Subscription : Arrêtez la consommation à partir de la partition et enregistrez l'erreur.
Remarque-
Pour plus d'informations sur la consultation des journaux, consultez la rubrique Opérations sur les connecteurs.
-
Pour plus d'informations sur la recherche de solutions basées sur les codes d'erreur, consultez la rubrique Codes d'erreur.
Continue Subscription
Resource Creation Method
Méthode utilisée pour créer le topic et le consumer group requis par le connecteur. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment.
-
Auto
-
Manual
Auto
Connector Consumer Group
Consumer group utilisé par la tâche de synchronisation des données du connecteur. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment. Le nom du consumer group doit suivre le format connect-task-name.
connect-kafka-fc-sink
Task Offset Topic
Topic utilisé pour stocker les offsets de consommation. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment.
-
Le nom du topic doit commencer par
connect-offset. -
Partitions : Le nombre de partitions pour le topic doit être supérieur à 1.
-
Moteur de stockage : Le moteur de stockage pour le topic doit être Local Storage.
-
cleanup.policy : La politique de nettoyage des journaux pour le topic doit être
compact.
connect-offset-kafka-fc-sink
Task Configuration Topic
Topic utilisé pour stocker les configurations des tâches. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment.
-
Topic : Nous recommandons que le nom du topic commence par
connect-config. -
Partitions : Le nombre de partitions pour le topic doit être égal à 1.
-
Moteur de stockage : Le moteur de stockage pour le topic doit être Local Storage.
-
cleanup.policy : La politique de nettoyage des journaux pour le topic doit être
compact.
connect-config-kafka-fc-sink
Task Status Topic
Topic utilisé pour stocker l'état des tâches. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment.
-
Topic : Nous recommandons que le nom du topic commence par
connect-status. -
Partitions : Nous recommandons de définir le nombre de partitions sur 6.
-
Moteur de stockage : Le moteur de stockage pour le topic doit être Local Storage.
-
cleanup.policy: La politique de nettoyage des journaux pour le topic doit être compact.
connect-status-kafka-fc-sink
Dead-letter Queue Topic
Topic utilisé pour stocker les données d'erreur du framework Connect. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment. Pour économiser les ressources de topic, vous pouvez utiliser le même topic pour ce paramètre et pour le paramètre Error data topic.
-
Topic : Nous recommandons que le nom du topic commence par
connect-error. -
Partitions : Nous recommandons de définir le nombre de partitions sur 6.
-
Moteur de stockage : Le moteur de stockage pour le topic peut être Local Storage ou Cloud Storage.
connect-error-kafka-fc-sink
Error Data Topic
Topic utilisé pour stocker les données d'erreur du connecteur de type Sink. Ce paramètre s'affiche lorsque vous cliquez sur Configure Runtime Environment. Pour économiser les ressources de topic, vous pouvez utiliser le même topic pour ce paramètre et pour le paramètre dead-letter queue topic.
-
Topic : Nous recommandons que le nom du topic commence par
connect-error. -
Partitions : Nous recommandons de définir le nombre de partitions sur 6.
-
Moteur de stockage : Le moteur de stockage pour le topic peut être Local Storage ou Cloud Storage.
connect-error-kafka-fc-sink
-
-
Sous l'onglet Configure Destination Service, sélectionnez Function Compute pour Target Service, configurez les paramètres suivants et cliquez sur Create.
RemarqueSi l'instance du connecteur se trouve dans la région Chine (Hangzhou) ou Chine (Chengdu), une boîte de dialogue Service Authorization apparaît pour créer les rôles liés au service AliyunServiceRoleForEventBridgeSourceKafka et AliyunServiceRoleForEventBridgeConnectVPC lorsque vous sélectionnez Function Compute comme Target Service. Dans la boîte de dialogue Service Authorization, cliquez sur Confirm, puis configurez les paramètres suivants et cliquez sur Create. Si les rôles liés au service ont déjà été créés, la boîte de dialogue Service Authorization ne s'affiche pas.
Paramètre
Description
Exemple
Cross-account/Cross-region
Indique si le connecteur de type Sink pour Function Compute synchronise les données vers un service Function Compute situé dans un autre compte ou une autre région. Valeur par défaut : No. Valeurs possibles :
-
No : Mode same-account, same-region.
-
Yes : Cross-account, cross-region ou les deux.
No
Region
Région du service Function Compute. Par défaut, il s'agit de la région du connecteur de type Sink pour Function Compute. Pour synchroniser les données entre différentes régions, vous devez activer l'accès public pour le connecteur, puis sélectionner la région de destination. Pour plus d'informations, consultez la rubrique Activer l'accès public pour un connecteur de type Sink pour Function Compute.
ImportantLorsque Cross-account/Cross-region est défini sur Yes, Region s'affiche.
cn-hangzhou
Service Endpoint
Endpoint du service Function Compute. Vous pouvez obtenir l'endpoint à partir de la section Common Info sur la page Overview de la console Function Compute.
-
Endpoint interne : Recommandé pour une latence faible. Utilisez ce type d'endpoint si votre instance ApsaraMQ for Kafka et votre service Function Compute se trouvent dans la même région.
-
Endpoint public : Non recommandé en raison d'une latence plus élevée. Utilisez ce type d'endpoint si votre instance ApsaraMQ for Kafka et votre service Function Compute se trouvent dans des régions différentes. Pour utiliser un endpoint public, vous devez activer l'accès public pour le connecteur. Pour plus d'informations, consultez la rubrique Activer l'accès public pour un connecteur de type Sink pour Function Compute.
ImportantLorsque Cross-account/Cross-region est défini sur Yes, l'Service Endpoint s'affiche.
http://188***.cn-hangzhou.fc.aliyuncs.com
Alibaba Cloud Account
ID du compte Alibaba Cloud auquel appartient le service Function Compute. Vous pouvez obtenir l'ID à partir de la section Common Info sur la page Overview de la console Function Compute.
ImportantSi Cross-account/Cross-region est défini sur Yes, Alibaba Cloud Account s'affiche.
188***
RAM Role Name
Nom du rôle RAM qu'ApsaraMQ for Kafka assume pour accéder au service Function Compute.
-
Pour un accès au sein du même compte, vous devez créer un rôle RAM dans votre compte, lui accorder des autorisations, puis saisir le nom du rôle. Pour plus d'informations, consultez les rubriques Créer une stratégie personnalisée, Créer un rôle RAM pour un service Alibaba Cloud de confiance et Accorder des autorisations à un rôle RAM.
-
Pour un accès inter-comptes, vous devez créer un rôle RAM dans le compte de destination, lui accorder des autorisations, puis saisir le nom du rôle. Pour plus d'informations, consultez les rubriques Créer une stratégie personnalisée, Créer un rôle RAM pour un service Alibaba Cloud de confiance et Accorder des autorisations à un rôle RAM.
ImportantLorsque Cross-account/Cross-region est défini sur Yes, RAM Role Name s'affiche.
AliyunKafkaConnectorRole
Service Name
Nom du service dans Function Compute.
guide-hello_world
Function Name
Nom de la fonction dans le service Function Compute.
hello_world
Version or Alias
Version ou alias du service Function Compute.
Important-
Si Cross-account/Cross-region est défini sur No, vous devez sélectionner soit Specified Version, soit Specified Alias.
-
Si Cross-account/Cross-region est défini sur Yes, vous devez saisir manuellement une version ou un alias de service.
LATEST
Service Version
Version du service Function Compute.
ImportantSi Cross-account/Cross-region est défini sur No et que Version or Alias est défini sur Specified Version, le paramètre Service Version s'affiche.
LATEST
Service Alias
Alias du service Function Compute.
ImportantLorsque Cross-account/Cross-region est défini sur No et que Version or Alias est défini sur Specified Alias, le paramètre Service Alias s'affiche.
jy
Transmission Mode
Mode d'envoi des messages. Valeurs possibles :
-
Asynchronous : Recommandé.
-
Synchronous : Non recommandé. Dans ce mode, un traitement lent des messages par Function Compute ralentit également ApsaraMQ for Kafka. Si un lot de messages prend plus de 5 minutes à être traité, un rééquilibrage du client est déclenché dans ApsaraMQ for Kafka.
Asynchronous
Data Size
Nombre maximal de messages à inclure dans un seul lot. Le connecteur agrège les messages en lots qui respectent à la fois ce nombre et les limites de taille de requête sous-jacentes (6 Mo pour le mode synchrone, 128 Ko pour le mode asynchrone). Par exemple, si le mode de livraison est asynchrone, la taille du lot est de 20 et que vous souhaitez envoyer 18 messages dont 17 ont une taille totale de 127 Ko et un message a une taille de 200 Ko, le connecteur agrège et envoie les 17 messages dans un seul lot. Le connecteur envoie le message restant, dont la taille dépasse 128 Ko, dans un lot séparé.
RemarqueSi vous définissez la key sur null lors de l'envoi d'un message, la requête n'inclut pas la key. Si vous définissez la value sur null, la requête n'inclut pas la value.
-
Si la taille totale des messages dans un lot ne dépasse pas la limite de taille de requête, la requête contient le contenu du message. Le code suivant fournit un exemple de requête :
[ { "key":"this is the message's key2", "offset":8, "overflowFlag":false, "partition":4, "timestamp":1603785325438, "topic":"Test", "value":"this is the message's value2", "valueSize":28 }, { "key":"this is the message's key9", "offset":9, "overflowFlag":false, "partition":4, "timestamp":1603785325440, "topic":"Test", "value":"this is the message's value9", "valueSize":28 }, { "key":"this is the message's key12", "offset":10, "overflowFlag":false, "partition":4, "timestamp":1603785325442, "topic":"Test", "value":"this is the message's value12", "valueSize":29 }, { "key":"this is the message's key38", "offset":11, "overflowFlag":false, "partition":4, "timestamp":1603785325464, "topic":"Test", "value":"this is the message's value38", "valueSize":29 } ] -
Si la taille d'un seul message dépasse la limite de taille de requête, la requête n'inclut pas le contenu du message. Le code suivant fournit un exemple de requête :
[ { "key":"123", "offset":4, "overflowFlag":true, "partition":0, "timestamp":1603779578478, "topic":"Test", "value":"1", "valueSize":272687 } ]RemarquePour obtenir le contenu du message, vous devez extraire le message en fonction de son offset.
50
Retries
Nombre de tentatives après l'échec de l'envoi d'un message. La valeur par défaut est 2. La plage de valeurs est comprise entre 1 et 3. Certaines erreurs provoquant l'échec de l'envoi des messages ne prennent pas en charge les nouvelles tentatives. La correspondance entre les codes d'erreur et la prise en charge des nouvelles tentatives est la suivante :
-
4XX : Les nouvelles tentatives ne sont pas prises en charge pour les erreurs 4xx, à l'exception de l'erreur 429.
-
5XX : Les nouvelles tentatives sont prises en charge.
Remarque-
Le connecteur appelle l'opération InvokeFunction pour envoyer des messages à Function Compute.
-
Si l'envoi d'un message échoue après le nombre maximal de tentatives, il est envoyé au topic de file d'attente de messages morts. Les messages dans un topic de file d'attente de messages morts ne déclenchent pas à nouveau les tâches du connecteur Function Compute. Nous vous recommandons de configurer des alertes pour le topic de file d'attente de messages morts afin de surveiller son état en temps réel et de traiter les exceptions rapidement.
2
Une fois le connecteur créé, vous pouvez le consulter sur la page Connectors.
-
-
-
Sur la page Connectors, localisez votre connecteur nouvellement créé et cliquez sur Deploy dans la colonne Actions.
Pour configurer les ressources Function Compute, choisissez dans la colonne Actions. Vous êtes redirigé vers la console Function Compute pour terminer la configuration.
Sur la page Connectors, localisez le connecteur cible et cliquez sur Test dans la colonne Actions.
-
Dans le panneau Send Message, envoyez un message de test.
-
Pour l'option Sending Method, sélectionnez Console.
Dans le champ Message Key, saisissez une clé de message, par exemple
demo.Dans le champ Message Content, saisissez le contenu du message, par exemple
{"key": "test"}.-
Pour l'option Send to Specified Partition, choisissez l'une des options suivantes :
Cliquez sur Yes et saisissez un ID de partition, tel que
0, dans le champ Partition ID. Pour trouver l'ID de partition, consultez la rubrique Afficher l'état des partitions.Cliquez sur No pour envoyer le message sans spécifier de partition.
Pour l'option Sending Method, sélectionnez Docker, puis exécutez la commande indiquée dans la section Run the Docker container to produce a sample message.
Pour l'option Sending Method, sélectionnez SDK. Choisissez ensuite le SDK et la méthode d'intégration adaptés à votre langage ou framework préféré pour envoyer un message.
-
Envoyer un message de test
Une fois le connecteur sink Function Compute déployé, envoyez un message vers la rubrique source de votre instance ApsaraMQ for Kafka pour vérifier que les données sont synchronisées avec Function Compute.
Journaux de fonction
Après avoir envoyé un message vers la rubrique source de votre instance ApsaraMQ for Kafka, vérifiez les journaux de la fonction pour confirmer sa réception. Pour plus d'informations, consultez la rubrique Configurer les journaux.
Votre message de test apparaît dans les journaux.
Sur la page des détails de la fonction, cliquez sur l'onglet Log query et sélectionnez Advanced query. Sélectionnez function-log comme Logstore. Le champ message des journaux contient le message provenant de la rubrique Kafka, par exemple [INFO] hello world:[{"key":"1","offset":1,"partition":0,"timestamp":1605598174308,"topic":"fc-test-input","value":"1"}]. Cela confirme que la fonction a bien reçu le message depuis le déclencheur Kafka.