Cree y ejecute la aplicación (CLI) - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree y ejecute la aplicación (CLI)

En esta sección, se utiliza AWS Command Line Interface para crear y ejecutar la aplicación Managed Service for Apache Flink. Utilice el AWS CLI comando kinesisanalyticsv2 para crear aplicaciones de Managed Service for Apache Flink e interactuar con ellas.

Creación de una política de permisos

nota

Debe crear una política de permisos y un rol para su aplicación. Si no crea estos IAM recursos, la aplicación no podrá acceder a sus flujos de datos y registros.

En primer lugar, debe crear una política de permisos con dos instrucciones: una que concede permisos para la acción de lectura en el flujo de origen y otra que concede permisos para las acciones de escritura en el flujo de recepción. A continuación, asocie la política a un IAM rol (que creará en la siguiente sección). Por lo tanto, cuando Managed Service para Apache Flink asume el rol, el servicio tiene los permisos necesarios para leer desde el flujo de origen y escribir en el flujo de recepción.

Utilice el siguiente código para crear la política de permisos AKReadSourceStreamWriteSinkStream. Reemplace username por el nombre de usuario que se utilizó para crear el bucket de Amazon S3 para almacenar el código de la aplicación. Sustituya el ID de cuenta en Amazon Resource Names (ARNs) (012345678901) por su ID de cuenta.

{ "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 obtener instrucciones sobre cómo crear una política de permisos, consulta el tutorial: Cómo crear y adjuntar tu primera política gestionada por el cliente en la Guía del IAM usuario.

Cree una IAM política

En esta sección, se crea un IAM rol que la aplicación Managed Service for Apache Flink puede asumir para leer un flujo fuente y escribir en el flujo receptor.

Managed Service para Apache Flink no puede acceder a su flujo sin permisos. Estos permisos se otorgan mediante un IAM rol. Cada IAM función tiene dos políticas adjuntas. La política de confianza concede a Managed Service para Apache Flink permiso para asumir el rol, y la política de permisos determina lo que Managed Service para Apache Flink puede hacer después de asumir el rol.

Usted deberá asociar la política de permisos que ha creado en la sección anterior a este rol.

Para crear un rol de IAM
  1. Abra la IAM consola en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Roles y, a continuación, seleccione Crear rol.

  3. En Seleccionar tipo de entidad de confianza, elija Servicio de AWS

  4. En Elegir el servicio que usará este rol, elija Kinesis.

  5. En Seleccione su caso de uso, elija Managed Service para Apache Flink.

  6. Elija Siguiente: permisos.

  7. En la página Asociar políticas de permisos, elija Siguiente: Revisión. Asociará políticas de permisos después de crear el rol.

  8. En la página Crear rol, escriba MF-stream-rw-role como Nombre de rol. Elija Crear rol.

    Ahora ha creado un nuevo IAM rol llamadoMF-stream-rw-role. A continuación, actualice las políticas de confianza y permisos para el rol

  9. Asocie la política de permisos al rol.

    nota

    Para este ejercicio, Managed Service para Apache Flink asume este rol tanto para leer datos de un flujo de datos de Kinesis (origen) como para escribir la salida en otro flujo de datos de Kinesis. Para asociar la política que ha creado en el paso anterior: Crear una política de permisos.

    1. En la página Resumen, elija la pestaña Permisos.

    2. Seleccione Asociar políticas.

    3. En el campo de búsqueda, escriba AKReadSourceStreamWriteSinkStream (la política que ha creado en la sección anterior).

    4. Elija la política AKReadSourceStreamWriteSinkStream y, a continuación, elija Asociar política.

Ahora ha creado el rol de ejecución de servicio que utiliza la aplicación para obtener acceso a los recursos. Tome nota ARN del nuevo rol.

Para step-by-step obtener instrucciones sobre cómo crear un rol, consulte Creación de un IAM rol (consola) en la Guía del IAM usuario.

Creación de la aplicación

Guarde el siguiente JSON código en un archivo denominadocreate_request.json. Sustituya el rol ARN de ejemplo ARN por el rol que creó anteriormente. Sustituya el ARN sufijo del segmento (nombre de usuario) por el sufijo que eligió en la sección anterior. Reemplace el ID de la cuenta de muestra (012345678901) en el rol de ejecución del servicio por el ID de su cuenta.

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

CreateApplicationEjecútelo con la siguiente solicitud para crear la aplicación:

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

Se ha creado la aplicación. Puede iniciar la aplicación en el siguiente paso.

Inicie la aplicación

En esta sección, se utiliza la StartApplicationacción para iniciar la aplicación.

Cómo iniciar la aplicación
  1. Guarde el siguiente JSON código en un archivo denominadostart_request.json.

    { "ApplicationName": "getting_started", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
  2. Ejecute la acción StartApplication con la solicitud anterior para iniciar la aplicación:

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

Ya se debe estar ejecutando la aplicación. Puedes comprobar las métricas de Managed Service for Apache Flink en la CloudWatch consola de Amazon para comprobar que la aplicación funciona.

Detenga la aplicación

En esta sección, se utiliza la StopApplicationacción para detener la aplicación.

Cómo detener la aplicación
  1. Guarde el siguiente JSON código en un archivo denominadostop_request.json.

    { "ApplicationName": "s3_sink" }
  2. Ejecute la acción StopApplication con la solicitud anterior para detener la aplicación:

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

La aplicación se habrá detenido.

Añada una opción de CloudWatch registro

Puedes usar el AWS CLI para añadir un flujo de CloudWatch registro de Amazon a tu aplicación. Para obtener información sobre el uso de CloudWatch registros con su aplicación, consulte Configuración del registro de aplicaciones.

Actualice las propiedades del entorno

En esta sección, se utiliza la UpdateApplicationacción para cambiar las propiedades del entorno de la aplicación sin volver a compilar el código de la aplicación. En este ejemplo, deberá cambiar la región de los flujos de origen y destino.

Cómo actualizar las propiedades de entorno de la aplicación
  1. Guarde el siguiente JSON código en un archivo denominadoupdate_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. Ejecute la acción UpdateApplication con la solicitud anterior para actualizar las propiedades del entorno:

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

Actualización del código de la aplicación

Cuando necesite actualizar el código de la aplicación con una nueva versión del paquete de códigos, utilice la UpdateApplicationCLIacción.

nota

Para cargar una nueva versión del código de la aplicación con el mismo nombre de archivo, debe especificar la nueva versión del objeto. Para obtener más información sobre el uso de versiones de objetos de Amazon S3, consulte Enabling or Disabling Versioning.

Para usarlo AWS CLI, elimine el paquete de códigos anterior de su bucket de Amazon S3, cargue la nueva versión y llameUpdateApplication, especificando el mismo nombre de bucket y objeto de Amazon S3 y la nueva versión del objeto. La aplicación se reiniciará con el nuevo paquete de código.

En el siguiente ejemplo de solicitud de la acción UpdateApplication, se vuelve a cargar el código de la aplicación y se reinicia la aplicación. Actualice la CurrentApplicationVersionId a la versión actual de la aplicación. Puede comprobar la versión actual de la aplicación mediante las acciones ListApplications o DescribeApplication. Actualice el sufijo del nombre del bucket (<username>) con el sufijo que haya elegido en la sección Cree recursos dependientes.

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