Crie um conector sink do Function Compute para exportar dados de um tópico de origem em sua instância do ApsaraMQ for Kafka para uma função do Function Compute.
Pré-requisitos
Antes de criar um conector sink do Function Compute, certifique-se de atender aos seguintes pré-requisitos:
-
ApsaraMQ for Kafka
Ative o recurso de conector na instância do ApsaraMQ for Kafka. Para mais informações, consulte Ativar um conector.
-
Crie um tópico de origem na instância do ApsaraMQ for Kafka. Para mais informações, consulte Etapa 1: Criar um tópico.
Este exemplo utiliza um tópico chamado fc-test-input.
-
Function Compute
-
Crie uma função no Function Compute. Para mais informações, consulte Criar uma função.
ImportanteA função deve ser uma função de evento.
Este guia usa como exemplo uma função de evento chamada hello_world. A função está no serviço guide-hello_world e executa em um ambiente de execução Python. O código de exemplo da função é o seguinte:
# -*- 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)
-
-
Opcional: EventBridge
NotaEsta etapa é necessária apenas se a instância do ApsaraMQ for Kafka estiver na região China (Hangzhou) ou China (Chengdu).
Observações
A exportação de dados de um tópico de origem em uma instância do ApsaraMQ for Kafka para uma função no Function Compute só é possível quando ambos estão na mesma região. Para mais informações sobre as limitações dos conectores, consulte Limites.
-
Se a instância do ApsaraMQ for Kafka estiver na região China (Hangzhou) ou China (Chengdu), o conector será implantado no EventBridge.
Atualmente, o EventBridge é gratuito. Para mais informações, consulte Faturamento.
-
Ao criar um conector, o EventBridge cria automaticamente as seguintes funções vinculadas ao serviço: AliyunServiceRoleForEventBridgeSourceKafka e AliyunServiceRoleForEventBridgeConnectVPC.
Caso uma função vinculada ao serviço ainda não exista, o EventBridge a criará automaticamente para permitir que o EventBridge acesse o ApsaraMQ for Kafka e a VPC.
Se essas funções vinculadas ao serviço já existirem, o EventBridge não as criará novamente.
Para mais informações sobre funções vinculadas ao serviço, consulte funções vinculadas ao serviço.
No momento, não é possível visualizar os logs de execução das tarefas implantadas no EventBridge. Após a conclusão de uma tarefa do conector, verifique o progresso consultando o status de consumo do grupo de consumidores do tópico de origem. Para obter detalhes, consulte Visualizar status do consumidor.
Procedimento
Utilize um conector sink do Function Compute para exportar dados de um tópico de origem em uma instância do ApsaraMQ for Kafka para uma função no Function Compute:
-
Opcional: Ative o acesso entre regiões para o conector sink do Function Compute
ImportanteSe não precisar de acesso entre regiões, pule esta etapa.
Ativar acesso à internet para o conector sink do Function Compute
-
Opcional: Ative o acesso entre contas para o conector sink do Function Compute
ImportanteSe não precisar de acesso entre contas, pule esta etapa.
-
Opcional: Crie os tópicos e o grupo de consumidores necessários para o conector sink do Function Compute
ImportanteCaso não seja necessário personalizar os nomes dos tópicos e do grupo de consumidores, pule esta etapa.
Alguns tópicos exigidos por um conector sink do Function Compute devem usar o mecanismo de armazenamento local. Se a versão principal da instância do ApsaraMQ for Kafka for 0.10.2, não será possível criar manualmente tópicos com armazenamento local. Esses tópicos devem ser criados automaticamente.
-
Verifique os resultados
Ativar acesso à internet para um conector sink do FC
Se um conector sink do Function Compute precisar acessar serviços da Alibaba Cloud em outras regiões, ative o acesso à internet para ele. Para obter detalhes, consulte Ativar acesso à internet para um conector.
Criar uma política personalizada
Na conta de destino, crie uma política personalizada para conceder acesso ao Function Compute.
Faça login no console do RAM.
No painel de navegação à esquerda, escolha Permissions > Policies.
Na página Policies, clique em Create Policy.
-
Na página Create Policy, configure a política.
-
Na aba JSON, insira o script da política e clique em Next.
O script de política a seguir concede permissões para acessar o Function Compute:
{ "Version": "1", "Statement": [ { "Action": [ "fc:InvokeFunction", "fc:GetFunction" ], "Resource": "*", "Effect": "Allow" } ] } Em Basic Information, insira KafkaConnectorFcAccess no campo Name.
Clique em OK.
-
Criar uma função do RAM
Crie uma função do RAM na conta de destino. Não é possível selecionar o ApsaraMQ for Kafka como serviço confiável durante a criação de uma função do RAM. Portanto, selecione outro serviço suportado e modifique manualmente a política de confiança após a criação da função.
No painel de navegação à esquerda, escolha Identity Management > Roles.
Na página Roles, clique em Create Role.
-
No painel Create Role, configure a função.
Selecione Alibaba Cloud Service como tipo de entidade confiável e clique em Next.
Na seção Role Type, selecione Normal Service Role. Em Role Name, insira AliyunKafkaConnectorRole. Na lista suspensa Select Trusted Service, selecione Function Compute e clique em Complete.
Na página Roles, localize e clique em AliyunKafkaConnectorRole.
Na página de detalhes da AliyunKafkaConnectorRole, clique na aba Trust Policy Management e, em seguida, clique em Edit Trust Policy.
-
No painel Edit Trust Policy, substitua fc no script por alikafka e clique em OK.
Após salvar as alterações, na aba Trust Policy Management da AliyunKafkaConnectorRole, confirme se o parâmetro
Servicena política de confiança foi atualizado paraalikafka.aliyuncs.come se o parâmetroActionestá definido comosts:AssumeRole. No painel de navegação à esquerda, acesse Identity Management > Roles.
Na página Roles, localize AliyunKafkaConnectorRole e clique em Add Permissions na coluna Actions.
-
No painel Add Permissions, adicione a política KafkaConnectorFcAccess.
Na seção Select Policy, selecione Custom Policy.
Na lista Authorization Policy Name, localize e clique em KafkaConnectorFcAccess.
Clique em OK.
Clique em Complete.
Faça login no console do ApsaraMQ for Kafka.
-
Na página Overview, selecione uma região na seção Resource Distribution.
ImportanteCrie os tópicos na mesma região da sua aplicação, ou seja, onde a instância ECS está implantada. Tópicos não podem ser utilizados entre regiões diferentes. Por exemplo, se um tópico for criado na região China (Beijing), tanto o produtor quanto o consumidor de mensagens devem rodar em uma instância ECS também localizada na região China (Beijing).
Na página Instances, clique no nome da instância desejada.
No painel de navegação à esquerda, clique em Topics.
Na página Topics, clique em Create Topic.
-
No painel Create Topic, configure as definições do tópico e clique em OK.
Parâmetro
Descrição
Exemplo
Name
Nome do tópico.
NotaO Kafka considera idênticos os nomes de tópicos que contenham sublinhados (
xxx_xxx) e pontos (xxx.xxx). Ao tentar criar um tópico duplicado, o sistema retornará um erro.demo
Description
Breve descrição do tópico.
teste demo
Partitions
Quantidade de partições do tópico.
12
Storage Engine
NotaAtualmente, a seleção do mecanismo de armazenamento está disponível apenas para instâncias da Professional Edition não serverless. Para outros tipos de instância, essa opção não aparece e o Cloud Storage é utilizado por padrão.
Mecanismo de armazenamento das mensagens no tópico.
ApsaraMQ for Kafka suporta os dois mecanismos de armazenamento a seguir:
-
Cloud Storage: Este mecanismo utiliza discos da Alibaba Cloud para armazenamento subjacente, oferecendo alto desempenho, baixa latência e alta confiabilidade através de um mecanismo distribuído de três réplicas. Se a Instance Edition da instância for Standard (High Write), apenas o Cloud Storage poderá ser usado.
-
Local Storage: Este mecanismo utiliza o algoritmo nativo de replicação ISR (in-sync replica) do Kafka e um mecanismo distribuído de três réplicas.
Cloud Storage
Message Type
Tipo de mensagens no tópico.
-
Normal Message: Por padrão, o Kafka distribui mensagens com a mesma chave para a mesma partição, armazenando-as na ordem de envio. Caso ocorra falha em um nó do cluster, as mensagens podem ficar fora de ordem. Se o Storage Engine estiver definido como Cloud Storage, o sistema seleciona Normal Message por padrão.
-
Partitionally Ordered Message: Por padrão, o Kafka distribui mensagens com a mesma chave para a mesma partição, armazenando-as na ordem de envio. Mesmo diante de falhas em nós do cluster, a ordem das mensagens dentro da partição é garantida. No entanto, o envio para algumas partições pode falhar até que elas se recuperem. Se o Storage Engine estiver definido como Local Storage, o sistema seleciona Partitionally Ordered Message por padrão.
Normal Message
Log Cleanup Policy
Política de limpeza de logs do tópico.
Ao selecionar Local Storage como Storage Engine (atualmente, apenas instâncias da Professional Edition suportam armazenamento local; essa opção não está disponível para instâncias da Standard Edition), configure a Log Cleanup Policy.
ApsaraMQ for Kafka suporta as duas políticas de limpeza de logs a seguir.
-
Delete: Política padrão de limpeza de mensagens. Se houver espaço suficiente em disco, as mensagens são retidas pelo período especificado. Caso o espaço seja insuficiente (geralmente quando o uso do disco ultrapassa 85%), o sistema exclui as mensagens mais antigas antecipadamente para garantir a disponibilidade do serviço.
-
Compact: Utiliza a política de limpeza Kafka Log Compaction. A compactação de logs garante que o sistema retenha o valor mais recente para cada chave de mensagem. É usada principalmente em cenários como restauração de estado após falha do sistema ou recarregamento de cache após reinicialização. Por exemplo, o Kafka Connect e o Confluent Schema Registry utilizam tópicos compactados para armazenar estado do sistema e dados de configuração.
ImportanteTópicos compactados geralmente são usados apenas para componentes específicos do ecossistema, como Kafka Connect ou Confluent Schema Registry. Não defina essa propriedade para tópicos destinados à produção e consumo geral de mensagens. Para mais informações, consulte a Biblioteca de Demos do ApsaraMQ for Kafka.
Compact
Tag
Tags associadas ao tópico.
demo
Após a criação, o tópico aparecerá na lista de tópicos na página Topics.
-
Faça login no console do ApsaraMQ for Kafka.
Na página Overview, selecione uma região na seção Resource Distribution.
Na página Instances, clique no nome da instância desejada.
No painel de navegação à esquerda, clique em Groups.
Na página Groups, clique em Create Group.
-
No painel Create Group, insira um nome para o grupo de consumidores na caixa de texto Group ID, adicione uma breve descrição na caixa de texto Description, adicione tags ao grupo de consumidores e clique em OK.
Após a criação, o grupo de consumidores aparecerá na lista da página Groups.
Faça login no console do ApsaraMQ for Kafka.
Na página Overview, selecione uma região na seção Resource Distribution.
No painel de navegação à esquerda, clique em Connectors.
Na página Connectors, selecione a instância à qual o conector pertence na lista suspensa Select Instance e clique em Create Connector.
-
No assistente Create Connector, conclua as etapas a seguir.
-
Na aba Configure Basic Information, configure os parâmetros abaixo conforme necessário e clique em Next.
Parâmetro
Descrição
Exemplo
Name
Nome do conector. O nome deve atender aos seguintes requisitos:
-
O nome pode ter até 48 caracteres e conter apenas dígitos, letras minúsculas e hifens (-). Não pode começar com hífen (-).
-
O nome deve ser único dentro de uma instância do ApsaraMQ for Kafka.
A tarefa de sincronização de dados do conector utiliza um grupo de consumidores chamado
connect-nome-da-tarefa. Se você não criar esse grupo de consumidores manualmente, o sistema o criará automaticamente.kafka-fc-sink
Instance
Por padrão, o nome e o ID da instância são exibidos.
demo alikafka_post-cn-st21p8vj****
-
-
Na aba Configure Source Service, defina Data Source como Message Queue for Apache Kafka, configure os parâmetros a seguir e clique em Next.
NotaSe você já tiver criado um tópico e um grupo de consumidores, escolha a criação manual de recursos e insira as informações dos seus recursos existentes. Caso contrário, opte pela criação automática de recursos.
Tabela 1. Parâmetros para configurar o serviço de origem
Parâmetro
Descrição
Exemplo
Data Source Topic
Tópico de origem de onde os dados serão sincronizados.
fc-test-input
Consumer Thread Concurrency
Número de threads de consumo concorrentes para o tópico de origem. Valor padrão: 6. Valores válidos:
-
1
-
2
-
3
-
6
-
12
6
Consumer Offset
Offset a partir do qual o consumo será iniciado. Valores válidos:
-
Earliest Offset: Inicia o consumo a partir do offset mais antigo.
-
Latest Offset: Inicia o consumo a partir do offset mais recente.
Earliest Offset
VPC ID
ID da VPC onde a tarefa de sincronização de dados será executada. Este parâmetro é exibido ao clicar em Configure Runtime Environment. Por padrão, corresponde à VPC da sua instância do ApsaraMQ for Kafka. Não é necessário especificar um valor.
vpc-bp1xpdnd3l***
vSwitch ID
ID do vSwitch onde a tarefa de sincronização de dados será executada. Este parâmetro é exibido ao clicar em Configure Runtime Environment. O vSwitch deve estar na mesma VPC da instância do ApsaraMQ for Kafka. Por padrão, corresponde ao vSwitch especificado durante a implantação da instância do ApsaraMQ for Kafka.
vsw-bp1d2jgg81***
Failure Handling Policy
Controla o comportamento quando há falha na entrega de uma mensagem de uma partição. Este parâmetro é exibido ao clicar em Configure Runtime Environment. Valores válidos:
-
Continue Subscription: Continua consumindo da partição e registra o erro em log.
-
Stop Subscription: Interrompe o consumo da partição e registra o erro em log.
Nota-
Para mais informações sobre como visualizar logs, consulte Operações do conector.
-
Para saber como encontrar soluções com base em códigos de erro, consulte Códigos de erro.
Continue Subscription
Resource Creation Method
Método utilizado para criar o tópico e o grupo de consumidores exigidos pelo conector. Este parâmetro é exibido ao clicar em Configure Runtime Environment.
-
Auto
-
Manual
Auto
Connector Consumer Group
Grupo de consumidores utilizado pela tarefa de sincronização de dados do conector. Este parâmetro é exibido ao clicar em Configure Runtime Environment. O nome do grupo de consumidores deve seguir o formato connect-nome-da-tarefa.
connect-kafka-fc-sink
Task Offset Topic
Tópico usado para armazenar offsets de consumo. Este parâmetro é exibido ao clicar em Configure Runtime Environment.
-
O nome do tópico deve começar com
connect-offset. -
Partições: O número de partições do tópico deve ser maior que 1.
-
Mecanismo de armazenamento: O mecanismo de armazenamento do tópico deve ser Local Storage.
-
cleanup.policy: A política de limpeza de logs do tópico deve ser
compact.
connect-offset-kafka-fc-sink
Task Configuration Topic
Tópico usado para armazenar configurações de tarefas. Este parâmetro é exibido ao clicar em Configure Runtime Environment.
-
Tópico: Recomenda-se que o nome do tópico comece com
connect-config. -
Partições: O número de partições do tópico deve ser 1.
-
Mecanismo de armazenamento: O mecanismo de armazenamento do tópico deve ser Local Storage.
-
cleanup.policy: A política de limpeza de logs do tópico deve ser
compact.
connect-config-kafka-fc-sink
Task Status Topic
Tópico usado para armazenar o status das tarefas. Este parâmetro é exibido ao clicar em Configure Runtime Environment.
-
Tópico: Recomenda-se que o nome do tópico comece com
connect-status. -
Partições: Recomenda-se definir o número de partições como 6.
-
Mecanismo de armazenamento: O mecanismo de armazenamento do tópico deve ser Local Storage.
-
cleanup.policy: A política de limpeza de logs do tópico deve ser compact.
connect-status-kafka-fc-sink
Dead-letter Queue Topic
Tópico usado para armazenar dados de erro do framework Connect. Este parâmetro é exibido ao clicar em Configure Runtime Environment. Para economizar recursos de tópicos, use o mesmo tópico tanto para este parâmetro quanto para o parâmetro Error data topic.
-
Tópico: Recomenda-se que o nome do tópico comece com
connect-error. -
Partições: Recomenda-se definir o número de partições como 6.
-
Mecanismo de armazenamento: O mecanismo de armazenamento do tópico pode ser Local Storage ou Cloud Storage.
connect-error-kafka-fc-sink
Error Data Topic
Tópico usado para armazenar dados de erro do sink. Este parâmetro é exibido ao clicar em Configure Runtime Environment. Para economizar recursos de tópicos, use o mesmo tópico tanto para este parâmetro quanto para o parâmetro dead-letter queue topic.
-
Tópico: Recomenda-se que o nome do tópico comece com
connect-error. -
Partições: Recomenda-se definir o número de partições como 6.
-
Mecanismo de armazenamento: O mecanismo de armazenamento do tópico pode ser Local Storage ou Cloud Storage.
connect-error-kafka-fc-sink
-
-
Na aba Configure Destination Service, selecione Function Compute para Target Service, configure os parâmetros a seguir e clique em Create.
NotaSe a instância do conector estiver na região China (Hangzhou) ou China (Chengdu), uma caixa de diálogo Service Authorization aparecerá para a criação das funções vinculadas ao serviço AliyunServiceRoleForEventBridgeSourceKafka e AliyunServiceRoleForEventBridgeConnectVPC ao selecionar Function Compute como Target Service. Na caixa de diálogo Service Authorization, clique em Confirm, configure os parâmetros a seguir e clique em Create. Se as funções vinculadas ao serviço já tiverem sido criadas, a caixa de diálogo Service Authorization não será exibida.
Parâmetro
Descrição
Exemplo
Cross-account/Cross-region
Define se o conector sink do FC sincroniza dados para um serviço Function Compute em uma conta ou região diferente. Valor padrão: No. Valores válidos:
-
No: Modo de mesma conta e mesma região.
-
Yes: Entre contas, entre regiões ou ambos.
No
Region
Região do serviço Function Compute. Por padrão, corresponde à região do conector sink do FC. Para sincronizar dados entre regiões, ative o acesso público para o conector e então selecione a região de destino. Para mais informações, consulte Ativar acesso público para um conector sink do FC.
ImportanteQuando Cross-account/Cross-region estiver definido como Yes, o campo Region será exibido.
cn-hangzhou
Service Endpoint
Endpoint do serviço Function Compute. Obtenha o endpoint na seção Common Info da página Overview do console do Function Compute.
-
Endpoint interno: Recomendado para baixa latência. Use este tipo de endpoint se a instância do ApsaraMQ for Kafka e o serviço Function Compute estiverem na mesma região.
-
Endpoint público: Não recomendado devido à maior latência. Use este tipo de endpoint se a instância do ApsaraMQ for Kafka e o serviço Function Compute estiverem em regiões diferentes. Para usar um endpoint público, ative o acesso público para o conector. Para mais informações, consulte Ativar acesso público para um conector sink do FC.
ImportanteQuando Cross-account/Cross-region estiver definido como Yes, o campo Service Endpoint será exibido.
http://188***.cn-hangzhou.fc.aliyuncs.com
Alibaba Cloud Account
ID da conta Alibaba Cloud à qual o serviço Function Compute pertence. Obtenha o ID na seção Common Info da página Overview do console do Function Compute.
ImportanteSe Cross-account/Cross-region estiver definido como Yes, o campo Alibaba Cloud Account será exibido.
188***
RAM Role Name
Nome da função do RAM que o ApsaraMQ for Kafka assume para acessar o serviço Function Compute.
-
Para acesso na mesma conta, crie uma função do RAM na sua conta, conceda permissões à função e insira o nome da função. Para mais informações, consulte Criar uma política personalizada, Criar uma função do RAM para um serviço confiável da Alibaba Cloud e Conceder permissões a uma função do RAM.
-
Para acesso entre contas, crie uma função do RAM na conta de destino, conceda permissões à função e insira o nome da função. Para mais informações, consulte Criar uma política personalizada, Criar uma função do RAM para um serviço confiável da Alibaba Cloud e Conceder permissões a uma função do RAM.
ImportanteQuando Cross-account/Cross-region estiver definido como Yes, o campo RAM Role Name será exibido.
AliyunKafkaConnectorRole
Service Name
Nome do serviço no Function Compute.
guide-hello_world
Function Name
Nome da função no serviço Function Compute.
hello_world
Version or Alias
Versão ou alias do serviço Function Compute.
Importante-
Se Cross-account/Cross-region estiver definido como No, selecione Specified Version ou Specified Alias.
-
Se Cross-account/Cross-region estiver definido como Yes, insira manualmente uma versão ou alias do serviço.
LATEST
Service Version
Versão do serviço Function Compute.
ImportanteSe Cross-account/Cross-region estiver definido como No e Version or Alias estiver definido como Specified Version, o parâmetro Service Version será exibido.
LATEST
Service Alias
Alias do serviço Function Compute.
ImportanteQuando Cross-account/Cross-region estiver definido como No e Version or Alias estiver definido como Specified Alias, o parâmetro Service Alias será exibido.
jy
Transmission Mode
Modo de envio de mensagens. Valores válidos:
-
Asynchronous: Recomendado.
-
Synchronous: Não recomendado. Neste modo, o processamento lento de mensagens pelo Function Compute também desacelera o ApsaraMQ for Kafka. Se um lote de mensagens levar mais de 5 minutos para ser processado, um rebalanceamento de cliente será acionado no ApsaraMQ for Kafka.
Asynchronous
Data Size
Número máximo de mensagens a serem incluídas em um único lote. O conector agrega mensagens em lotes que respeitam tanto este número quanto os limites de tamanho de requisição subjacentes (6 MB para síncrono, 128 KB para assíncrono). Por exemplo, se o modo de entrega for assíncrono, o tamanho do lote for 20 e você quiser enviar 18 mensagens onde 17 mensagens têm um tamanho total de 127 KB e uma mensagem tem tamanho de 200 KB, o conector agregará e enviará as 17 mensagens em um lote. A mensagem restante, cujo tamanho excede 128 KB, será enviada em um lote separado.
NotaSe você definir a key como null ao enviar uma mensagem, a requisição não incluirá a key. Se você definir o value como null, a requisição não incluirá o value.
-
Se o tamanho total das mensagens em um lote não exceder o limite de tamanho da requisição, a requisição conterá o conteúdo da mensagem. O código a seguir fornece um exemplo de requisição:
[ { "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 } ] -
Se o tamanho de uma única mensagem exceder o limite de tamanho da requisição, a requisição não incluirá o conteúdo da mensagem. O código a seguir fornece um exemplo de requisição:
[ { "key":"123", "offset":4, "overflowFlag":true, "partition":0, "timestamp":1603779578478, "topic":"Test", "value":"1", "valueSize":272687 } ]NotaPara obter o conteúdo da mensagem, busque a mensagem com base em seu offset.
50
Retries
Número de tentativas após falha no envio de uma mensagem. O valor padrão é 2. O intervalo de valores vai de 1 a 3. Alguns erros que causam falha no envio de mensagens não suportam novas tentativas. O mapeamento entre Códigos de erro e o suporte a tentativas é o seguinte:
-
4XX: Novas tentativas não são suportadas para nenhum erro 4xx, exceto para 429.
-
5XX: Novas tentativas são suportadas.
Nota-
O conector chama a operação InvokeFunction para enviar mensagens ao Function Compute.
-
Se uma mensagem falhar ao ser enviada após o número máximo de tentativas, ela será enviada para o tópico de fila de mensagens mortas. Mensagens em um tópico de fila de mensagens mortas não acionam novamente as tarefas do conector do Function Compute. Configure alertas para o tópico de fila de mensagens mortas para monitorar seu status em tempo real e tratar exceções de maneira oportuna.
2
Após a criação do conector, visualize-o na página Connectors.
-
-
-
Na página Connectors, localize o conector recém-criado e clique em Deploy na coluna Actions.
Para configurar recursos do Function Compute, escolha na coluna Actions. Você será redirecionado ao console do Function Compute para concluir a configuração.
Na página Connectors, localize o conector desejado e clique em Test na coluna Actions.
-
No painel Send Message, envie uma mensagem de teste.
-
Para Sending Method, selecione Console.
No campo Message Key, insira uma chave de mensagem, como
demo.No campo Message Content, insira o conteúdo da mensagem, como
{"key": "test"}.-
Para Send to Specified Partition, escolha uma opção:
Clique em Yes e insira um ID de partição, como
0, no campo Partition ID. Para encontrar o ID da partição, consulte Visualizar status da partição.Clique em No para enviar a mensagem sem especificar uma partição.
Para Sending Method, selecione Docker e execute o comando da seção Run the Docker container to produce a sample message.
Para Sending Method, selecione SDK. Em seguida, escolha o SDK e o método de integração para a linguagem ou framework de sua preferência para enviar uma mensagem.
-
Adicionar permissões
Na conta de destino, conceda permissões à função do RAM para acessar o Function Compute.
Criar tópicos para o conector sink do Function Compute
No console do ApsaraMQ for Kafka, crie manualmente os cinco tópicos exigidos por um conector sink do Function Compute: um tópico de offset de tarefa, um tópico de configuração de tarefa, um tópico de status de tarefa, um tópico de fila de mensagens mortas e um tópico de dados de erro. Esses tópicos possuem requisitos diferentes quanto à contagem de partições e ao mecanismo de armazenamento. Para mais informações, consulte Parâmetros na etapa Configurar Serviço de Origem.
Criar grupo de consumidores para o conector sink do FC
Crie manualmente o grupo de consumidores para uma tarefa de sincronização de dados do conector sink do Function Compute no console do ApsaraMQ for Kafka. O nome do grupo de consumidores deve seguir o formato connect-nome-da-tarefa. Para mais informações, consulte Parâmetros na etapa Configurar Serviço de Origem.
Criar e implantar um conector sink do FC
Crie e implante um conector sink do FC para sincronizar dados do ApsaraMQ for Kafka para o Function Compute.
Enviar uma mensagem de teste
Após implantar o conector sink do Function Compute, envie uma mensagem para o tópico de origem em sua instância do ApsaraMQ for Kafka para verificar se os dados estão sendo sincronizados com o Function Compute.
Logs da função
Após enviar uma mensagem para o tópico de origem em sua instância do ApsaraMQ for Kafka, verifique os logs da função para confirmar que ela recebeu a mensagem. Para mais informações, consulte Configurar logs.
Sua mensagem de teste aparecerá nos logs.
Na página de detalhes da função, clique na aba Log query e selecione Advanced query. Selecione function-log como Logstore. O campo message nos logs contém a mensagem do tópico Kafka, por exemplo, [INFO] hello world:[{"key":"1","offset":1,"partition":0,"timestamp":1605598174308,"topic":"fc-test-input","value":"1"}]. Isso confirma que a função recebeu com sucesso a mensagem do gatilho do Kafka.