Tutorial: implantação como um aplicativo com estado durável - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: implantação como um aplicativo com estado durável

O tutorial a seguir demonstra como implantar um Studio notebook como um aplicativo Managed Service for Apache Flink com estado durável.

Configuração

Crie um novo Studio notebook seguindo o Tutorial de criação de um notebook Studio, usando o fluxo de dados Kinesis ou o Amazon MSK. Dê um nome ao Studio notebook ExampleTestDeploy.

Implemente um aplicativo com estado durável usando o AWS Management Console

  1. Adicione um local de bucket do S3 onde deseja que o código empacotado seja armazenado em Localização do código do aplicativo - opcional no console. Isso habilita as etapas para implantar e executar seu aplicativo diretamente do notebook.

  2. Adicione as permissões necessárias à função do aplicativo para habilitar a função que você está usando para ler e gravar em um bucket do Amazon S3 e para iniciar um aplicativo Managed Service for Apache Flink:

    • Amazon S3 FullAccess

    • Gerenciado pela Amazon - flinkFullAccess

    • Acesso às suas fontes, destinos e VPCs, conforme aplicável. Para ter mais informações, consulte Permissões do IAM para notebooks Studio.

  3. Use o seguinte código de exemplo:

    %flink.ssql(type=update) CREATE TABLE exampleoutput ( 'ticket' VARCHAR, 'price' DOUBLE ) WITH ( 'connector' = 'kinesis', 'stream' = 'ExampleOutputStream', 'aws.region' = 'us-east-1', 'scan.stream.initpos' = 'LATEST', 'format' = 'json' ); INSERT INTO exampleoutput SELECT ticker, price FROM exampleinputstream
  4. Com o lançamento desse atributo, você verá uma nova lista suspensa no canto superior direito de cada nota em seu notebook com o nome do notebook. Você pode fazer o seguinte:

    • Veja as configurações do Studio notebook no AWS Management Console.

    • Crie seu Zeppelin Note e exporte-o para o Amazon S3. Nesse ponto, forneça um nome para seu aplicativo e selecione Criar e exportar. Você receberá uma notificação quando a exportação for concluída.

    • Se precisar, você pode visualizar e executar quaisquer testes adicionais no executável no Amazon S3.

    • Quando a compilação estiver concluída, você poderá implantar seu código como um aplicativo de transmissão do Kinesis com estado durável e escalabilidade automática.

    • Use o menu suspenso e selecione Implantar o Zeppelin Note como aplicativo de transmissão do Kinesis. Revise o nome do aplicativo e escolha Implantar via AWS console.

    • Isso levará você à AWS Management Console página de criação de um serviço gerenciado para o aplicativo Apache Flink. Observe que o nome do aplicativo, o paralelismo, a localização do código, as funções padrão do Glue DB, VPC (se aplicável) e IAM foram pré-preenchidas. Valide se as funções do IAM têm as permissões necessárias para suas fontes e destinos. Os snapshots são habilitados por padrão para um gerenciamento durável do estado do aplicativo.

    • Selecione Criar aplicativo.

    • Você pode selecionar Configurar e modificar qualquer configuração e selecionar Executar para iniciar seu aplicativo de transmissão.

Implemente um aplicativo com estado durável usando o AWS CLI

Para implantar um aplicativo usando o AWS CLI, você deve atualizá-lo AWS CLI para usar o modelo de serviço fornecido com as informações do Beta 2. Para obter informações sobre como usar o modelo de serviço atualizado, consulte Configuração.

O código de exemplo a seguir cria um novo Studio notebook:

aws kinesisanalyticsv2 create-application \ --application-name <app-name> \ --runtime-environment ZEPPELIN-FLINK-3_0 \ --application-mode INTERACTIVE \ --service-execution-role <iam-role> --application-configuration '{ "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:<account>:database/<glue-database-name>" } } }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } }, "DeployAsApplicationConfiguration": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::<s3bucket>", "BasePath": "/something/" } }, "VpcConfigurations": [ { "SecurityGroupIds": [ "<security-group>" ], "SubnetIds": [ "<subnet-1>", "<subnet-2>" ] } ] }' \ --region us-east-1

O código de exemplo a seguir inicia um Studio notebook:

aws kinesisanalyticsv2 start-application \ --application-name <app-name> \ --region us-east-1 \ --no-verify-ssl

O código a seguir retorna a URL da página do Apache Zeppelin notebook de um aplicativo:

aws kinesisanalyticsv2 create-application-presigned-url \ --application-name <app-name> \ --url-type ZEPPELIN_UI_URL \ --region us-east-1 \ --no-verify-ssl