Criando um fluxo por meio das APIs - Amazon Kinesis Data Streams

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á.

Criando um fluxo por meio das APIs

Use as etapas a seguir para criar seu fluxo de dados do Kinesis.

Criar o cliente do Kinesis Data Streams

Para trabalhar com streamings de dados do Kinesis, você precisa criar um objeto de cliente. O seguinte código Java cria uma instância de um criador de cliente e a usa para definir a região, as credenciais e a configuração do cliente. Em seguida, ele cria um objeto do cliente.

AmazonKinesisClientBuilder clientBuilder = AmazonKinesisClientBuilder.standard(); clientBuilder.setRegion(regionName); clientBuilder.setCredentials(credentialsProvider); clientBuilder.setClientConfiguration(config); AmazonKinesis client = clientBuilder.build();

Para obter mais informações, consulteRegiões e endpoints do Kinesis Data StreamsnoAWSReferência geral.

Criar o stream

Agora que criou seu cliente do Kinesis Data Streams, pode criar um stream com o qual trabalhar. Isso pode ser feito com o console do Kinesis Data Streams ou de forma programática. Para criar um fluxo programaticamente, instancie umCreateStreamRequeste especifique um nome para o stream e (se você quiser usar o modo provisionado) o número de estilhaços para o stream usar.

  • Sob demanda:

    CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName );
  • Provisionada:

    CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName ); createStreamRequest.setShardCount( myStreamSize );

O nome do stream identifica o stream. O nome é definido pelo escopo doAWSConta usada pelo aplicativo. Ele também é delimitado por região. Ou seja, dois fluxos em dois diferentesAWSAs contas podem ter o mesmo nome, e dois streams no mesmoAWSmas em duas regiões diferentes podem ter o mesmo nome, mas não dois streams na mesma conta e na mesma região.

A taxa de transferência do stream depende do número de estilhaços: mais estilhaços são necessários para uma maior taxa de transferência provisionada. Mais estilhaços também aumentam o custo queAWScobranças para o fluxo. Para obter mais informações sobre como calcular um número apropriado de estilhaços para o aplicativo, consulte Escolher o modo de capacidade do fluxo de dados.

Depois que o objeto createStreamRequest é configurado, crie um stream chamando o método createStream para o cliente. Após chamar createStream, aguarde o stream alcançar o estado ACTIVE antes de executar qualquer operação nele. Para verificar o estado do stream, chame o método describeStream. Se o stream não existir, describeStream lançará uma exceção, portanto, coloque a chamada a describeStream em um bloco try/catch.

client.createStream( createStreamRequest ); DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest(); describeStreamRequest.setStreamName( myStreamName ); long startTime = System.currentTimeMillis(); long endTime = startTime + ( 10 * 60 * 1000 ); while ( System.currentTimeMillis() < endTime ) { try { Thread.sleep(20 * 1000); } catch ( Exception e ) {} try { DescribeStreamResult describeStreamResponse = client.describeStream( describeStreamRequest ); String streamStatus = describeStreamResponse.getStreamDescription().getStreamStatus(); if ( streamStatus.equals( "ACTIVE" ) ) { break; } // // sleep for one second // try { Thread.sleep( 1000 ); } catch ( Exception e ) {} } catch ( ResourceNotFoundException e ) {} } if ( System.currentTimeMillis() >= endTime ) { throw new RuntimeException( "Stream " + myStreamName + " never went active" ); }