Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
Crie e execute o aplicativo (CLI)
Nesta seção, você usa a AWS Command Line Interface para criar e executar o aplicativo Flink do Managed Service for Apache Flink. Use o comando AWS CLI kinesisanalyticsv2 para criar e interagir com os aplicativos Managed Service para aplicativos Apache Flink.
Criar 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 recursos do IAM, seu aplicativo não poderá acessar seus fluxos de logs e dados.
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, anexe a política a um perfil do IAM (que será criado 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 usado para criar o bucket do Amazon S3 e armazenar o código do aplicativo. Substitua o ID da conta nos nomes do recurso da Amazon Resources Names (ARNs) (012345678901)pelo ID da sua conta.
Para obter instruções passo a passo para criar uma política de permissões, consulte Tutorial: crie e anexe a sua primeira política gerenciada pelo cliente no Guia do usuário do IAM.
Crie uma política do IAM.
Nesta seção, você cria um perfil do IAM que o aplicativo Managed Service for Apache Flink pode assumir para ler um fluxo de origem e gravar no fluxo de coleta.
O Managed Service for Apache Flink não pode acessar seu fluxo sem permissões. Essas permissões são concedidas usando um perfil do IAM. Cada perfil do IAM 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.
Anexe a política de permissões que criou na seção anterior a essa função.
Para criar uma perfil do IAM
Abra o console do IAM 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 AWSServiço
Em 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. É possível anexar políticas de permissões depois de criar a função.
Na página Criar função, insira
MF-stream-rw-rolepara o Nome da função. Selecione Criar função.Foi criado um perfil do IAM chamado
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 Resumo, selecione a guia Permissões.
Selecione Attach Policies.
Na caixa de pesquisa, insira
AKReadSourceStreamWriteSinkStream(a política criada na seção anterior).Selecione a política
AKReadSourceStreamWriteSinkStreame 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 o ARN da nova função.
Para obter instruções passo a passo sobre como criar um perfil, consulte Criação de um perfil do IAM (console) no Guia do usuário do IAM.
Criar o aplicativo
Salve o seguinte código JSON em um arquivo chamado create_request.json. Substitua o ARN da função de amostra pelo ARN da função criada anteriormente. Substitua o sufixo do ARN do bucket (nome do usuário) pelo sufixo que você selecionou 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 CreateApplication com a seguinte solicitação para criar o aplicativo:
aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
O aplicativo agora é criado. Inicie o aplicativo na próxima etapa.
Iniciar o aplicativo
Nesta seção, você usa a ação StartApplication para iniciar o aplicativo.
Para iniciar o aplicativo
Salve o seguinte código JSON em um arquivo chamado
start_request.json.{ "ApplicationName": "getting_started", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }Execute a ação
StartApplicationcom 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. É possível verificar as métricas do Managed Service for Apache Flink no console do Amazon CloudWatch para verificar se o aplicativo está funcionando.
Interromper o aplicativo
Nesta seção, você usa a ação StopApplication para interromper o aplicativo.
Como interromper o aplicativo
Salve o seguinte código JSON em um arquivo chamado
stop_request.json.{ "ApplicationName": "s3_sink" }Execute a ação
StopApplicationcom 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 registro em log do CloudWatch
Você pode usar o AWS CLI para adicionar um fluxo de logs do Amazon CloudWatch ao seu aplicativo. Para obter informações sobre o uso do CloudWatch Logs com seu aplicativo, consulte Configurando o log de aplicativos.
Atualizar propriedades do ambiente
Nesta seção, você usa a ação UpdateApplication 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 seguinte código JSON 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
UpdateApplicationcom 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 você precisar atualizar o código do aplicativo com uma nova versão do pacote do código, use a ação CLI UpdateApplication.
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 do código anterior do bucket do Amazon S3, faça o upload da nova versão e chame UpdateApplication, especificando o mesmo nome de objeto e bucket 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" } } } } }