Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
Crie e execute um aplicativo Managed Service for Apache Flink para o aplicativo Python
Nesta seção, você cria um aplicativo Managed Service for Apache Flink para aplicativo Python com um fluxo do Kinesis como fonte e coletor.
Esta seção contém as seguintes etapas.
Crie recursos dependentes
Antes de criar um Managed Service for Apache Flink para este exercício, você cria os seguintes recursos dependentes:
-
Duas transmissões do Kinesis para entrada e saída.
-
Um bucket do Amazon S3 para armazenar o código do aplicativo.
nota
Este tutorial pressupõe que você está implantando seu aplicativo na região us-east-1. Se você usa outra região, deve adaptar todas as etapas corretamente.
Criar dois fluxos do Kinesis
Antes de criar um aplicativo do Managed Service for Apache Flink para este exercício, crie dois fluxos de dados do Kinesis (ExampleInputStream e ExampleOutputStream) na mesma região que você usará para implantar seu aplicativo (us-east-1 neste exemplo). O aplicativo usa esses fluxos para os fluxos de origem e de destino do aplicativo.
É possível criar esses fluxos usando o console do Amazon Kinesis ou o comando da AWS CLI a seguir. Para obter instruções sobre o console, consulte Criar e atualizar fluxos de dados no Guia do desenvolvedor do Amazon Kinesis Data Streams.
Como criar os fluxos de dados (AWS CLI)
-
Para criar o primeiro fluxo (
ExampleInputStream), use o comandocreate-streamAWS CLI do Amazon Kinesis a seguir.$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-east-1 -
Para criar o segundo fluxo que o aplicativo usa para gravar a saída, execute o mesmo comando, alterando o nome da transmissão para
ExampleOutputStream.$ aws kinesis create-stream \ --stream-name ExampleOutputStream \ --shard-count 1 \ --region us-east-1
Criar um bucket do Amazon S3
Você pode criar um bucket do Amazon S3 usando o console. Para obter instruções sobre como criar esse recurso, consulte os tópicos a seguir:
-
Para obter instruções, consulte Como criar um bucket do S3? no Guia do usuário do Amazon Simple Storage Service. Dê ao bucket do Amazon S3 um nome globalmente exclusivo anexando seu nome de login.
nota
Crie o bucket do S3 na região que você usa para este tutorial (us-east-1).
Outros recursos
Quando você cria seu aplicativo, o Managed Service for Apache Flink cria os seguintes recursos do Amazon CloudWatch, caso eles ainda não existam:
-
Um grupo de logs chamado
/AWS/KinesisAnalytics-java/<my-application>. -
Um fluxo de logs chamado
kinesis-analytics-log-stream.
Configurar seu ambiente de desenvolvimento local
Para desenvolvimento e depuração, você pode executar o aplicativo Python Flink na máquina. Você pode iniciar o aplicativo a partir da linha de comando com python
main.py ou em um IDE Python de sua preferência.
nota
Na máquina de desenvolvimento, você deve ter o Python 3.10 ou 3.11, o Java 11, o Apache Maven e o Git instalados. Recomendamos que você use um IDE como PyCharm
Instale a biblioteca PyFlink
Para desenvolver o aplicativo e executá-lo localmente, você deve instalar a biblioteca Flink Python.
-
Crie um ambiente Python autônomo usando VirtualEnv, Conda ou qualquer ferramenta Python similar.
-
Instale a biblioteca PyFlink nesse ambiente. Use a mesma versão de runtime do Apache Flink que você usará no Amazon Managed Service for Apache Flink. Atualmente, o runtime recomendado é 1.19.1.
$ pip install apache-flink==1.19.1 -
Certifique-se de que o ambiente esteja ativo ao executar o aplicativo. Se você executar o aplicativo no IDE, certifique-se de que ele esteja usando o ambiente como runtime. O processo depende do IDE que você está usando:
nota
Você só precisa instalar a biblioteca PyFlink. Você não precisa instalar um cluster Apache Flink na máquina.
Autentique a sessão AWS
O aplicativo usa fluxos de dados do Kinesis para publicar dados. Ao executar localmente, você deve ter uma sessão AWS autenticada válida com permissões para gravar no fluxo de dados do Kinesis. Use as etapas a seguir para autenticar sua sessão:
-
Se você não tiver o AWS CLI e um perfil nomeado com credencial válida configurado, consulte Configurar a AWS Command Line Interface (AWS CLI).
-
Verifique se o seu AWS CLI está configurado corretamente e se seus usuários têm permissões para gravar no fluxo de dados do Kinesis publicando o seguinte registro de teste:
$ aws kinesis put-record --stream-name ExampleOutputStream --data TEST --partition-key TEST -
Se o seu IDE tiver um plug-in para integrar-se a AWS, você poderá usá-lo para passar as credenciais para o aplicativo em execução no IDE. Para obter mais informações, consulte AWS Toolkit for PyCharm
, AWS Toolkit for Visual Studio Code e AWS Toolkit for IntelliJ IDEA .
Baixe e examine o código Python da transmissão Apache Flink
O código Python do aplicativo desta amostra está disponível no GitHub. Para fazer download do código do aplicativo, faça o seguinte:
-
Duplique o repositório remoto usando o seguinte comando:
git clone https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples.git -
Navegue até o diretório
./python/GettingStarted.
Analise os componentes do aplicativo
O código do aplicativo está localizado em main.py. Usamos SQL incorporado em Python para definir o fluxo do aplicativo.
nota
Para uma experiência de desenvolvedor otimizada, o aplicativo foi projetado para ser executado sem nenhuma alteração de código no Amazon Managed Service for Apache Flink e localmente, para desenvolvimento em sua máquina. O aplicativo usa a variável de ambiente IS_LOCAL =
true para detectar quando está sendo executado localmente. Você deve definir a variável de ambiente IS_LOCAL = true no seu shell ou na configuração de execução do seu IDE.
-
O aplicativo configura o ambiente de execução e lê a configuração do runtime. Para funcionar no Amazon Managed Service for Apache Flink e localmente, o aplicativo verifica a variável
IS_LOCAL.-
O comportamento padrão a seguir é quando o aplicativo é executado no Amazon Managed Service for Apache Flink:
-
Carregue as dependências empacotadas com o aplicativo. Para obter mais informações, consulte o (link)
-
Carregue a configuração das propriedades do Runtime que você define no aplicativo Amazon Managed Service for Apache Flink. Para obter mais informações, consulte o (link)
-
-
Quando o aplicativo detecta
IS_LOCAL = truequando você o executa localmente:-
Carrega dependências externas do projeto.
-
Carrega a configuração do arquivo
application_properties.jsonincluído no projeto.... APPLICATION_PROPERTIES_FILE_PATH = "/etc/flink/application_properties.json" ... is_local = ( True if os.environ.get("IS_LOCAL") else False ) ... if is_local: APPLICATION_PROPERTIES_FILE_PATH = "application_properties.json" CURRENT_DIR = os.path.dirname(os.path.realpath(__file__)) table_env.get_config().get_configuration().set_string( "pipeline.jars", "file:///" + CURRENT_DIR + "/target/pyflink-dependencies.jar", )
-
-
-
O aplicativo define uma tabela de origem com uma declaração
CREATE TABLE, usando o Kinesis Connector. Essa tabela lê dados do fluxo de entrada do Kinesis. O aplicativo usa o nome do fluxo, a região e a posição inicial da configuração do runtime. table_env.execute_sql(f""" CREATE TABLE prices ( ticker VARCHAR(6), price DOUBLE, event_time TIMESTAMP(3), WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND ) PARTITIONED BY (ticker) WITH ( 'connector' = 'kinesis', 'stream' = '{input_stream_name}', 'aws.region' = '{input_stream_region}', 'format' = 'json', 'json.timestamp-format.standard' = 'ISO-8601' ) """) -
O aplicativo também define uma tabela de coletor usando o Kinesis Connector
neste exemplo. Essa tabela envia dados para o fluxo de saída do Kinesis. table_env.execute_sql(f""" CREATE TABLE output ( ticker VARCHAR(6), price DOUBLE, event_time TIMESTAMP(3) ) PARTITIONED BY (ticker) WITH ( 'connector' = 'kinesis', 'stream' = '{output_stream_name}', 'aws.region' = '{output_stream_region}', 'sink.partitioner-field-delimiter' = ';', 'sink.batch.max-size' = '100', 'format' = 'json', 'json.timestamp-format.standard' = 'ISO-8601' )""") -
Por fim, o aplicativo executa um SQL que
INSERT INTO...a tabela de coletor a partir da tabela de origem. Em um aplicativo mais complexo, é provável que você tenha etapas extras para transformar os dados antes de gravar no coletor.table_result = table_env.execute_sql("""INSERT INTO output SELECT ticker, price, event_time FROM prices""") -
Você deve adicionar outra etapa no final da função
main()para executar o aplicativo localmente:if is_local: table_result.wait()Sem essa instrução, o aplicativo é encerrado imediatamente quando é executado localmente. Você não deve executar essa declaração ao executar seu aplicativo no Amazon Managed Service for Apache Flink.
Gerencie dependências do JAR
Um aplicativo PyFlink geralmente requer um ou mais conectores. O aplicativo neste tutorial usa o Kinesis Connector
Neste exemplo, mostramos como usar o Apache Maven para buscar as dependências e empacotar o aplicativo para ser executado no Managed Service para Apache Flink.
nota
Existem formas alternativas de buscar e empacotar dependências. Este exemplo demonstra um método que funciona corretamente com um ou mais conectores. Ele também permite que executar o aplicativo localmente, para desenvolvimento e no Managed Service for Apache Flink sem alterações no código.
Usar o arquivo pom.xml
O Apache Maven usa o arquivo pom.xml para controlar dependências e pacotes de aplicativos.
Todas as dependências do JAR são especificadas no arquivo pom.xml no bloco <dependencies>...</dependencies>.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> ... <dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kinesis</artifactId> <version>4.3.0-1.19</version> </dependency> </dependencies> ...
Para encontrar o artefato e a versão corretos do conector a serem usados, consulte Use os conectores do Apache Flink com o Managed Service for Apache Flink. Certifique-se de consultar a versão do Apache Flink que está usando. Neste exemplo, usamos o conector do Kinesis. Para o Apache Flink 1.19, a versão do conector é 4.3.0-1.19.
nota
Se estiver usando o Apache Flink 1.19, não há uma versão de conector lançada especificamente para essa versão. Use os conectores lançados para a 1.18.
Baixe e empacote dependências
Use o Maven para baixar as dependências definidas no arquivo pom.xml e empacotá-las para o aplicativo Python Flink.
-
Navegue até o diretório que contém o projeto Python Getting Started chamado
python/GettingStarted. -
Execute o seguinte comando:
$ mvn package
O Maven cria um novo arquivo chamado ./target/pyflink-dependencies.jar. Quando está desenvolvendo localmente em sua máquina, o aplicativo Python procura esse arquivo.
nota
Se você esquecer de executar este comando, ao tentar executar seu aplicativo, ele falhará com o erro: Não foi possível encontrar nenhuma fábrica para o identificador “kinesis”.
Gravação de registros de amostra no fluxo de entrada
Nesta seção, você enviará amostras de registros para o fluxo a serem processados pelo aplicativo. Você tem duas opções para gerar dados de amostra, usando um script Python ou o Kinesis Data Generator
Gerar dados de amostra usando um script Python
É possível usar um script Python para enviar registros de amostra para o fluxo.
nota
Para executar esse script do Python, você deve usar o Python 3.x e ter a biblioteca AWS SDK para Python (Boto)
Para começar a enviar dados de teste para o fluxo de entrada do Kinesis:
-
Baixe o script
stock.pyPython do gerador de dados desde o repositório GitHub do gerador de dados. -
Execute o script
stock.py:$ python stock.py
Mantenha o script em execução enquanto você conclui o restante do tutorial. Agora você pode executar o aplicativo Apache Flink.
Gerar dados de amostra usando o Kinesis Data Generator
Como alternativa ao script Python, você pode usar o Kinesis Data Generator
Para configurar e executar o Kinesis Data Generator:
-
Siga as instruções na documentação do Kinesis Data Generator
para configurar o acesso à ferramenta. Você executará um modelo CloudFormation que configura um usuário e uma senha. -
Acesse o Kinesis Data Generator por meio do URL gerado pelo modelo CloudFormation. Encontre o URL na guia Saída após a conclusão do modelo do CloudFormation.
-
Configure o gerador de dados:
-
Região: selecione a região que utilizada neste tutorial: us-east-1
-
Fluxo/fluxo de entrega: selecione o fluxo de entrada que o aplicativo usará:
ExampleInputStream -
Registros por segundo: 100
-
Modelo de registro: copie e cole o modelo a seguir:
{ "event_time" : "{{date.now("YYYY-MM-DDTkk:mm:ss.SSSSS")}}, "ticker" : "{{random.arrayElement( ["AAPL", "AMZN", "MSFT", "INTC", "TBV"] )}}", "price" : {{random.number(100)}} }
-
-
Teste o modelo: selecione Modelo de teste e verifique se o registro gerado é semelhante ao seguinte:
{ "event_time" : "2024-06-12T15:08:32.04800, "ticker" : "INTC", "price" : 7 } -
Inicie o gerador de dados: escolha Selecionar dados a enviar.
O Kinesis Data Generator agora está enviando dados para o ExampleInputStream.
Execute o aplicativo localmente
Você pode testar o aplicativo localmente, executando a partir da linha de comando com python main.py ou a partir do IDE.
Para executar o aplicativo localmente, você deve ter a versão correta da biblioteca PyFlink instalada conforme descrito na seção anterior. Para obter mais informações, consulte o (link)
nota
Antes de continuar, verifique se os fluxos de entrada e saída estão disponíveis. Consulte Criar dois fluxos de dados do Amazon Kinesis. Além disso, verifique se você tem permissão para ler e gravar em ambos os fluxos. Consulte Autentique a sessão AWS.
Importe o projeto Python para o IDE
Para começar a trabalhar no aplicativo em seu IDE, você deve importá-lo como um projeto Python.
O repositório que você clonou contém vários exemplos. Cada exemplo é um projeto separado. Para este tutorial, importe o conteúdo do subdiretório ./python/GettingStarted para o seu IDE.
Importe o código como um projeto Python existente.
nota
O processo exato para importar um novo projeto Python varia de acordo com o IDE que você está usando.
Verifique a configuração do aplicativo local
Ao ser executado localmente, o aplicativo usa a configuração no arquivo application_properties.json na pasta de recursos do projeto sob ./src/main/resources. Você pode editar esse arquivo para usar diferentes nomes ou regiões de fluxos do Kinesis.
[ { "PropertyGroupId": "InputStream0", "PropertyMap": { "stream.name": "ExampleInputStream", "flink.stream.initpos": "LATEST", "aws.region": "us-east-1" } }, { "PropertyGroupId": "OutputStream0", "PropertyMap": { "stream.name": "ExampleOutputStream", "aws.region": "us-east-1" } } ]
Execute o aplicativo Python localmente
Você pode executar o aplicativo localmente, a partir da linha de comando, como um script Python normal, ou a partir do IDE.
Para executar seu aplicativo a partir da linha de comando
-
Certifique-se de que o ambiente autônomo do Python, como Conda ou VirtualEnv, onde você instalou a biblioteca Python Flink, esteja ativo no momento.
-
Verifique se você executou o
mvn packagepelo menos uma vez. -
Defina a
IS_LOCAL = truevariável de ambiente:$ export IS_LOCAL=true -
Execute o aplicativo como um script Python normal.
$python main.py
Para executar o aplicativo de dentro do IDE
-
Configure seu IDE para executar o script
main.pycom a seguinte configuração:-
Use o ambiente Python independente, como Conda ou VirtualEnv, onde você instalou a biblioteca PyFlink.
-
Use as credenciais AWS para acessar os fluxos de dados de entrada e saída do Kinesis.
-
Defina
IS_LOCAL = true.
-
-
O processo exato para definir a configuração de execução depende do IDE e varia.
-
Depois de configurar o IDE, execute o script Python e use as ferramentas fornecidas pelo seu IDE enquanto o aplicativo estiver em execução.
Inspecione os logs do aplicativo localmente
Quando executado localmente, o aplicativo não mostra nenhum log no console, além de algumas linhas impressas e exibidas quando o aplicativo é iniciado. O PyFlink grava logs em um arquivo no diretório em que a biblioteca Python Flink está instalada. O aplicativo imprime a localização dos logs quando é iniciado. Você também pode executar o seguinte comando para encontrar os logs:
$ python -c "import pyflink;import os;print(os.path.dirname(os.path.abspath(pyflink.__file__))+'/log')"
-
Liste os arquivos no diretório de registro de logs. Normalmente, você encontra um único arquivo
.log. -
Acompanhe o arquivo enquanto o aplicativo estiver em execução:
tail -f <log-path>/<log-file>.log.
Observe os dados de entrada e saída nos fluxos do Kinesis
Você pode observar os registros enviados ao fluxo de entrada pelo Python (geração de amostra) ou pelo Kinesis Data Generator (link) usando o Visualizador de dados no console do Amazon Kinesis.
Para observar registros:
Interrompa seu aplicativo em execução localmente
Interrompa o aplicativo em execução no IDE. O IDE geralmente fornece uma opção de “interromper”. A localização e o método exatos dependem do IDE.
Empacote o código do seu aplicativo
Nesta seção, você usa o Apache Maven para empacotar o código do aplicativo e todas as dependências necessárias em um arquivo .zip.
Execute o comando do pacote Maven mais uma vez:
$ mvn package
Este comando gera o arquivo target/managed-flink-pyflink-getting-started-1.0.0.zip.
Faça upload do pacote do aplicativo para um bucket do Amazon S3
Nesta seção, você faz o upload do arquivo .zip criado na seção anterior no bucket do Amazon Simple Storage Service (Amazon S3) criado no início deste tutorial. Se você não concluiu essa etapa, consulte o (link).
Para fazer upload do arquivo JAR do código do aplicativo
Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/
. -
Selecione o bucket que você criou anteriormente para o código do aplicativo.
-
Escolha Carregar.
-
Escolha Adicionar arquivos.
-
Navegue até o arquivo .zip gerado na etapa anterior:
target/managed-flink-pyflink-getting-started-1.0.0.zip. -
Escolha Fazer upload sem alterar nenhuma outra configuração.
Crie e configure o aplicativo do Managed Service for Apache Flink
É possível criar e configurar um aplicativo Managed Service for Apache Flink usando o console ou a AWS CLI. Para este tutorial, você usará o console.
Criar o aplicativo
Faça login no Console de gerenciamento da AWS e abra o console do Amazon MSF em https://console.aws.amazon.com/flink.
-
Verifique se a região correta está selecionada: Leste dos EUA (Norte da Virgínia) us-east-1.
-
Abra o menu do lado direito e escolha Aplicativos Apache Flink e, em seguida, Criar aplicativo de transmissão. Como alternativa, escolha Criar aplicativo de transmissão na seção Introdução da página inicial.
-
Na página Criar aplicativos de transmissão:
-
Em Escolha um método para configurar o aplicativo de processamento de fluxo, escolha Criar do zero.
-
Para Configuração do Apache Flink, versão do aplicativo Flink, escolha Apache Flink 1.19.
-
Para Configuração do aplicativo:
-
Em Nome do aplicativo, insira
MyApplication. -
Em Descrição, insira
My Python test app. -
Em Acesso aos recursos do aplicativo, escolha Criar/atualizar o perfil do IAM kinesis-analytics-MyApplication-us-east-1 com as políticas necessárias.
-
-
Para Modelo para configurações de aplicativos:
-
Para Modelos, escolha Desenvolvimento.
-
-
Escolha Criar aplicativo de transmissão.
-
nota
Ao criar um aplicativo Managed Service for Apache Flink usando o console, você tem a opção de ter um perfil do IAM e uma política criada para seu aplicativo. O aplicativo usa essa função e política para acessar os recursos dependentes. Esses recursos do IAM são nomeados usando o nome do aplicativo e a região da seguinte forma:
-
Política:
kinesis-analytics-service-MyApplication-us-west-2 -
perfil:
kinesisanalytics-MyApplication-us-west-2
Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Kinesis Data Analytics. O nome dos recursos gerados automaticamente recebe o prefixo kinesis-analytics para fins de compatibilidade com versões anteriores.
Editar a política do IAM
Edite a política do IAM para adicionar permissões para acessar o bucket do Amazon S3.
Editar a política do IAM para adicionar permissões do bucket do S3
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
Selecione Políticas. Selecione a política
kinesis-analytics-service-MyApplication-us-east-1que o console criou na seção anterior. -
Escolha a guia Edit (Editar) e escolha a guia JSON.
-
Adicione a seção destacada do exemplo de política a seguir à política. Substitua os exemplos de IDs de conta (
012345678901) pelo ID da conta. -
Escolha Próximo e, em seguida, escolha Salvar alterações.
Configure o aplicativo
Edite a configuração do aplicativo para definir o artefato do código do aplicativo.
Configurar o aplicativo
-
Na página MyApplication, selecione Configure (Configurar).
-
Na seção Localização do código do aplicativo:
-
Para o bucket do Amazon S3, selecione o bucket criado anteriormente para o código do aplicativo. Escolha Procurar, selecione o bucket correto e, em seguida, selecione Escolher. Não selecione o nome do bucket.
-
Em Caminho do objeto do Amazon S3, insira
managed-flink-pyflink-getting-started-1.0.0.zip.
-
-
Em Permissões de acesso, selecione Criar/atualizar o perfil do IAM
kinesis-analytics-MyApplication-us-east-1com as políticas necessárias. -
Navegue até as Propriedades do Runtime e mantenha os valores padrão para todas as outras configurações.
-
Selecione Adicionar novo item e adicione cada um dos seguintes parâmetros:
ID do grupo Chave Valor InputStream0stream.nameExampleInputStreamInputStream0flink.stream.initposLATESTInputStream0aws.regionus-east-1OutputStream0stream.nameExampleOutputStreamOutputStream0aws.regionus-east-1kinesis.analytics.flink.run.optionspythonmain.pykinesis.analytics.flink.run.optionsjarfilelib/pyflink-dependencies.jar -
Não modifique nenhuma das outras seções e escolha Salvar alterações.
nota
Ao optar por habilitar o registro em log do Amazon CloudWatch, o Managed Service for Apache Flink cria um grupo de logs e um fluxo de logs para você. Os nomes desses recursos são os seguintes:
-
Grupo de logs:
/aws/kinesis-analytics/MyApplication -
Fluxo de logs:
kinesis-analytics-log-stream
Execute o aplicativo
Agora o aplicativo está configurado e pronto para execução.
Executar o aplicativo
-
No console do Amazon Managed Service for Apache Flink, escolha Meu aplicativo e escolha Executar.
-
Na próxima página, que é a página de configuração de restauração do aplicativo, escolha Executar com o snapshot mais recente e, em seguida, escolha Executar.
O Status nos Detalhes do aplicativo muda de
ReadyparaStartinge depois paraRunningquando o aplicativo é iniciado.
Quando o aplicativo está no status Running, aí é possível abrir o painel do Flink.
Para abrir o painel do
-
Selecione Abrir painel do Apache Flink. O painel é aberto em uma nova página.
-
Na lista Trabalhos em execução, escolha o único trabalho exibido.
nota
Se você definiu as propriedades do Runtime ou editou as políticas do IAM incorretamente, o status do aplicativo pode se transformar em
Running, mas o painel do Flink mostra que o trabalho está sendo reiniciado continuamente. Esse é um cenário de falha comum se o aplicativo estiver configurado incorretamente ou não tiver permissões para acessar recursos externos.Quando isso acontecer, verifique a guia Exceções no painel do Flink para verificar a causa do problema.
Observe as métricas do aplicativo em execução
Na página MyApplication, na seção de métricas do Amazon CloudWatch, você pode ver algumas das métricas fundamentais do aplicativo em execução.
Para visualizar as métricas
-
Ao lado do botão Atualizar, selecione 10 segundos na lista suspensa.
-
Quando o aplicativo está em execução e íntegro, é possível ver a métrica de tempo de atividade aumentando continuamente.
-
A métrica fullrestarts deve ser zero. Se estiver aumentando, a configuração pode ter problemas. Para investigar o problema, revise a guia Exceções no painel do Flink.
-
A métrica Número de pontos de verificação com falha deve ser zero em um aplicativo íntegro.
nota
Esse painel exibe um conjunto fixo de métricas com uma granularidade de 5 minutos. Você pode criar um painel de aplicativos personalizado com qualquer métrica no painel do CloudWatch.
Observe os dados de saída nos fluxos do Kinesis
Verifique se você ainda está publicando dados na entrada, usando o script Python ou o Kinesis Data Generator.
Agora você pode observar a saída do aplicativo em execução no Managed Service for Apache Flink usando o Visualizador de dados em https://console.aws.amazon.com/kinesis/
Para visualizar a saída
Abra o console do Kinesis em https://console.aws.amazon.com/kinesis
. -
Verifique se a região é a mesma utilizada para executar este tutorial. Por padrão, é us-east-1 Leste dos EUA (Norte da Virgínia). Altere a região se necessário.
-
Escolha Fluxos de dados.
-
Selecione o fluxo que deseja observar. Para este tutorial, use
ExampleOutputStream. -
Selecione a guia Visualizador de dados.
-
Selecione qualquer Fragmento, mantenha Último como Posição inicial e, em seguida, escolha Obter registros. Talvez você veja o erro “Nenhum registro encontrado para esta solicitação”. Em caso afirmativo, escolha Tentar obter registros novamente. Os registros mais recentes publicados no fluxo são exibidos.
-
Selecione o valor na coluna Dados para inspecionar o conteúdo do registro no formato JSON.
Interromper o aplicativo
Para interromper o aplicativo, acesse a página do console do aplicativo do Managed Service for Apache Flink, MyApplication.
Como interromper o aplicativo
-
Na lista suspensa Ação, escolha Interromper.
-
O Status nos Detalhes do aplicativo muda de
RunningparaStoppinge depois paraReadyquando o aplicativo é completamente interrompido.nota
Não se esqueça também de parar de enviar dados para o fluxo de entrada a partir do script Python ou do Kinesis Data Generator.