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á.
Crie e execute o aplicativo (CLI)
Nesta seção, você usa o AWS Command Line Interface para criar e executar o aplicativo Managed Service for Apache Flink. Use o AWS CLI comando kinesisanalyticsv2 para criar e interagir com o Managed Service para aplicativos Apache Flink.
Criação de uma política de permissões
nota
Você deve criar uma política de permissões e uma função para o seu aplicativo. Se você não criar esses IAM recursos, seu aplicativo não poderá acessar seus fluxos de dados e registros.
Primeiro, crie uma política de permissões com duas instruções: uma que concede permissões para a ação de ler no fluxo de origem, e outra que concede permissões para ações de gravação no fluxo de coleta. Em seguida, você anexa a política a uma IAM função (que você cria na próxima seção). Assim, ao assumir o perfil, o serviço Managed Service for Apache Flink terá as permissões necessárias para ler o fluxo de origem e gravar no fluxo de coleta.
Use o código a seguir para criar a política de permissões AKReadSourceStreamWriteSinkStream
. Substitua username
pelo nome de usuário que você usou para criar o bucket do Amazon S3 e armazenar o código do aplicativo. Substitua o ID da conta nos Amazon Resource Names (ARNs) (012345678901)
pelo ID da sua conta.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/getting-started-scala-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Para step-by-step obter instruções sobre como criar uma política de permissões, consulte o Tutorial: Criar e anexar sua primeira política gerenciada pelo cliente no Guia IAM do usuário.
Crie uma IAM política
Nesta seção, você cria uma IAM função que o aplicativo Managed Service for Apache Flink pode assumir para ler um fluxo de origem e gravar no stream do coletor.
O Managed Service for Apache Flink não pode acessar seu fluxo sem permissões. Você concede essas permissões por meio de uma IAM função. Cada IAM função tem duas políticas anexadas. A política de confiança concede ao Managed Service for Apache Flink permissão para assumir o perfil, e a política de permissões determina o que o serviço pode fazer depois de assumir a função.
Você anexa a política de permissões que criou na seção anterior a essa função.
Para criar uma função do IAM
Abra o IAM console em https://console.aws.amazon.com/iam/
. No painel de navegação, selecione Perfis e Criar perfil.
Em Selecionar tipo de identidade de confiança, selecione AWS Serviço
Em Choose the service that will use this role (Selecionar o serviço que usará esta função), selecione Kinesis.
Em Selecione seu caso de uso, selecione Managed Service for Apache Flink.
Selecione Next: Permissions (Próximo: permissões).
Na página Attach permissions policies, selecione Next: Review. Você pode anexar políticas de permissões depois de criar a função.
Na página Create role (Criar função), insira
MF-stream-rw-role
para o Role name (Nome da função). Selecione Criar função.Agora você criou uma nova IAM função chamada
MF-stream-rw-role
. Em seguida, você atualiza as políticas de confiança e de permissões para a funçãoAnexe a política de permissões à função.
nota
Para este exercício, o Managed Service for Apache Flink assume esse perfil para ler dados de um fluxo de dados do Kinesis (origem) e gravar a saída em outro fluxo de dados do Kinesis. Depois, você anexa a política que criou na etapa anterior, Crie uma política de permissões.
Na página Summary (Resumo), selecione a guia Permissions (Permissões).
Selecione Attach Policies.
Na caixa de pesquisa, insira
AKReadSourceStreamWriteSinkStream
(a política que você criou na seção anterior).Selecione a política
AKReadSourceStreamWriteSinkStream
e selecione Anexar política.
Agora você criou a função de execução de serviço que seu aplicativo usa para acessar os recursos. Anote ARN a nova função.
Para step-by-step obter instruções sobre como criar uma função, consulte Criação de uma IAM função (console) no Guia IAM do usuário.
Criar o aplicativo
Salve o JSON código a seguir em um arquivo chamadocreate_request.json
. Substitua ARN a função de ARN exemplo pela função que você criou anteriormente. Substitua o ARN sufixo do bucket (nome de usuário) pelo sufixo que você escolheu na seção anterior. Substitua o ID da conta de exemplo (012345678901) na função de execução do serviço pelo ID da conta.
{ "ApplicationName": "getting_started", "ApplicationDescription": "Scala getting started application", "RuntimeEnvironment": "FLINK-1_19", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-
username
", "FileKey": "getting-started-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Execute o CreateApplicationcom a seguinte solicitação para criar o aplicativo:
aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
O aplicativo agora é criado. Você inicia o aplicativo na próxima etapa.
Inicie o aplicativo
Nesta seção, você usa a StartApplicationação para iniciar o aplicativo.
Para iniciar o aplicativo
Salve o JSON código a seguir em um arquivo chamado
start_request.json
.{ "ApplicationName": "getting_started", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
Execute a ação
StartApplication
com a solicitação anterior para iniciar o aplicativo:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
O aplicativo agora está em execução. Você pode verificar as métricas do Managed Service for Apache Flink no CloudWatch console da Amazon para verificar se o aplicativo está funcionando.
Pare o aplicativo
Nesta seção, você usa a StopApplicationação para interromper o aplicativo.
Como interromper o aplicativo
Salve o JSON código a seguir em um arquivo chamado
stop_request.json
.{ "ApplicationName": "s3_sink" }
Execute a ação
StopApplication
com a solicitação anterior para interromper o aplicativo:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
O aplicativo agora está interrompido.
Adicionar uma opção de CloudWatch registro
Você pode usar o AWS CLI para adicionar um stream de CloudWatch log da Amazon ao seu aplicativo. Para obter informações sobre como usar o CloudWatch Logs com seu aplicativo, consulte Como configurar o registro de aplicativos.
Atualizar propriedades do ambiente
Nesta seção, você usa a UpdateApplicationação para alterar as propriedades do ambiente do aplicativo sem recompilar o código do aplicativo. Neste exemplo, você altera a região dos fluxos de origem e destino.
Para atualizar propriedades de ambiente para o aplicativo
Salve o JSON código a seguir em um arquivo chamado
update_properties_request.json
.{ "ApplicationName": "getting_started", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }
Execute a ação
UpdateApplication
com a solicitação anterior para atualizar as propriedades do ambiente:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Atualizar o código do aplicativo
Quando precisar atualizar o código do aplicativo com uma nova versão do pacote de código, use a UpdateApplicationCLIação.
nota
Para carregar uma nova versão do código do aplicativo com o mesmo nome de arquivo, você deve especificar a nova versão do objeto. Para obter mais informações sobre o uso de versões de objetos do Amazon S3, consulte Como ativar ou desativar o controle de versão.
Para usar o AWS CLI, exclua seu pacote de código anterior do bucket do Amazon S3, faça o upload da nova versão e ligueUpdateApplication
, especificando o mesmo nome de bucket e objeto do Amazon S3 e a nova versão do objeto. O aplicativo será reiniciado com o novo pacote de código.
O exemplo de solicitação da UpdateApplication
ação a seguir recarrega o código do aplicativo e reinicia o aplicativo. Atualize o CurrentApplicationVersionId
para a versão atual do aplicativo. Você pode verificar a versão atual do aplicativo usando as ações DescribeApplication
ou ListApplications
. Atualize o sufixo do nome do bucket (<username>) com o sufixo que você selecionou na seção Crie recursos dependentes.
{{ "ApplicationName": "getting_started", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-<username>", "FileKeyUpdate": "getting-started-scala-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU" } } } } }