

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 e gestione di stream in QLDB
Creazione e gestione di stream

**Importante**  
Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto, il 31/07/2025. Per ulteriori dettagli, consulta [Migrare un registro Amazon QLDB su Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/).

Amazon QLDB fornisce operazioni API per creare e gestire un flusso di dati del journal dal registro ad Amazon Kinesis Data Streams. Lo stream QLDB acquisisce ogni revisione del documento inserita nel diario e la invia a un flusso di dati Kinesis.

Puoi usare il Console di gestione AWS, un AWS SDK o il AWS Command Line Interface (AWS CLI) per creare un flusso di journal. Inoltre, puoi anche utilizzare un [AWS CloudFormation](https://aws.amazon.com/cloudformation)modello per creare stream. Per ulteriori informazioni, consulta la [AWS::QLDB::Stream](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-stream.html)risorsa nella *Guida per l'AWS CloudFormation utente*.

**Topics**
+ [

## Parametri dello stream
](#streams.create.params)
+ [

## Flusso ARN
](#streams.create.arn)
+ [

## Console di gestione AWS
](#streams.create.con)
+ [

## Stati dello stream
](#streams.create.states)
+ [

## Gestione degli stream compromessi
](#streams.create.impaired)

## Parametri dello stream


Per creare un flusso di journal QLDB, è necessario fornire i seguenti parametri di configurazione:

**Nome del libro mastro**  
Il registro QLDB di cui desideri trasmettere i dati del diario a Kinesis Data Streams.

**Nome del flusso**  
Il nome che si desidera assegnare al flusso del journal QLDB. I nomi definiti dall'utente possono aiutare a identificare e indicare lo scopo di un flusso.  
Il nome del flusso deve essere univoco tra gli altri flussi *attivi* per un determinato libro mastro. I nomi degli stream hanno gli stessi vincoli di denominazione dei nomi dei libri contabili, come definito in. [Quote e limiti in Amazon QLDB](limits.md#limits.naming)  
Oltre al nome dello stream, QLDB assegna *un ID* stream a ogni stream QLDB che crei. L'ID dello stream è unico tra tutti gli stream di un determinato registro, indipendentemente dal loro stato.

**Data e ora di inizio**  
La data e l'ora da cui iniziare lo streaming dei dati del diario. Questo valore può corrispondere a qualsiasi data e ora del passato, ma non a quelle future.

**Data e ora di fine**  
(Facoltativo) La data e l'ora che specificano il termine dello streaming.  
Se crei uno stream indefinito senza ora di fine, devi annullarlo manualmente per terminare lo streaming. Puoi anche annullare uno stream attivo e finito che non ha ancora raggiunto la data e l'ora di fine specificate.

**Flusso di dati Kinesis di destinazione**  
La risorsa di destinazione Kinesis Data Streams su cui lo stream scrive i record di dati. Per informazioni su come creare un flusso di dati Kinesis, consulta [Creazione e aggiornamento di flussi di dati nella Amazon Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html) *Developer* Guide.  
+ I flussi tra regioni e tra account non sono supportati. Il flusso di dati Kinesis specificato deve trovarsi nello stesso Regione AWS account del registro.
+ ***L'aggregazione dei record* in Kinesis Data Streams è abilitata per impostazione predefinita.** Questa opzione consente a QLDB di pubblicare più record di dati in un singolo record Kinesis Data Streams, aumentando il numero di record inviati per chiamata API.

  L'aggregazione dei record ha importanti implicazioni per l'elaborazione dei record e **richiede la disaggregazione** nello stream consumer. Per ulteriori informazioni, consulta i [concetti chiave di KPL](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html#kinesis-kpl-concepts-aggretation) e la [deaggregazione dei consumatori](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) nella *Amazon Kinesis Data Streams Developer Guide*.

**Ruolo IAM**  
Il ruolo IAM che consente a QLDB di assumere le autorizzazioni di scrittura per il flusso di dati Kinesis. Puoi utilizzare la console QLDB per creare automaticamente questo ruolo oppure puoi crearlo manualmente in IAM. Per informazioni su come crearlo manualmente, consulta. [Autorizzazioni di streaming](streams.perms.md)  
Per passare un ruolo a QLDB quando si richiede un flusso journal, è necessario disporre delle autorizzazioni per eseguire l'operazione `iam:PassRole` sulla risorsa del ruolo IAM.

## Flusso ARN


Ogni flusso di journal QLDB è una sottorisorsa di un registro ed è identificato in modo univoco da un Amazon Resource Name (ARN). Di seguito è riportato un esempio di ARN di un flusso QLDB con un ID di flusso pari a per un registro denominato. `IiPT4brpZCqCq3f4MTHbYy` `exampleLedger`

```
arn:aws:qldb:us-east-1:123456789012:stream/exampleLedger/IiPT4brpZCqCq3f4MTHbYy
```

La sezione seguente descrive come creare e annullare uno stream QLDB utilizzando. Console di gestione AWS

## Console di gestione AWS


Segui questi passaggi per creare o annullare uno stream QLDB utilizzando la console QLDB.

**Per creare uno stream (console)**

1. [Accedi a e apri Console di gestione AWS la console Amazon QLDB all'indirizzo /qldb. https://console.aws.amazon.com](https://console.aws.amazon.com/qldb)

1. Nel pannello di navigazione, seleziona **Streams** (Flussi).

1. Scegli **Crea stream QLDB**.

1. Nella pagina **Crea stream QLDB**, inserisci le seguenti impostazioni:
   + **Nome dello stream**: il nome che desideri assegnare allo stream QLDB.
   + **Registro**: il libro mastro di cui desideri trasmettere in streaming i dati del diario.
   + **Data e ora di inizio**: il timestamp inclusivo in UTC (Coordinated Universal Time) da cui iniziare lo streaming dei dati del diario. Il valore predefinito di questo timestamp è la data e l'ora correnti. Non può essere nel futuro e deve essere precedente **alla data e all'ora di fine**.
   + **Data e ora di fine**: (Facoltativo) Il timestamp esclusivo (UTC) che specifica quando termina lo streaming. Se mantieni vuoto questo parametro, lo stream viene eseguito a tempo indeterminato fino a quando non lo annulli.
   + **Flusso di destinazione**: la risorsa di destinazione Kinesis Data Streams su cui lo stream scrive i record di dati. Utilizzate il seguente formato ARN.

     ```
     arn:aws:kinesis:aws-region:account-id:stream/kinesis-stream-name
     ```

     Di seguito è riportato un esempio.

     ```
     arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb
     ```

     Gli stream tra regioni e tra account non sono supportati. Il flusso di dati Kinesis specificato deve trovarsi nello stesso Regione AWS account del registro.
   + **Abilita l'aggregazione dei record in Kinesis Data** Streams — (Attivata per impostazione predefinita) Consente a QLDB di pubblicare più record di dati in un singolo record Kinesis Data Streams, aumentando il numero di record inviati per chiamata API.
   + **Accesso al servizio**: il ruolo IAM che concede le autorizzazioni di scrittura QLDB al flusso di dati Kinesis.

     *Per passare un ruolo a QLDB quando si richiede un flusso di journal, è necessario disporre delle autorizzazioni per eseguire `iam:PassRole` l'azione sulla risorsa del ruolo IAM.*
     + **Crea e usa un nuovo ruolo di servizio**: consenti alla console di creare un nuovo ruolo per te con le autorizzazioni richieste per il flusso di dati Kinesis specificato.
     + **Usa un ruolo di servizio esistente**: per scoprire come creare manualmente questo ruolo in IAM, consulta. [Autorizzazioni di streaming](streams.perms.md)
   + **Tag**: (Facoltativo) Aggiungi metadati allo stream allegando i tag come coppie chiave-valore. Puoi aggiungere tag allo stream per organizzarli e identificarli. Per ulteriori informazioni, consulta [Etichettare le risorse Amazon QLDB](tagging.md).

     Scegli **Aggiungi tag**, quindi inserisci le coppie chiave-valore appropriate.

1. Quando le impostazioni sono quelle che desideri, scegli **Crea stream QLDB**.

   Se l'invio della richiesta ha esito positivo, la console torna alla pagina principale **Streams** ed elenca gli stream QLDB con il loro stato corrente.

1. Dopo che lo streaming è attivo, usa Kinesis per elaborare i dati di streaming con un'applicazione [consumer](https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-consumers.html).

   Apri la console Kinesis Data [https://console.aws.amazon.com/kinesis/](https://console.aws.amazon.com/kinesis/)Streams all'indirizzo.

Per informazioni sul formato dei record di dati di flusso, consulta. [Record di stream QLDB in Kinesis](streams.records.md)

Per informazioni su come gestire gli stream che generano un errore, consulta[Gestione degli stream compromessi](#streams.create.impaired).

**Per annullare uno stream (console)**

Non puoi riavviare uno stream QLDB dopo averlo annullato. Per riprendere la consegna dei dati a Kinesis Data Streams, puoi creare un nuovo flusso QLDB.

1. [Apri la console Amazon QLDB in /qldb. https://console.aws.amazon.com](https://console.aws.amazon.com/qldb)

1. Nel pannello di navigazione, seleziona **Streams** (Flussi).

1. Nell'elenco degli stream QLDB, seleziona lo stream attivo che desideri annullare.

1. **Scegli Annulla streaming.** Confermalo inserendo **cancel stream** nell'apposita casella.

Per informazioni sull'utilizzo dell'API QLDB con AWS un SDK o per creare e gestire flussi AWS CLI di journal, consulta. [Sviluppo con stream in QLDB](streams.sdk.md)

## Stati dello stream


Lo stato di uno stream QLDB può essere uno dei seguenti:
+ `ACTIVE`— È attualmente in streaming o è in attesa di trasmettere i dati (per uno streaming indefinito senza orario di fine).
+ `COMPLETED`— Ha terminato con successo lo streaming di tutti i blocchi del journal entro l'intervallo di tempo specificato. Si tratta di uno stato terminale.

  
+ `CANCELED`— È stato interrotto da una richiesta dell'utente prima dell'ora di fine specificata e non trasmette più attivamente i dati in streaming. Si tratta di uno stato terminale.
+ `IMPAIRED`— Non è in grado di scrivere record su Kinesis a causa di un errore che richiede l'intervento dell'utente. Si tratta di uno stato non terminale ripristinabile.

  Se risolvi l'errore entro un'ora, lo stream passa automaticamente allo stato. `ACTIVE` Se l'errore rimane irrisolto dopo un'ora, lo stream passa automaticamente allo `FAILED` stato.
+ `FAILED`— Non è in grado di scrivere record su Kinesis a causa di un errore e si trova in uno stato terminale irrecuperabile.

Il diagramma seguente illustra come una risorsa di flusso QLDB può passare da uno stato all'altro.

![\[Diagramma di stato che mostra come una risorsa di flusso QLDB può passare dagli stati attivo, annullato, completato, danneggiato e fallito.\]](http://docs.aws.amazon.com/it_it/qldb/latest/developerguide/images/stream-states.png)


### Scadenza per gli stream terminali


Le risorse di streaming che si trovano in uno stato terminale (`CANCELED``COMPLETED`, e`FAILED`) sono soggette a un periodo di conservazione di 7 giorni. Vengono eliminate automaticamente dopo la scadenza di questo limite.

Dopo l'eliminazione di un flusso di terminale, non è più possibile utilizzare la console QLDB o l'API QLDB per descrivere o elencare la risorsa di flusso.

## Gestione degli stream compromessi


Se il tuo stream riscontra un errore, passa prima allo stato. `IMPAIRED` QLDB continua a `IMPAIRED` riprovare lo streaming per un massimo di un'ora.

Se risolvi l'errore entro un'ora, lo stream passa automaticamente allo stato. `ACTIVE` Se l'errore rimane irrisolto dopo un'ora, lo stream passa automaticamente allo `FAILED` stato.

Uno stream danneggiato o non riuscito può avere una delle seguenti cause di errore:
+ `KINESIS_STREAM_NOT_FOUND`— La risorsa Kinesis Data Streams di destinazione non esiste. Verifica che il flusso di dati Kinesis fornito nella richiesta di flusso QLDB sia corretto. Quindi, vai su Kinesis e crea il flusso di dati che hai specificato.
+ `IAM_PERMISSION_REVOKED`— QLDB non dispone di autorizzazioni sufficienti per scrivere record di dati nel flusso di dati Kinesis specificato. Verifica di aver definito una policy per il flusso di dati Kinesis specificato che conceda al servizio QLDB () `qldb.amazonaws.com` le autorizzazioni per le seguenti azioni:
  + `kinesis:PutRecord`
  + `kinesis:PutRecords`
  + `kinesis:DescribeStream`
  + `kinesis:ListShards`

### Monitoraggio dei flussi compromessi


Se uno stream viene interrotto, la console QLDB visualizza un banner che mostra i dettagli sullo stream e l'errore che ha riscontrato. Puoi anche utilizzare l'operazione `DescribeJournalKinesisStream` API per ottenere lo stato di uno stream e la causa dell'errore sottostante.

Inoltre, puoi utilizzare Amazon CloudWatch per creare un allarme che monitora la `IsImpaired` metrica di uno stream. Per informazioni sul monitoraggio delle metriche CloudWatch QLDB con, vedere. [Dimensioni e parametri di Amazon QLDB](monitoring-cloudwatch.md#qldb-metrics-dimensions)