Crea ed esegui l'applicazione (CLI) - Servizio gestito per Apache Flink

Il servizio gestito da Amazon per Apache Flink era precedentemente noto come Analisi dei dati Amazon Kinesis per Apache Flink.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea ed esegui l'applicazione (CLI)

In questa sezione, si utilizza AWS Command Line Interface per creare ed eseguire l'applicazione Managed Service for Apache Flink. Utilizzate il AWS CLI comando kinesisanalyticsv2 per creare e interagire con le applicazioni Managed Service for Apache Flink.

Creazione di una policy di autorizzazione

Nota

È necessario creare una policy di autorizzazione e un ruolo per l'applicazione. Se non create queste IAM risorse, l'applicazione non potrà accedere ai dati e ai flussi di log.

Innanzitutto, crea una policy di autorizzazione con due istruzioni: una che concede le autorizzazioni per l'operazione di lettura sul flusso di origine e un'altra che concede le autorizzazioni per operazioni di scrittura sul flusso di sink. Quindi allegate la politica a un IAM ruolo (che creerete nella sezione successiva). Pertanto, quando il servizio gestito per Apache Flink assume il ruolo, il servizio disporrà delle autorizzazioni necessarie per leggere dal flusso di origine e scrivere nel flusso di sink.

Utilizza il codice seguente per creare la policy di autorizzazione AKReadSourceStreamWriteSinkStream. Sostituisci username con il nome utente utilizzato per creare il bucket Amazon S3 per archiviare il codice dell'applicazione. Sostituisci l'ID dell'account in Amazon Resource Names (ARNs) (012345678901) con l'ID del tuo account.

{ "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" } ] }

Per step-by-step istruzioni su come creare una politica di autorizzazioni, consulta il Tutorial: Crea e allega la tua prima politica gestita dal cliente nella Guida per l'IAMutente.

Crea una politica IAM

In questa sezione, crei un IAM ruolo che l'applicazione Managed Service for Apache Flink può assumere per leggere un flusso di origine e scrivere nel flusso sink.

Il servizio gestito per Apache Flink non può accedere al tuo flusso senza autorizzazioni. Queste autorizzazioni vengono concesse tramite un ruolo. IAM A ogni IAM ruolo sono allegate due politiche. La policy di attendibilità concede al servizio gestito per Apache Flink l'autorizzazione per assumere il ruolo e la policy di autorizzazione determina cosa può fare il servizio assumendo questo ruolo.

Collega la policy di autorizzazione creata nella sezione precedente a questo ruolo.

Per creare un ruolo IAM
  1. Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione, scegli Ruoli e quindi Crea ruolo.

  3. In Seleziona tipo di entità attendibile, scegli Servizio AWS .

  4. In Scegli il servizio che utilizzerà questo ruolo, scegli Kinesis.

  5. In Seleziona il tuo caso d'uso, scegli Servizio gestito per Apache Flink.

  6. Scegli Successivo: autorizzazioni.

  7. Nella pagina Allega policy di autorizzazione, seleziona Successivo: esamina. Collega le policy di autorizzazione dopo aver creato il ruolo.

  8. Nella pagina Crea ruolo, immetti MF-stream-rw-role per Nome ruolo. Scegliere Crea ruolo.

    Ora hai creato un nuovo IAM ruolo chiamatoMF-stream-rw-role. Successivamente, aggiorna le policy di trust e di autorizzazione per il ruolo

  9. Collega la policy di autorizzazione al ruolo.

    Nota

    Per questo esercizio, il servizio gestito per Apache Flink assume questo ruolo per la lettura di dati da un flusso di dati Kinesis (origine) e la scrittura dell'output in un altro flusso di dati Kinesis. Pertanto, devi collegare la policy creata nella fase precedente, Creazione di una policy di autorizzazione.

    1. Nella pagina Riepilogo, scegli la scheda Autorizzazioni.

    2. Scegliere Collega policy.

    3. Nella casella di ricerca, immetti AKReadSourceStreamWriteSinkStream (la policy creata nella sezione precedente).

    4. Scegli la policy AKReadSourceStreamWriteSinkStream e seleziona Collega policy.

È stato creato il ruolo di esecuzione del servizio che l'applicazione utilizzerà per accedere alle risorse. Prendi nota ARN del nuovo ruolo.

Per step-by-step istruzioni sulla creazione di un ruolo, consulta Creazione di un IAM ruolo (console) nella Guida per l'IAMutente.

Creazione dell'applicazione

Salva il JSON codice seguente in un file denominatocreate_request.json. Sostituisci il ruolo di esempio ARN con quello ARN per il ruolo creato in precedenza. Sostituisci il ARN suffisso del bucket (nome utente) con il suffisso che hai scelto nella sezione precedente. Sostituisci l'ID account di esempio (012345678901) nel ruolo di esecuzione del servizio con l'ID account.

{ "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" } ] }

Esegui il CreateApplicationcon la seguente richiesta per creare l'applicazione:

aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json

L'applicazione è ora creata. Avvia l'applicazione nella fase successiva.

Avviare l'applicazione

In questa sezione, si utilizza l'StartApplicationazione per avviare l'applicazione.

Per avviare l'applicazione
  1. Salvate il JSON codice seguente in un file denominatostart_request.json.

    { "ApplicationName": "getting_started", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
  2. Esegui l'operazione StartApplication con la richiesta precedente per avviare l'applicazione:

    aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json

L'applicazione è ora in esecuzione. Puoi controllare i parametri del servizio gestito per Apache Flink sulla CloudWatch console Amazon per verificare che l'applicazione funzioni.

Arresta l'applicazione

In questa sezione, si utilizza l'StopApplicationazione per arrestare l'applicazione.

Per interrompere l'applicazione
  1. Salvate il JSON codice seguente in un file denominatostop_request.json.

    { "ApplicationName": "s3_sink" }
  2. Esegui l'operazione StopApplication con la richiesta precedente per interrompere l'applicazione:

    aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json

L'applicazione è ora interrotta.

Aggiungere un'opzione CloudWatch di registrazione

Puoi usare il AWS CLI per aggiungere un flusso di CloudWatch log Amazon alla tua applicazione. Per informazioni sull'utilizzo di CloudWatch Logs con la tua applicazione, consulta Configurazione della registrazione delle applicazioni.

Aggiornare le proprietà dell'ambiente

In questa sezione, si utilizza l'UpdateApplicationazione per modificare le proprietà dell'ambiente dell'applicazione senza ricompilare il codice dell'applicazione. In questo esempio, viene modificata la Regione dei flussi di origine e destinazione.

Per aggiornare le proprietà di ambiente per l'applicazione
  1. Salvate il JSON codice seguente in un file denominato. 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" } } ] } }
  2. Esegui l'operazione UpdateApplication con la richiesta precedente per aggiornare le proprietà di ambiente:

    aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json

Aggiornamento del codice dell'applicazione

Quando è necessario aggiornare il codice dell'applicazione con una nuova versione del pacchetto di codice, si utilizza l'UpdateApplicationCLIazione.

Nota

Per caricare una nuova versione del codice dell'applicazione con lo stesso nome file, è necessario specificare la nuova versione dell'oggetto. Per ulteriori informazioni sull'uso delle versioni degli oggetti Amazon S3, consulta Abilitazione o disattivazione del controllo delle versioni.

Per utilizzarlo AWS CLI, elimina il pacchetto di codice precedente dal bucket Amazon S3, carica la nuova versione e chiamaUpdateApplication, specificando lo stesso bucket Amazon S3 e lo stesso nome dell'oggetto e la nuova versione dell'oggetto. L'applicazione verrà riavviata con il nuovo pacchetto di codice.

Il seguente esempio di richiesta per l'operazione UpdateApplication ricarica il codice dell'applicazione e riavvia l'applicazione. Aggiorna l'CurrentApplicationVersionId alla versione corrente dell'applicazione. Puoi controllare la versione corrente dell'applicazione utilizzando le operazioni ListApplications o DescribeApplication. Aggiorna il suffisso del nome del bucket (<username>) con il suffisso che hai scelto nella sezione Crea risorse dipendenti.

{{ "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" } } } } }