

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à.

# Creare un servizio gestito per l'applicazione Apache Flink
<a name="how-creating-apps"></a>

Questo argomento contiene informazioni sulla creazione di un servizio gestito per l'applicazione Apache Flink.

**Topics**
+ [Crea il codice dell'applicazione Managed Service for Apache Flink](#how-creating-apps-building)
+ [Crea la tua applicazione Managed Service for Apache Flink](#how-creating-apps-creating)
+ [Utilizza chiavi gestite dal cliente](#how-creating-apps-use-cmk)
+ [Avvia l'applicazione Managed Service for Apache Flink](#how-creating-apps-starting)
+ [Verifica l'applicazione Managed Service for Apache Flink](#how-creating-apps-verifying)
+ [Abilita i rollback di sistema per la tua applicazione Managed Service for Apache Flink](how-system-rollbacks.md)

## Crea il codice dell'applicazione Managed Service for Apache Flink
<a name="how-creating-apps-building"></a>

Questa sezione descrive i componenti utilizzati per creare il codice dell'applicazione Managed Service for Apache Flink. 

Per il codice dell'applicazione, ti consigliamo di utilizzare la versione di Apache Flink supportata più recente. Per informazioni sull'aggiornamento delle applicazioni del servizio gestito per Apache Flink, consulta [Usa gli aggiornamenti di versione sul posto per Apache Flink](how-in-place-version-upgrades.md). 

Il codice dell'applicazione viene creato utilizzando [Apache Maven](https://maven.apache.org/). Un progetto Apache Maven utilizza un file `pom.xml` per specificare le versioni dei componenti che utilizza. 

**Nota**  
Il servizio gestito per Apache Flink supporta file JAR di dimensioni fino a 512 MB. Se si utilizza un file JAR di dimensioni superiori a queste, l'applicazione non viene avviata.

Le applicazioni possono ora utilizzare l'API Java da qualsiasi versione di Scala. È necessario includere la libreria standard Scala di propria scelta nelle applicazioni Scala.

Per informazioni sulla creazione di un'applicazione del servizio gestito per Apache Flink che utilizza **Apache Beam**, consulta [Usa Apache Beam con Managed Service per le applicazioni Apache Flink](how-creating-apps-beam.md).

### Specificate la versione Apache Flink dell'applicazione
<a name="how-creating-apps-building-flink"></a>

Quando utilizzi il servizio gestito per il runtime di Apache Flink versione 1.1.0, devi specificare la versione di Apache Flink che l'applicazione utilizza durante la compilazione. Fornisci la versione di Apache Flink con il parametro. `-Dflink.version` Ad esempio, se utilizzi Apache Flink 2.2.0, fornisci quanto segue:

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

Per creare applicazioni con versioni precedenti di Apache Flink, consulta. [Versioni precedenti](earlier.md)

## Crea la tua applicazione Managed Service for Apache Flink
<a name="how-creating-apps-creating"></a>

Dopo aver creato il codice dell'applicazione, procedi come segue per creare l'applicazione Managed Service for Apache Flink (Amazon MSF):
+ **Carica il codice dell'applicazione**: carica il codice dell'applicazione in un bucket Amazon S3. Quando crei l'applicazione, specifica il nome del bucket S3 e il nome oggetto del codice dell'applicazione. Per un tutorial che mostra come caricare il codice dell'applicazione, consulta il tutorial. [Tutorial: inizia a usare l' DataStream API in Managed Service for Apache Flink](getting-started.md)
+ **Crea la tua applicazione Managed Service for Apache Flink**: utilizza uno dei seguenti metodi per creare la tua applicazione Amazon MSF:
**Nota**  
Amazon MSF crittografa l'applicazione per impostazione predefinita utilizzando. Chiavi di proprietà di AWS Puoi anche creare la tua nuova applicazione utilizzando le chiavi gestite AWS KMS dal cliente (CMKs) per creare, possedere e gestire le tue chiavi da solo. Per informazioni su CMKs, consulta[Gestione delle chiavi in Amazon Managed Service per Apache Flink](key-management-flink.md).
  + **Crea la tua applicazione Amazon MSF utilizzando la AWS console:** puoi creare e configurare la tua applicazione utilizzando la AWS console. 

    Quando crei un'applicazione utilizzando la console, le risorse dipendenti dall'applicazione (come CloudWatch i flussi di log, i ruoli IAM e le politiche IAM) vengono create automaticamente. 

    Quando crei l'applicazione utilizzando la console, devi specificare la versione di Apache Flink utilizzata dall'applicazione selezionandola dal menu a discesa nella pagina **Servizio gestito per Apache Flink: crea applicazione**. 

    Per un tutorial su come utilizzare la console per creare un'applicazione, consulta il [Tutorial: inizia a usare l' DataStream API in Managed Service for Apache Flink](getting-started.md) tutorial.
  + **Crea la tua applicazione Amazon MSF utilizzando la AWS CLI**: puoi creare e configurare la tua applicazione utilizzando la CLI AWS . 

    Quando crei l'applicazione utilizzando la CLI, devi anche creare manualmente le risorse dipendenti dall'applicazione (come flussi di CloudWatch log, ruoli IAM e politiche IAM).

    Quando crei un'applicazione utilizzando la CLI, devi specificare la versione di Apache Flink utilizzata dall'applicazione utilizzando il parametro `RuntimeEnvironment` dell'operazione `CreateApplication`.
**Nota**  
È possibile modificare il nome `RuntimeEnvironment` di un'applicazione esistente. Per scoprire come, consulta [Usa gli aggiornamenti di versione sul posto per Apache Flink](how-in-place-version-upgrades.md).

## Utilizza chiavi gestite dal cliente
<a name="how-creating-apps-use-cmk"></a>

In Amazon MSF, le chiavi gestite dai clienti (CMKs) sono una funzionalità che consente di crittografare i dati dell'applicazione con una chiave creata, posseduta e gestita su AWS Key Management Service ()AWS KMS. Per un'applicazione Amazon MSF, ciò significa che tutti i dati soggetti a un [checkpoint](how-fault.md) o [snapshot](how-snapshots.md) Flink sono crittografati con un CMK definito per quell'applicazione.

Per utilizzare CMK con la tua applicazione, devi prima [creare la tua nuova applicazione](#how-creating-apps-creating) e quindi applicare una CMK. Per ulteriori informazioni sull'utilizzo CMKs, vedere. [Gestione delle chiavi in Amazon Managed Service per Apache Flink](key-management-flink.md)

## Avvia l'applicazione Managed Service for Apache Flink
<a name="how-creating-apps-starting"></a>

Dopo aver creato il codice dell'applicazione, averlo caricato su S3 e aver creato l'applicazione del servizio gestito per Apache Flink, è il momento di avviare l'applicazione. L'avvio di un'applicazione del servizio gestito per Apache Flink richiede in genere alcuni minuti.

Per avviare l'applicazione, utilizza uno dei seguenti metodi:
+ **Avvia l'applicazione Managed Service for Apache Flink utilizzando la AWS console:** puoi eseguire l'applicazione scegliendo **Esegui** nella pagina dell'applicazione nella console. AWS 
+ **Avvia l'applicazione Managed Service for Apache Flink utilizzando l' AWS API:** puoi eseguire l'applicazione utilizzando l'azione. [StartApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_StartApplication.html) 

## Verifica l'applicazione Managed Service for Apache Flink
<a name="how-creating-apps-verifying"></a>

È possibile verificare il funzionamento dell'applicazione nei seguenti modi:
+ **Utilizzo CloudWatch dei registri: è** possibile utilizzare CloudWatch Logs and CloudWatch Logs Insights per verificare che l'applicazione funzioni correttamente. Per informazioni sull'utilizzo di CloudWatch Logs con l'applicazione Managed Service for Apache Flink, consulta. [Registrazione e monitoraggio in Amazon Managed Service per Apache Flink](monitoring-overview.md)
+ **Utilizzo CloudWatch delle metriche:** puoi utilizzare CloudWatch Metrics per monitorare l'attività dell'applicazione o l'attività delle risorse utilizzate dall'applicazione per l'input o l'output (come i flussi Kinesis, i flussi Firehose o i bucket Amazon S3). Per ulteriori informazioni sui CloudWatch parametri, consulta [Working with Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) nella Amazon CloudWatch User Guide.
+ **Monitoraggio delle posizioni di output:** se l'applicazione scrive l'output in una posizione (come un bucket o un database Amazon S3), è possibile monitorare quella posizione per i dati scritti.

# Abilita i rollback di sistema per la tua applicazione Managed Service for Apache Flink
<a name="how-system-rollbacks"></a>

Con la funzionalità di rollback del sistema, puoi ottenere una maggiore disponibilità dell'applicazione Apache Flink in esecuzione su Amazon Managed Service per Apache Flink. L'attivazione di questa configurazione consente al servizio di ripristinare automaticamente l'applicazione alla versione precedentemente in esecuzione quando un'azione come o si verifica un bug nel codice o nella configurazione. `UpdateApplication` `autoscaling`

**Nota**  
Per utilizzare la funzionalità di rollback del sistema, è necessario effettuare l'attivazione aggiornando l'applicazione. Per impostazione predefinita, le applicazioni esistenti non utilizzeranno automaticamente il rollback del sistema.

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

Quando avvii un'operazione applicativa, ad esempio un'azione di aggiornamento o di scalabilità, Amazon Managed Service for Apache Flink tenta innanzitutto di eseguire tale operazione. Se rileva problemi che impediscono il successo dell'operazione, come bug nel codice o autorizzazioni insufficienti, il servizio avvia automaticamente un'operazione. `RollbackApplication`

Il rollback tenta di ripristinare l'applicazione alla versione precedente eseguita correttamente, insieme allo stato dell'applicazione associata. Se il rollback ha esito positivo, l'applicazione continua a elaborare i dati con tempi di inattività minimi utilizzando la versione precedente. Se anche il rollback automatico fallisce, Amazon Managed Service for Apache Flink trasferisce l'applicazione allo `READY` stato, in modo che tu possa intraprendere ulteriori azioni, tra cui correggere l'errore e riprovare l'operazione. 

È necessario attivare l'utilizzo dei rollback automatici del sistema. Da questo momento in poi, puoi abilitarlo utilizzando la console o l'API per tutte le operazioni sulla tua applicazione. 

Il seguente esempio di richiesta di `UpdateApplication` azione abilita i rollback del sistema per un'applicazione:

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

## Esamina gli scenari comuni per il rollback automatico del sistema
<a name="common-scenarios"></a>

I seguenti scenari illustrano i vantaggi dei rollback automatici del sistema:
+ **Aggiornamenti dell'applicazione:** se aggiorni l'applicazione con un nuovo codice che presenta bug durante l'inizializzazione del job Flink tramite il metodo principale, il rollback automatico consente di ripristinare la versione funzionante precedente. Altri scenari di aggiornamento in cui i rollback del sistema sono utili includono:
  + [Se l'applicazione viene aggiornata per essere eseguita con un parallelismo superiore a MaxParallelism.](https://docs.aws.amazon.com/managed-flink/latest/java/how-scaling.html#how-scaling-auto)
  + Se l'applicazione viene aggiornata per essere eseguita con sottoreti errate per un'applicazione VPC, si verifica un errore durante l'avvio del processo Flink. 
+ **Aggiornamenti della versione di Flink:** quando si esegue l'aggiornamento a una nuova versione di Apache Flink e l'applicazione aggiornata presenta un problema di compatibilità con le snapshot, il rollback del sistema consente di tornare automaticamente alla versione precedente di Flink. 
+ **AutoScaling:** Quando l'applicazione è scalabile ma riscontra problemi di ripristino da un punto di salvataggio, a causa della mancata corrispondenza dell'operatore tra l'istantanea e il grafico del lavoro Flink.

## Usa APIs l'operazione per i rollback del sistema
<a name="operation-apis"></a>

Per offrire una migliore visibilità, Amazon Managed Service per Apache Flink ne offre due APIs relative alle operazioni delle applicazioni che possono aiutarti a tenere traccia degli errori e dei relativi rollback di sistema.

`ListApplicationOperations`

Questa API elenca tutte le operazioni eseguite sull'applicazione, incluse, `UpdateApplication` `Maintenance``RollbackApplication`, e altre in ordine cronologico inverso. L'esempio seguente di richiesta di `ListApplicationOperations` azione elenca le prime 10 operazioni dell'applicazione per l'applicazione:

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

Il seguente esempio di richiesta `ListApplicationOperations` aiuta a filtrare l'elenco in base agli aggiornamenti precedenti dell'applicazione:

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

`DescribeApplicationOperation`

Questa API fornisce informazioni dettagliate su un'operazione specifica elencata da`ListApplicationOperations`, incluso il motivo dell'errore, se applicabile. L'esempio seguente di richiesta di `DescribeApplicationOperation` azione elenca i dettagli per un'operazione specifica dell'applicazione:

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

Per informazioni sulla risoluzione dei problemi, consulta [Le migliori pratiche per il rollback del sistema](troubleshooting-system-rollback.md).