

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.

# Creación y ejecución de una aplicación de Managed Service para Apache Flink
<a name="how-creating-apps"></a>

En este tema, se incluye información acerca de cómo crear una aplicación de Managed Service para Apache Flink.

**Topics**
+ [Creación del código de su aplicación de Managed Service para Apache Flink](#how-creating-apps-building)
+ [Creación de la aplicación de Managed Service para Apache Flink](#how-creating-apps-creating)
+ [Uso de claves administradas por el cliente](#how-creating-apps-use-cmk)
+ [Inicio de su aplicación de Managed Service para Apache Flink](#how-creating-apps-starting)
+ [Verificación de su aplicación de Managed Service para Apache Flink](#how-creating-apps-verifying)
+ [Habilitación de las restauraciones del sistema para la aplicación Amazon Managed Service para Apache Flink](how-system-rollbacks.md)

## Creación del código de su aplicación de Managed Service para Apache Flink
<a name="how-creating-apps-building"></a>

En esta sección se describen los componentes que debe utilizar para crear el código de su aplicación Managed Service para Apache Flink. 

Le recomendamos que utilice la última versión compatible de Apache Flink para el código de la aplicación. Para obtener información sobre la actualización de aplicaciones Managed Service para Apache Flink, consulte [Uso de actualizaciones de versión locales para Apache Flink](how-in-place-version-upgrades.md). 

El código de la aplicación se debe crear con [Apache Maven](https://maven.apache.org/). Un proyecto de Apache Maven utiliza un archivo `pom.xml` para especificar las versiones de los componentes que utiliza. 

**nota**  
Managed Service para Apache Flink admite archivos JAR de hasta 512 MB de tamaño. Si utiliza un archivo JAR de un tamaño superior a este, la aplicación no podrá iniciarse.

Las aplicaciones ahora pueden usar la API de Java desde cualquier versión de Scala. Debe incluir la biblioteca estándar de Scala que elija en sus aplicaciones de Scala.

Para obtener información sobre cómo crear una aplicación de Managed Service para Apache Flink que utilice **Apache Beam**, consulte [Creación de aplicaciones de Managed Service para Apache Flink con Apache Beam](how-creating-apps-beam.md).

### Especificación de la versión de Apache Flink de su aplicación
<a name="how-creating-apps-building-flink"></a>

Al utilizar la versión 1.1.0 del tiempo de ejecución de Managed Service para Apache Flink y versiones posteriores, debe especificar la versión de Apache Flink que utilizará la aplicación al compilarla. Debe proporcionar la versión de Apache Flink con el parámetro `-Dflink.version`. Por ejemplo, si utiliza Apache Flink 2.2.0, proporcione lo siguiente:

```
mvn package -Dflink.version=2.2.0
```

Para crear aplicaciones con versiones anteriores de Apache Flink, consulte [Versiones anteriores](earlier.md).

## Creación de la aplicación de Managed Service para Apache Flink
<a name="how-creating-apps-creating"></a>

Una vez que haya creado el código de la aplicación, haga lo siguiente para crear su aplicación de Managed Service para Apache Flink (Amazon MSF):
+ **Cargue el código de la aplicación**: cargue el código de la aplicación en un bucket de Amazon S3. Al crear la aplicación, especifique el nombre del bucket de S3 y el nombre del objeto del código de la aplicación. Para ver un tutorial que muestra cómo cargar el código de la aplicación, consulte el tutorial [Tutorial: Comience a utilizar la DataStream API en Managed Service for Apache Flink](getting-started.md).
+ **Cree su aplicación de Managed Service para Apache Flink**: utilice uno de los siguientes métodos para crear su aplicación de Amazon MSF;
**nota**  
Amazon MSF cifra la aplicación de forma predeterminada mediante. Claves propiedad de AWS También puede crear su nueva aplicación con claves administradas por el AWS KMS cliente (CMKs) para crear, poseer y administrar sus claves usted mismo. Para obtener información al respecto CMKs, consulte[Administración de claves en Amazon Managed Service para Apache Flink](key-management-flink.md).
  + **Cree su aplicación Amazon MSF mediante la AWS consola:** puede crear y configurar su aplicación mediante la AWS consola. 

    Al crear la aplicación mediante la consola, se crean automáticamente los recursos dependientes de la aplicación (como los CloudWatch registros, las transmisiones, las funciones de IAM y las políticas de IAM). 

    Al crear la aplicación mediante la consola, debe especificar qué versión de Apache Flink utiliza la aplicación seleccionándola en el menú desplegable de la página **Managed Service para Apache Flink: Crear aplicación**. 

    Para ver un tutorial acerca de cómo utilizar la consola para crear una aplicación, consulte el tutorial [Tutorial: Comience a utilizar la DataStream API en Managed Service for Apache Flink](getting-started.md).
  + **Cree su aplicación Amazon MSF mediante la AWS CLI:** puede crear y configurar su aplicación mediante la AWS CLI. 

    Al crear la aplicación mediante la CLI, también debe crear los recursos dependientes de la aplicación (como las transmisiones de CloudWatch registros, las funciones de IAM y las políticas de IAM) de forma manual.

    Al crear la aplicación mediante la CLI, debe especificar qué versión de Apache Flink utiliza la aplicación mediante el parámetro `RuntimeEnvironment` de la acción `CreateApplication`.
**nota**  
Se puede cambiar el `RuntimeEnvironment` de una aplicación existente. Para aprender a hacerlo, consulte [Uso de actualizaciones de versión locales para Apache Flink](how-in-place-version-upgrades.md).

## Uso de claves administradas por el cliente
<a name="how-creating-apps-use-cmk"></a>

En Amazon MSF, las claves administradas por el cliente (CMKs) son una función mediante la cual puede cifrar los datos de su aplicación con una clave que usted crea, posee y administra en AWS Key Management Service ()AWS KMS. En el caso de una aplicación de Amazon MSF, esto significa que todos los datos sujetos a un [punto de control](how-fault.md) o una [instantánea](how-snapshots.md) de Flink se cifran con una CMK que se define para esa aplicación.

Para utilizar CMK con su aplicación, primero debe [crear la nueva aplicación](#how-creating-apps-creating) y, a continuación, aplicar una CMK. Para obtener más información sobre su uso CMKs, consulte. [Administración de claves en Amazon Managed Service para Apache Flink](key-management-flink.md)

## Inicio de su aplicación de Managed Service para Apache Flink
<a name="how-creating-apps-starting"></a>

Una vez que haya creado el código de la aplicación, lo haya cargado en S3 y creado la aplicación Managed Service para Apache Flink, inicie la aplicación. El inicio de una aplicación Managed Service para Apache Flink normalmente tarda varios minutos.

Utilice uno de los siguientes métodos para iniciar la aplicación:
+ **Inicie la aplicación Managed Service for Apache Flink mediante la AWS consola:** puede ejecutar la aplicación seleccionando **Ejecutar** en la página de la aplicación de la AWS consola.
+ **Inicie su aplicación Managed Service for Apache Flink mediante la AWS API:** puede ejecutar la aplicación mediante la [StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html)acción. 

## Verificación de su aplicación de Managed Service para Apache Flink
<a name="how-creating-apps-verifying"></a>

Puede comprobar que la aplicación funciona de las siguientes maneras:
+ **Uso de CloudWatch registros:** puede usar CloudWatch Logs y CloudWatch Logs Insights para comprobar que la aplicación se ejecuta correctamente. Para obtener información sobre el uso de CloudWatch Logs con su aplicación Managed Service for Apache Flink, consulte[Registro y supervisión en Amazon Managed Service para Apache Flink](monitoring-overview.md).
+ **Uso de CloudWatch métricas:** puede utilizar CloudWatch las métricas para supervisar la actividad de la aplicación o la actividad de los recursos que la aplicación utiliza como entrada o salida (como las transmisiones de Kinesis, las transmisiones de Firehose o los buckets de Amazon S3). Para obtener más información sobre CloudWatch las métricas, consulta [Cómo trabajar con métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) en la Guía del CloudWatch usuario de Amazon.
+ **Supervisión de las ubicaciones de salida:** si la aplicación escribe la salida en una ubicación (como un bucket o una base de datos de Amazon S3), puede supervisar esa ubicación para localizar los datos escritos.

# Habilitación de las restauraciones del sistema para la aplicación Amazon Managed Service para Apache Flink
<a name="how-system-rollbacks"></a>

Con la función de restauración del sistema, puede lograr una mayor disponibilidad de la aplicación Apache Flink en ejecución en Amazon Managed Service para Apache Flink. Al optar por esta configuración, el servicio puede revertir de manera automática la aplicación a la versión que se estaba ejecutando anteriormente cuando una acción como `UpdateApplication` o `autoscaling` encuentra errores de código o configuración.

**nota**  
Para usar la característica de restauración del sistema, se la debe activar mediante la actualizando la aplicación. De forma predeterminada, las aplicaciones existentes no utilizarán de manera automática la restauración del sistema.

## Funcionamiento
<a name="how-rollback-works"></a>

Al iniciar una operación de aplicación, como una actualización o un escalado, Amazon Managed Service para Apache Flink primero intenta ejecutar esa operación. Si detecta problemas que impiden que la operación se lleve a cabo correctamente, por ejemplo, si hay errores de código o falta de permisos, el servicio inicia automáticamente una operación `RollbackApplication`.

La restauración intenta llevar la aplicación a la versión anterior que se estaba ejecutando correctamente, junto con el estado de la aplicación asociado. Si la restauración se realiza correctamente, la aplicación continúa procesando los datos con un tiempo de inactividad mínimo, mediante la versión anterior. Si la restauración automática también produce un error, Amazon Managed Service para Apache Flink pasa la aplicación al estado `READY` para que se puedan tomar más medidas, incluida la corrección del error y el reintento de la operación. 

Se debe optar por el uso de restauraciones automáticas del sistema. A partir de ahora, puede habilitarlo mediante la consola o la API para todas las operaciones de su aplicación. 

La siguiente solicitud de ejemplo de la acción `UpdateApplication` habilita las restauraciones del sistema para una aplicación:

```
{
   "ApplicationName": "MyApplication",
   "CurrentApplicationVersionId": 1,
   "ApplicationConfigurationUpdate": { 
      "ApplicationSystemRollbackConfigurationUpdate": { 
         "RollbackEnabledUpdate": "true"
       }
    }
}
```

## Revisión de las situaciones más comunes para la restauración automática del sistema
<a name="common-scenarios"></a>

Las siguientes situaciones ilustran los casos en los que las restauraciones automáticas del sistema son beneficiosas:
+ **Actualizaciones de la aplicación:** si se actualiza la aplicación con un código nuevo que contiene errores al inicializar la tarea de Flink mediante el método principal, la restauración automática permite restaurar la versión anterior en funcionamiento. Otros escenarios de actualización en los que las restauraciones del sistema son útiles incluyen los siguientes:
  + [Si la aplicación se actualiza para que se ejecute con un paralelismo superior al de MaxParallelism.](https://docs.aws.amazon.com/managed-flink/latest/java/how-scaling.html#how-scaling-auto)
  + Si la aplicación se actualiza para ejecutarse con subredes incorrectas para una aplicación de VPC, se produce un error durante el inicio del trabajo de Flink. 
+ **Actualizaciones de la versión de Flink:** cuando se actualiza a una nueva versión de Apache Flink y la aplicación actualizada detecta un problema de compatibilidad con las instantáneas, la restauración del sistema permite volver a la versión anterior de Flink de manera automática. 
+ **AutoScaling:** Cuando la aplicación se amplía, pero tiene problemas para restaurarse desde un punto de almacenamiento debido a que los operadores no coinciden entre la instantánea y el gráfico de tareas de Flink.

## Utilice la operación para revertir el sistema APIs
<a name="operation-apis"></a>

Para ofrecer una mejor visibilidad, Amazon Managed Service para Apache Flink tiene dos APIs relacionados con las operaciones de las aplicaciones que pueden ayudarle a realizar un seguimiento de los errores y las reversiones del sistema relacionadas.

`ListApplicationOperations`

Esta API enumera todas las operaciones realizadas en la aplicación, incluidas `UpdateApplication`, `Maintenance`, `RollbackApplication` y otras en orden cronológico inverso. La siguiente solicitud de ejemplo de la acción `ListApplicationOperations` muestra las 10 primeras instantáneas del estado actual de la aplicación:

```
{
   "ApplicationName": "MyApplication",
   "Limit": 10
}
```

El siguiente ejemplo de solicitud `ListApplicationOperations` ayuda a filtrar la lista para incluir actualizaciones anteriores de la aplicación:

```
{
   "ApplicationName": "MyApplication",
   "operation": "UpdateApplication"
}
```

`DescribeApplicationOperation`

Esta API proporciona información detallada sobre una operación específica enumerada por `ListApplicationOperations`, incluido el motivo del error, si corresponde. En la siguiente solicitud de ejemplo de la acción `DescribeApplicationOperation` se muestran los detalles de una operación específica de una aplicación:

```
{
   "ApplicationName": "MyApplication",
   "OperationId": "xyzoperation"
}
```

Para obtener información sobre la resolución de problemas, consulte [Prácticas recomendadas de reversión del sistema](troubleshooting-system-rollback.md).