Creazione ed esecuzione dell'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à.

Creazione ed esecuzione dell'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 crei queste risorse IAM, l'applicazione non può accedere ai suoi dati e 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. Collega quindi la policy a un ruolo IAM (che verrà creato 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 account nei nomi della risorsa Amazon (ARN) ((012345678901)) con il tuo ID 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: Create and Attach Your First Customer Managed Policy nella IAM User Guide.

Creazione di una policy IAM

In questa sezione, viene creato un ruolo IAM per l'applicazione del servizio gestito per Apache Flink che può essere assunto per leggere un flusso di origine e scrivere nel flusso di sink.

Il servizio gestito per Apache Flink non può accedere al tuo flusso senza autorizzazioni. Queste autorizzazioni possono essere assegnate con un ruolo IAM. Ad ogni ruolo IAM sono collegate due policy. 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. Aprire la console IAM 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. Scegli Crea ruolo.

    È stato creato un nuovo ruolo IAM denominato MF-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 dell'ARN del nuovo ruolo.

Per step-by-step istruzioni sulla creazione di un ruolo, consulta Creating an IAM Role (Console) nella IAM User Guide.

Creazione dell'applicazione

Salvare il seguente codice JSON in un file denominato create_request.json. Sostituisci l'ARN del ruolo di esempio con l'ARN per il ruolo creato in precedenza. Sostituisci il suffisso dell'ARN del bucket (username) con il suffisso 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 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. Salvare il seguente codice JSON in un file denominato start_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. Salvare il seguente codice JSON in un file denominato stop_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. Salvare il seguente codice JSON 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'azione UpdateApplicationCLI.

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