

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création d'un service géré pour l'application Apache Flink
<a name="how-creating-apps"></a>

Cette rubrique contient des informations sur la création d'un service géré pour l'application Apache Flink.

**Topics**
+ [Créez votre service géré pour le code d'application Apache Flink](#how-creating-apps-building)
+ [Créez votre service géré pour l'application Apache Flink](#how-creating-apps-creating)
+ [Utiliser des clés gérées par le client](#how-creating-apps-use-cmk)
+ [Démarrez votre application Managed Service for Apache Flink](#how-creating-apps-starting)
+ [Vérifiez votre service géré pour l'application Apache Flink](#how-creating-apps-verifying)
+ [Activez les annulations du système pour votre application Managed Service for Apache Flink](how-system-rollbacks.md)

## Créez votre service géré pour le code d'application Apache Flink
<a name="how-creating-apps-building"></a>

Cette section décrit les composants que vous utilisez pour créer le code d'application de votre application Managed Service for Apache Flink. 

Nous vous recommandons d’utiliser la dernière version prise en charge d’Apache Flink pour le code de votre application. Pour obtenir des informations sur la mise à niveau de l’application de service géré pour Apache Flink, consultez [Utiliser des mises à niveau de version sur place pour Apache Flink](how-in-place-version-upgrades.md). 

Vous créez le code de votre application à l’aide d’[Apache Maven](https://maven.apache.org/). Un projet Apache Maven utilise un fichier `pom.xml` pour spécifier les versions des composants qu’il utilise. 

**Note**  
Le service géré pour Apache Flink prend en charge les fichiers JAR d’une taille maximale de 512 Mo. Si vous utilisez un fichier JAR plus volumineux, votre application ne démarrera pas.

Les applications peuvent désormais utiliser l’API Java depuis n’importe quelle version de Scala. Vous devez regrouper la bibliothèque standard Scala de votre choix dans vos applications Scala.

Pour obtenir des informations sur la création d’une application de service géré pour Apache Flink utilisant **Apache Beam**, consultez [Utiliser Apache Beam avec un service géré pour les applications Apache Flink](how-creating-apps-beam.md).

### Spécifiez la version d'Apache Flink de votre application
<a name="how-creating-apps-building-flink"></a>

Lorsque vous utilisez l’exécution de service géré pour Apache Flink version 1.1.0 ou ultérieure, vous spécifiez la version d’Apache Flink utilisée par votre application lorsque vous compilez votre application. Vous fournissez la version d'Apache Flink avec le `-Dflink.version` paramètre. Par exemple, si vous utilisez Apache Flink 2.2.0, fournissez les informations suivantes :

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

Pour créer des applications avec des versions antérieures d'Apache Flink, consultez[Versions antérieures](earlier.md).

## Créez votre service géré pour l'application Apache Flink
<a name="how-creating-apps-creating"></a>

Après avoir créé le code de votre application, procédez comme suit pour créer votre application Managed Service for Apache Flink (Amazon MSF) :
+ **Charger votre code d’application** : chargez votre code d’application sur un compartiment Amazon S3. Vous spécifiez le nom du compartiment S3 et le nom d’objet du code d’application lorsque vous créez votre application. Pour un didacticiel expliquant comment télécharger le code de votre application, consultez le [Tutoriel : Commencez à utiliser l' DataStream API dans Managed Service pour Apache Flink](getting-started.md) didacticiel.
+ **Créez votre application Managed Service for Apache Flink** : utilisez l'une des méthodes suivantes pour créer votre application Amazon MSF :
**Note**  
Amazon MSF chiffre votre application par défaut à l'aide de. Clés détenues par AWS Vous pouvez également créer votre nouvelle application à l'aide de clés gérées par le AWS KMS client (CMKs) pour créer, posséder et gérer vous-même vos clés. Pour plus d'informations sur CMKs, voir[Gestion des clés dans Amazon Managed Service pour Apache Flink](key-management-flink.md).
  + **Créez votre application Amazon MSF à l'aide de la AWS console :** vous pouvez créer et configurer votre application à l'aide de la AWS console. 

    Lorsque vous créez votre application à l'aide de la console, les ressources dépendantes de votre application (telles que CloudWatch les flux de journaux, les rôles IAM et les politiques IAM) sont créées pour vous. 

    Lorsque vous créez votre application à l’aide de la console, vous spécifiez la version d’Apache Flink utilisée par votre application en la sélectionnant dans le menu déroulant de la page **Service géré pour Apache Flink - Créer une application**. 

    Pour un didacticiel sur l'utilisation de la console pour créer une application, consultez le [Tutoriel : Commencez à utiliser l' DataStream API dans Managed Service pour Apache Flink](getting-started.md) didacticiel.
  + **Créez votre application Amazon MSF à l'aide de la AWS CLI :** vous pouvez créer et configurer votre application à l'aide de la AWS CLI. 

    Lorsque vous créez votre application à l'aide de la CLI, vous devez également créer les ressources dépendantes de votre application (telles que CloudWatch les flux de journaux, les rôles IAM et les politiques IAM) manuellement.

    Lorsque vous créez votre application à l’aide de l’interface CLI, vous spécifiez la version d’Apache Flink utilisée par votre application en utilisant le paramètre `RuntimeEnvironment` de l’action `CreateApplication`.
**Note**  
Vous pouvez modifier `RuntimeEnvironment` une application existante. Pour savoir comment procéder, consultez [Utiliser des mises à niveau de version sur place pour Apache Flink](how-in-place-version-upgrades.md).

## Utiliser des clés gérées par le client
<a name="how-creating-apps-use-cmk"></a>

Dans Amazon MSF, les clés gérées par le client (CMKs) sont une fonctionnalité qui vous permet de chiffrer les données de votre application à l'aide d'une clé que vous créez, détenez et gérez AWS Key Management Service ()AWS KMS. Pour une application Amazon MSF, cela signifie que toutes les données soumises à un [point de contrôle](how-fault.md) ou à un [instantané](how-snapshots.md) Flink sont chiffrées avec une clé CMK que vous définissez pour cette application.

Pour utiliser la clé CMK avec votre application, vous devez d'abord [créer votre nouvelle application](#how-creating-apps-creating), puis appliquer une clé CMK. Pour plus d'informations sur l'utilisation CMKs, consultez[Gestion des clés dans Amazon Managed Service pour Apache Flink](key-management-flink.md).

## Démarrez votre application Managed Service for Apache Flink
<a name="how-creating-apps-starting"></a>

Après avoir créé le code de votre application, l’avoir chargé dans S3 et créé votre application de service géré pour Apache Flink, vous pouvez démarrer votre application. Le démarrage d’une application de service géré pour Apache Flink prend généralement plusieurs minutes.

Utilisez l’une des méthodes suivantes pour démarrer votre application :
+ **Démarrez votre application Managed Service for Apache Flink à l'aide de la AWS console :** vous pouvez exécuter votre application en choisissant **Exécuter** sur la page de votre application dans la AWS console.
+ **Démarrez votre application Managed Service for Apache Flink à l'aide de l' AWS API :** vous pouvez exécuter votre application à l'aide de l'[StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html)action. 

## Vérifiez votre service géré pour l'application Apache Flink
<a name="how-creating-apps-verifying"></a>

Vous pouvez vérifier que votre application fonctionne de la manière suivante :
+ **Utilisation CloudWatch des journaux :** vous pouvez utiliser CloudWatch Logs et CloudWatch Logs Insights pour vérifier que votre application fonctionne correctement. Pour plus d'informations sur l'utilisation CloudWatch des journaux avec votre application Managed Service for Apache Flink, consultez[Journalisation et surveillance dans Amazon Managed Service pour Apache Flink](monitoring-overview.md).
+ **Utilisation CloudWatch des métriques :** vous pouvez utiliser CloudWatch les métriques pour surveiller l'activité de votre application, ou l'activité des ressources qu'elle utilise pour les entrées ou les sorties (telles que les flux Kinesis, les flux Firehose ou les compartiments Amazon S3). Pour plus d'informations sur CloudWatch les métriques, consultez [Working with Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) dans le guide de CloudWatch l'utilisateur Amazon.
+ **Surveillance des emplacements de sortie :** si votre application écrit la sortie vers un emplacement (tel qu’un compartiment ou une base de données Amazon S3), vous pouvez surveiller cet emplacement pour détecter les données écrites.

# Activez les annulations du système pour votre application Managed Service for Apache Flink
<a name="how-system-rollbacks"></a>

Grâce à la fonctionnalité de restauration du système, vous pouvez améliorer la disponibilité de votre application Apache Flink en cours d'exécution sur Amazon Managed Service pour Apache Flink. Le fait d'opter pour cette configuration permet au service de rétablir automatiquement la version précédente de l'application lorsqu'une action telle que des bogues de code `UpdateApplication` ou de configuration `autoscaling` se heurte à de tels bogues.

**Note**  
Pour utiliser la fonction de restauration du système, vous devez vous y inscrire en mettant à jour votre application. Les applications existantes n'utiliseront pas automatiquement la restauration du système par défaut.

## Comment ça marche
<a name="how-rollback-works"></a>

Lorsque vous lancez une opération d'application, telle qu'une action de mise à jour ou de dimensionnement, Amazon Managed Service pour Apache Flink tente d'abord d'exécuter cette opération. S'il détecte des problèmes empêchant le succès de l'opération, tels que des bogues de code ou des autorisations insuffisantes, le service lance automatiquement une `RollbackApplication` opération.

L'annulation tente de restaurer la version précédente de l'application qui s'est exécutée avec succès, ainsi que l'état de l'application associé. Si la restauration est réussie, votre application continue de traiter les données avec un temps d'arrêt minimal en utilisant la version précédente. Si la restauration automatique échoue également, Amazon Managed Service pour Apache Flink fait passer l'application au `READY` statut, afin que vous puissiez prendre d'autres mesures, notamment corriger l'erreur et réessayer l'opération. 

Vous devez choisir d'utiliser les annulations automatiques du système. Vous pouvez l'activer à l'aide de la console ou de l'API pour toutes les opérations sur votre application à partir de maintenant. 

L'exemple de demande `UpdateApplication` d'action suivant permet d'annuler le système pour une application :

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

## Passez en revue les scénarios courants de restauration automatique du système
<a name="common-scenarios"></a>

Les scénarios suivants illustrent les avantages des annulations automatiques du système :
+ **Mises à jour de l'application :** si vous mettez à jour votre application avec un nouveau code comportant des bogues lors de l'initialisation de la tâche Flink par le biais de la méthode principale, le rollback automatique permet de restaurer la version fonctionnelle précédente. Parmi les autres scénarios de mise à jour dans lesquels les annulations du système sont utiles, citons :
  + [Si votre application est mise à jour pour fonctionner avec un parallélisme supérieur à MaxParallelism.](https://docs.aws.amazon.com/managed-flink/latest/java/how-scaling.html#how-scaling-auto)
  + Si votre application est mise à jour pour s'exécuter avec des sous-réseaux incorrects pour une application VPC, cela entraîne un échec lors du démarrage de la tâche Flink. 
+ **Mises à niveau de la version de Flink :** lorsque vous effectuez une mise à niveau vers une nouvelle version d'Apache Flink et que l'application mise à niveau rencontre un problème de compatibilité avec les snapshots, la restauration du système vous permet de revenir automatiquement à la version précédente de Flink. 
+ **AutoScaling:** Lorsque l'application prend de l'ampleur mais rencontre des problèmes lors de la restauration à partir d'un point de sauvegarde, en raison d'un décalage entre l'opérateur et le graphe de tâches Flink.

## Utiliser l'opération APIs pour les annulations du système
<a name="operation-apis"></a>

Pour offrir une meilleure visibilité, Amazon Managed Service pour Apache Flink propose deux services APIs liés aux opérations des applications qui peuvent vous aider à suivre les défaillances et les annulations de système associées.

`ListApplicationOperations`

Cette API répertorie toutes les opérations effectuées sur l'application, y compris`UpdateApplication`,`Maintenance`, et les autres`RollbackApplication`, dans l'ordre chronologique inverse. L'exemple de demande `ListApplicationOperations` d'action suivant répertorie les 10 premières opérations d'application pour l'application :

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

L'exemple de demande d'`ListApplicationOperations`aide suivant permet de filtrer la liste en fonction des mises à jour précédentes de l'application :

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

`DescribeApplicationOperation`

Cette API fournit des informations détaillées sur une opération spécifique répertoriée par`ListApplicationOperations`, y compris la raison de l'échec, le cas échéant. L'exemple de demande `DescribeApplicationOperation` d'action suivant répertorie les détails d'une opération d'application spécifique :

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

Pour plus d’informations sur le dépannage, consultez [Meilleures pratiques en matière de restauration du système](troubleshooting-system-rollback.md).