

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

# Recupero dei parametri da altre origini dati
<a name="MultiDataSourceQuerying"></a>

Puoi utilizzarlo CloudWatch per interrogare, visualizzare e creare allarmi per metriche provenienti da altre fonti di dati. Per farlo, ti connetti CloudWatch alle altre fonti di dati. Questo ti offre un'esperienza di monitoraggio unica e consolidata all'interno della CloudWatch console. Puoi avere una visualizzazione unificata dei parametri dell'infrastruttura e delle applicazioni a prescindere da dove sono archiviati i dati, per identificare e risolvere i problemi più rapidamente. 

Dopo esserti connesso a una fonte di dati tramite una CloudWatch procedura guidata, CloudWatch crea uno AWS CloudFormation stack che distribuisce e configura una funzione. AWS Lambda Questa funzione Lambda viene eseguita su richiesta ogni volta che si esegue una query sull'origine dati. Il generatore di CloudWatch query mostra in tempo reale un elenco di elementi su cui è possibile eseguire query, come metriche, tabelle, campi o etichette. Man mano che effettui delle scelte, il generatore di query precompila una query nella lingua nativa dell'origine selezionata. 

CloudWatch fornisce procedure guidate per la connessione alle seguenti fonti di dati. Per queste origini dati, fornisci informazioni di base per identificare l'origine dati e le credenziali. Puoi anche creare manualmente connettori ad altre origini dati creando le tue funzioni Lambda.
+ Amazon OpenSearch Service: ricava i parametri dai log e dalle tracce OpenSearch del tuo servizio.
+ Amazon Managed Service per Prometheus: consulta questi parametri utilizzando PromQL.
+ Amazon RDS per MySQL: usa SQL per convertire i dati archiviati nelle tabelle Amazon RDS in parametri.
+ Amazon RDS per PostgreSQL: usa SQL per convertire i dati archiviati nelle tabelle Amazon RDS in parametri.
+ File CSV di Amazon S3: visualizza i dati dei parametri da un file CSV archiviato in un bucket Amazon S3.
+ Microsoft Azure Monitor: esegui query sui parametri del tuo account Microsoft Azure Monitor.
+ Prometheus: consulta questi parametri utilizzando PromQL.

Dopo aver creato i connettori alle origini dati, consulta [Creazione di un grafico dei parametri da un'altra origine dati](graph_a_metric.md#create-metric-graph-multidatasource) per informazioni sulla rappresentazione grafica di un parametro da un'origine dati. Per informazioni sull'impostazione di un allarme su un parametro proveniente da un'origine dati, consulta [Creazione di un allarme basato su un'origine dati connessa](Create_MultiSource_Alarm.md).

**Topics**
+ [Gestione dell'accesso alle origini dati](CloudWatch_MultiDataSources_Permissions.md)
+ [Connessione a un'origine dati predefinita con una procedura guidata](CloudWatch_MultiDataSources-Connect.md)
+ [Creare un connettore personalizzato a un'origine dati](CloudWatch_MultiDataSources-Connect-Custom.md)
+ [Uso dell'origine dati personalizzata](CloudWatch_MultiDataSources-Custom-Use.md)
+ [Eliminazione di un connettore a un'origine dati](CloudWatch_MultiDataSources-Delete.md)

# Gestione dell'accesso alle origini dati
<a name="CloudWatch_MultiDataSources_Permissions"></a>

 CloudWatch utilizza CloudFormation per creare le risorse necessarie nel tuo account. Ti consigliamo di utilizzare la `cloudformation:TemplateUrl` condizione per controllare l'accesso ai CloudFormation modelli quando concedi `CreateStack` le autorizzazioni agli utenti IAM. 

**avvertimento**  
Qualsiasi utente a cui concedi l'autorizzazione per richiamare l'origine dati può interrogare i parametri di tale origine di dati anche se non dispone delle autorizzazioni IAM dirette per quest'ultima. Ad esempio, se concedi le autorizzazioni `lambda:InvokeFunction` per una funzione Lambda dell'origine dati Amazon Managed Service per Prometheus a un utente, quell'utente sarà in grado di eseguire query sui parametri dall'area di lavoro Amazon Managed Service per Prometheus corrispondente anche se non gli hai concesso l'accesso IAM diretto a quell'area di lavoro.

Puoi trovare il modello URLs per le fonti di dati nella pagina **Crea stack** nella Console delle CloudWatch impostazioni. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudFormationCreateStack",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudformation:TemplateUrl": [
                        "https://s3.us-east-1.amazonaws.com/amzn-s3-demo-bucket/template.json"
                    ]
                }
            }
        }
    ]
}
```

------

Per ulteriori informazioni sul controllo degli CloudFormation accessi, vedere [Controllo dell'accesso con AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)

# Connessione a un'origine dati predefinita con una procedura guidata
<a name="CloudWatch_MultiDataSources-Connect"></a>

 Questo argomento fornisce istruzioni per l'utilizzo della procedura guidata per la connessione CloudWatch alle seguenti fonti di dati. 
+  OpenSearch Servizio Amazon
+ Amazon Managed Service per Prometheus
+ Amazon RDS per MySQL
+ Amazon RDS per PostgreSQL
+ File CSV di Amazon S3
+ Microsoft Azure Monitor
+ Prometheus

 Le sottosezioni di questo argomento includono note sulla gestione e sull'esecuzione di query con ciascuna di queste origini dati. 

**Per creare un connettore a un'origine dati**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione scegli **Impostazioni**.

1. Seleziona la scheda **Origini dati dei parametri**.

1. Seleziona **Create data source (Crea origine dati)**.

1. Seleziona l'origine che desideri, quindi scegli **Successivo**.

1. Inserisci un nome per l'origine dati.

1. Inserisci le altre informazioni richieste, a seconda dell'origine dati che hai scelto. Queste possono includere credenziali per accedere all'origine dati e alle informazioni di identificazione dell'origine dati, come il nome dell'area di lavoro Prometheus, del database o del bucket Amazon S3. Per AWS i servizi, la procedura guidata rileva le risorse e le inserisce nel menu a discesa di selezione.

   Per ulteriori note sull'origine dati che stai utilizzando, consulta le sezioni successive a questa procedura.

1. Per CloudWatch connetterti alla sorgente dati in un VPC, scegli **Usa un VPC e seleziona il VPC** da usare. Quindi seleziona la sottorete e il gruppo di sicurezza.

1. Scegli **Riconosco che CloudFormation creerà risorse** IAM. Questa risorsa è il ruolo di esecuzione della funzione Lambda.

1. Seleziona **Create data source (Crea origine dati)**.

   La nuova fonte che hai appena aggiunto non viene visualizzata finché lo CloudFormation stack non ha finito di crearla. Per verificare i progressi, puoi scegliere **Visualizza lo stato del mio CloudFormation stack**. In alternativa, puoi selezionare l'icona di aggiornamento per aggiornare questo elenco.

   Quando la nuova origine dati viene visualizzata nell'elenco, è pronta per essere utilizzata. Puoi scegliere **Query tra le CloudWatch metriche** per iniziare a eseguire query con essa. Per ulteriori informazioni, consulta [Creazione di un grafico dei parametri da un'altra origine dati](graph_a_metric.md#create-metric-graph-multidatasource).

## Amazon Managed Service per Prometheus
<a name="MultiDataSources-Amazon_Managed_Prometheus"></a>

**Aggiornamento della configurazione dell'origine dati**
+ Puoi aggiornare l'origine dati manualmente con le seguenti operazioni:
  + Per aggiornare l'ID dell'area di lavoro Amazon Managed Service per Prometheus, aggiorna la variabile di ambiente `AMAZON_PROMETHEUS_WORKSPACE_ID` per la funzione Lambda del connettore di origine dati.
  + Per aggiornare la configurazione VPC, consulta [Configurazione dell'accesso VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) per ulteriori informazioni. 

**Esecuzione di query sull'origine dati**
+ Quando esegui una query su Amazon Managed Service per Prometheus, dopo aver selezionato l'origine dati nella scheda **Query da più origini** e selezionato un connettore Amazon Managed Service per Prometheus, puoi utilizzare la **Guida alle query** per scoprire parametri ed etichette e fornire semplici query PromQL. Puoi anche utilizzare l'editor di query PromQL per creare una query PromQL.
+ Le interrogazioni multilinea non sono supportate dai connettori delle sorgenti dati. CloudWatch Ogni avanzamento riga viene sostituito da uno spazio quando la query viene eseguita o quando si crea un allarme o un widget del pannello di controllo con la query. In alcuni casi, ciò potrebbe rendere la query non valida. Ad esempio, se la query contiene un commento di una singola riga, non sarà valida. Se provi a creare una dashboard o un allarme con una query su più righe dalla riga di comando o Infrastructure as Code, l'API rifiuta l'azione generando un errore di analisi.

## OpenSearch Servizio Amazon
<a name="MultiDataSources-Amazon_OpenSearch"></a>

**Creazione di un'origine dati**

Se il OpenSearch dominio è abilitato per FGAC, è necessario mappare il ruolo di esecuzione della funzione Lambda del connettore a un utente in Service. OpenSearch Per ulteriori informazioni, consulta la sezione **Mappatura degli utenti ai ruoli** nella documentazione sulla [gestione delle autorizzazioni nella documentazione](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-access-control) del servizio. OpenSearch 

Se il tuo OpenSearch dominio è accessibile solo all'interno di un Virtual Private Cloud (VPC), devi includere manualmente una nuova variabile di ambiente nella funzione Lambda chiamata. `AMAZON_OPENSEARCH_ENDPOINT` Il valore di questa variabile deve essere il dominio principale dell' OpenSearch endpoint. È possibile ottenere questo dominio radice rimuovendo `https://` e `<region>.es.amazonaws.com` dall'endpoint del dominio elencato nella console di OpenSearch servizio. Ad esempio, se l'endpoint del dominio è `https://sample-domain.us-east-1.es.amazonaws.com`, il dominio root sarà `sample-domain`.

**Aggiornamento di un'origine dati**
+ Puoi aggiornare l'origine dati manualmente con le seguenti operazioni:
  + Per aggiornare il dominio OpenSearch Service, aggiorna la variabile di `AMAZON_OPENSEARCH_DOMAIN_NAME` ambiente per la funzione Lambda del connettore di origine dati.
  + Per aggiornare la configurazione VPC, consulta [Configurazione dell'accesso VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) per ulteriori informazioni. 

**Esecuzione di query sull'origine dati**
+ Quando esegui una query su OpenSearch Service, dopo aver selezionato l'origine dati nella scheda **Query da più fonti**, procedi come segue:
  + Seleziona l'indice per eseguire query.
  + Seleziona il nome del parametro (qualsiasi campo numerico nel documento) e le statistiche.
  + Seleziona l'asse del tempo (qualsiasi campo di data nel documento).
  + Seleziona i filtri da applicare (qualsiasi campo di stringa nel documento).
  + Scegli **Query a grafo**.

## Amazon RDS per PostgreSQL e Amazon RDS per MySQL
<a name="MultiDataSources-Amazon_RDS_PostGre_SQL"></a>

**Creazione di un'origine dati**
+ Se l'origine dati è accessibile solo in un VPC, è necessario includere la configurazione VPC per il connettore, come descritto in [Connessione a un'origine dati predefinita con una procedura guidata](#CloudWatch_MultiDataSources-Connect). Se l'origine dati deve connettersi al VPC per le credenziali, l'endpoint deve essere configurato nel VPC. Per ulteriori informazioni, consulta [Utilizzo di un Gestione dei segreti AWS endpoint VPC.](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html) 

  Inoltre, devi creare un endpoint VPC per il servizio Amazon RDS. Per ulteriori informazioni, consulta [Amazon RDS API and interface VPC endpoints (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/vpc-interface-endpoints.html).

**Aggiornamento di un'origine dati**
+ Puoi aggiornare l'origine dati manualmente con le seguenti operazioni:
  + Per aggiornare l'istanza di database, aggiorna la variabile di ambiente `RDS_INSTANCE` per la funzione Lambda del connettore di origine dati.
  + Per aggiornare il nome utente e la password utilizzati per connettersi ad Amazon RDS, usa Gestione dei segreti AWS. Puoi trovare l'ARN del segreto usato per l'origine dati nella variabile di ambiente `RDS_SECRET` della funzione Lambda dell'origine dati. Per ulteriori informazioni sull'aggiornamento del segreto in Gestione dei segreti AWS, consulta [Modificare un segreto Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html).
  + Per aggiornare la configurazione VPC, consulta [Configurazione dell'accesso VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) per ulteriori informazioni. 

**Esecuzione di query sull'origine dati**
+ Quando esegui una query su Amazon RDS, dopo aver selezionato l'origine dati nella scheda **Query da più origini** e selezionato un connettore Amazon RDS, puoi utilizzare il rilevatore di database per visualizzare database, tabelle e colonne disponibili. Puoi inoltre utilizzare l'editor SQL per creare una query SQL.

  Puoi utilizzare le seguenti variabili nella query:
  + `$start.iso` – L'ora di inizio nel formato data ISO
  + `$end.iso` – L'ora di fine nel formato data ISO
  + `$period` – Il periodo selezionato in secondi

  Ad esempio, è possibile eseguire una query `SELECT value, timestamp FROM table WHERE timestamp BETWEEN $start.iso and $end.iso`
+ Le interrogazioni multilinea non sono supportate dai connettori delle sorgenti dati. CloudWatch Ogni avanzamento riga viene sostituito da uno spazio quando la query viene eseguita o quando si crea un allarme o un widget del pannello di controllo con la query. In alcuni casi, ciò potrebbe rendere la query non valida. Ad esempio, se la query contiene un commento di una singola riga, non sarà valida. Se provi a creare una dashboard o un allarme con una query su più righe dalla riga di comando o Infrastructure as Code, l'API rifiuta l'azione generando un errore di analisi.

**Nota**  
Se nei risultati non viene trovato alcun campo relativo alla data, i valori di ogni campo numerico vengono sommati in valori singoli e tracciati nell'intervallo di tempo fornito. Se i timestamp non sono allineati con il periodo selezionato in CloudWatch, i dati vengono aggregati automaticamente utilizzando `SUM` e allineati con il periodo in. CloudWatch

## File CSV di Amazon S3
<a name="MultiDataSources-Amazon_S3_CSV"></a>

**Esecuzione di query sull'origine dati**
+ Quando esegui una query sui file CSV di Amazon S3, dopo aver selezionato l'origine dati nella scheda **Query da più origini** e selezionato un connettore Amazon S3, devi selezionare il bucket e la chiave Amazon S3.

  Il file CSV deve essere formattato come segue:
  + Il timestamp deve essere la prima colonna.
  + La tabella deve avere una riga di intestazione. Le intestazioni vengono utilizzate per denominare le metriche. Il titolo della colonna del timestamp verrà ignorato, verranno utilizzati solo i titoli delle colonne delle metriche.
  + I timestamp devono essere nel formato data ISO.
  + Le metriche devono essere campi numerici.

  ```
  Timestamp, Metric-1, Metric-2, ...
  ```

  Di seguito è riportato un esempio:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonCloudWatch/latest/monitoring/CloudWatch_MultiDataSources-Connect.html)

**Nota**  
Se non viene fornito alcun timestamp, i valori di ogni parametro vengono sommati in valori singoli e tracciati nell'intervallo di tempo fornito. Se i timestamp non sono allineati con il periodo selezionato in CloudWatch, i dati vengono aggregati automaticamente utilizzando e allineati con il periodo in. `SUM` CloudWatch

## Microsoft Azure Monitor
<a name="MultiDataSources-Azure_Monitor"></a>

**Creazione di un'origine dati**
+ È necessario fornire l'ID tenant, l'ID client e il segreto client per connettersi a Microsoft Azure Monitor. Le credenziali verranno archiviate in. Gestione dei segreti AWS Per maggiori informazioni, consulta [Creazione di un'applicazione Microsoft Entra e di un principale del servizio in grado di accedere alle risorse](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal) nella documentazione di Microsoft. 

**Aggiornamento di un'origine dati**
+ Puoi aggiornare l'origine dati manualmente con le seguenti operazioni:
  + Per aggiornare l'ID tenant, l'ID client e il segreto client usati per connettersi ad Azure Monitor, puoi trovare l'ARN del segreto usato per l'origine dati come variabile di ambiente `AZURE_CLIENT_SECRET` della funzione Lambda dell'origine dati. Per ulteriori informazioni sull'aggiornamento del segreto in Gestione dei segreti AWS, consulta [Modificare un Gestione dei segreti AWS segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html).

**Esecuzione di query sull'origine dati**
+ Quando si esegue una query di Azure Monitor, dopo aver selezionato l'origine dati nella scheda **Query da più origini** e aver selezionato un connettore Azure Monitor, si specifica la sottoscrizione di Azure, il gruppo di risorse e la risorsa. È quindi possibile selezionare lo spazio dei nomi del parametro, il parametro e l'aggregazione dei parametri e filtrare per dimensioni. 

## Prometheus
<a name="MultiDataSources-Prometheus"></a>

**Creazione di un'origine dati**
+ È necessario fornire l'endpoint Prometheus e l'utente e la password necessari per interrogare Prometheus. Le credenziali verranno archiviate in Gestione dei segreti AWS. 
+ Se l'origine dati è accessibile solo in un VPC, è necessario includere la configurazione VPC per il connettore, come descritto in [Connessione a un'origine dati predefinita con una procedura guidata](#CloudWatch_MultiDataSources-Connect). Se l'origine dati deve essere collegata per le credenziali, l'endpoint deve essere configurato nel VPC. Per ulteriori informazioni, consulta [Utilizzo di un Gestione dei segreti AWS endpoint VPC.](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html) 

**Aggiornamento della configurazione dell'origine dati**
+ Puoi aggiornare l'origine dati manualmente con le seguenti operazioni:
  + Per aggiornare l'endpoint Prometheus, specifica il nuovo endpoint come variabile di ambiente `PROMETHEUS_API_ENDPOINT` nella funzione Lambda dell'origine dati.
  + Per aggiornare il nome utente e la password usati per connettersi a Prometheus, puoi trovare l'ARN del segreto usato per l'origine dati come variabile di ambiente `PROMETHEUS_API_SECRET` della funzione Lambda dell'origine dati. Per ulteriori informazioni sull'aggiornamento del segreto in Gestione dei segreti AWS, consulta [Modificare un Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html) segreto.
  + Per aggiornare la configurazione VPC, consulta [Configurazione dell'accesso VPC (console)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring) per ulteriori informazioni. 

**Esecuzione di query sull'origine dati**

**Importante**  
I tipi di metriche di Prometheus sono CloudWatch diversi dalle metriche e molte metriche disponibili tramite Prometheus sono cumulative per definizione. Quando si esegue una query sulle metriche di Prometheus CloudWatch , non applica alcuna trasformazione aggiuntiva ai dati: se si specifica solo il nome o l'etichetta della metrica, il valore visualizzato sarà cumulativo. Per ulteriori informazioni, consulta [Tipi di parametri](https://prometheus.io/docs/concepts/metric_types/) nella documentazione di Prometheus.  
Per vedere i dati delle metriche di Prometheus come valori discreti, ad CloudWatch esempio metriche, devi modificare la query prima di eseguirla. Ad esempio, potresti dover aggiungere una chiamata alla funzione rate al nome del parametro Prometheus. Per la documentazione sulla funzione rate e altre funzioni di Prometheus, consulta [rate()](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate) nella documentazione di Prometheus.

Le interrogazioni multilinea non sono supportate dai connettori delle sorgenti dati. CloudWatch Ogni avanzamento riga viene sostituito da uno spazio quando la query viene eseguita o quando si crea un allarme o un widget del pannello di controllo con la query. In alcuni casi, ciò potrebbe rendere la query non valida. Ad esempio, se la query contiene un commento di una singola riga, non sarà valida. Se provi a creare una dashboard o un allarme con una query su più righe dalla riga di comando o Infrastructure as Code, l'API rifiuta l'azione generando un errore di analisi.

## Notifica degli aggiornamenti disponibili
<a name="CloudWatch_MultiDataSources-Future-Updates"></a>

Periodicamente, Amazon potrebbe inviarti una notifica per consigliarti di aggiornare i connettori con una versione disponibile più recente e ti fornirà istruzioni su come farlo.

# Creare un connettore personalizzato a un'origine dati
<a name="CloudWatch_MultiDataSources-Connect-Custom"></a>

 Questo argomento descrive come connettere un'origine dati personalizzata a CloudWatch. Puoi connettere un'origine dati personalizzata a CloudWatch in due modi: 
+  Utilizzando un modello di esempio che CloudWatch fornisce. Puoi usare entrambi JavaScript o Python con questo modello. Questi modelli includono codice Lambda di esempio che ti sarà utile durante la creazione della tua funzione Lambda. Puoi quindi modificare la funzione Lambda del modello per connetterti alla tua origine dati personalizzata. 
+  Creazione da zero di una AWS Lambda funzione che implementa il connettore di origine dati, l'interrogazione dei dati e la preparazione delle serie temporali da utilizzare da. CloudWatch Questa funzione deve preaggregare o unire i punti dati, se necessario, e inoltre allineare il periodo e i timestamp con cui è compatibile. CloudWatch 

**Contents**
+ [Utilizzo dei modelli](#CloudWatch_MultiDataSources-Connect-Custom-template)
+ [Creazione di un'origine dati personalizzata partendo da zero](#CloudWatch_MultiDataSources-Connect-Custom-Lambda)
  + [Fase 1: Creare la funzione](#MultiDataSources-Connect-Custom-Lambda-Function)
    + [GetMetricData evento](#MultiDataSources-GetMetricData)
    + [DescribeGetMetricData evento](#MultiDataSources-DescribeGetMetricData)
    + [Considerazioni importanti sugli allarmi CloudWatch](#MultiDataSources-Connect-Custom-Lambda-Alarms)
    + [(Facoltativo) Da utilizzare Gestione dei segreti AWS per memorizzare le credenziali](#MultiDataSources-Connect-Custom-Lambda-Secrets)
    + [(Facoltativo) Connessione a un'origine dati in un VPC](#MultiDataSources-Connect-Custom-Lambda-VPC)
  + [Fase 2: creazione di una policy di autorizzazioni Lambda](#MultiDataSources-Connect-Custom-Lambda-Permissions)
  + [Fase 3: collegamento di un tag delle risorse alla funzione Lambda](#MultiDataSources-Connect-Custom-Lambda-tags)

## Utilizzo dei modelli
<a name="CloudWatch_MultiDataSources-Connect-Custom-template"></a>

L'utilizzo di un modello crea una funzione Lambda di esempio e può aiutarti a creare più velocemente il tuo connettore personalizzato. Queste funzioni di esempio forniscono codice di esempio per molti scenari comuni relativi alla creazione di un connettore personalizzato. Puoi esaminare il codice Lambda dopo aver creato un connettore con un modello, quindi modificarlo per utilizzarlo per connetterti alla tua origine dati.

Inoltre, se utilizzi il modello, CloudWatch si occupa di creare la politica di autorizzazioni Lambda e di allegare i tag delle risorse alla funzione Lambda.

**Per usare il modello per creare un connettore a un'origine dati personalizzata**

1. Apri la console all'indirizzo. CloudWatch [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Nel pannello di navigazione scegli **Impostazioni**.

1. Seleziona la scheda **Origini dati dei parametri**.

1. Seleziona **Create data source (Crea origine dati)**.

1. Seleziona il pulsante di opzione **Personalizzato - modello di base**, quindi scegli **Successivo**.

1. Inserisci un nome per l'origine dati.

1. Seleziona uno dei modelli elencati.

1. Seleziona Node.js o Python.

1. Seleziona **Create data source (Crea origine dati)**.

   La nuova fonte personalizzata che hai appena aggiunto non viene visualizzata finché lo CloudFormation stack non finisce di crearla. Per verificare i progressi, puoi scegliere **Visualizza lo stato del mio CloudFormation stack**. In alternativa, puoi selezionare l'icona di aggiornamento per aggiornare questo elenco.

   Quando la nuova origine dati viene visualizzata in questo elenco, è pronta per essere testata nella console e modificata.

1. (Facoltativo) Per eseguire query sui dati di test provenienti da questa origine nella console, consulta le istruzioni fornite in [Creazione di un grafico dei parametri da un'altra origine dati](graph_a_metric.md#create-metric-graph-multidatasource).

1. Modifica la funzione Lambda in base alle necessità. 

   1. Nel pannello di navigazione scegli **Impostazioni**.

   1. Seleziona la scheda **Origini dati dei parametri**.

   1. Seleziona **Visualizza nella console Lambda** per l'origine che desideri modificare.

   Ora puoi modificare la funzione per accedere alla tua origine dati. Per ulteriori informazioni, consulta [Fase 1: Creare la funzione](#MultiDataSources-Connect-Custom-Lambda-Function).
**Nota**  
Utilizzando il modello, quando scrivi la funzione Lambda non è necessario seguire le istruzioni in [Fase 2: creazione di una policy di autorizzazioni Lambda](#MultiDataSources-Connect-Custom-Lambda-Permissions) o. [Fase 3: collegamento di un tag delle risorse alla funzione Lambda](#MultiDataSources-Connect-Custom-Lambda-tags) Questi passaggi sono stati eseguiti CloudWatch perché hai utilizzato il modello.

## Creazione di un'origine dati personalizzata partendo da zero
<a name="CloudWatch_MultiDataSources-Connect-Custom-Lambda"></a>

Segui i passaggi in questa sezione per creare una funzione Lambda che si connette CloudWatch a un'origine dati. 

### Fase 1: Creare la funzione
<a name="MultiDataSources-Connect-Custom-Lambda-Function"></a>

Un connettore di origine dati personalizzato deve supportare `GetMetricData` eventi provenienti da CloudWatch. Facoltativamente, puoi anche implementare un `DescribeGetMetricData` evento per fornire la documentazione agli utenti della CloudWatch console su come utilizzare il connettore. La `DescribeGetMetricData` risposta può essere utilizzata anche per impostare i valori predefiniti utilizzati nel generatore di query CloudWatch personalizzato.

CloudWatch fornisce frammenti di codice come esempi per aiutarti a iniziare. Per ulteriori informazioni, consulta l'archivio degli esempi all'indirizzo. [https://github.com/aws-samples/cloudwatch-data-source-samples](https://github.com/aws-samples/cloudwatch-data-source-samples)

**Vincoli**
+ La risposta di Lambda deve avere una dimensione inferiore a 6 Mb. Se la risposta supera i 6 Mb, la risposta `GetMetricData` contrassegna la funzione Lambda come `InternalError` e non viene restituito alcun dato.
+ La funzione Lambda deve completare la sua esecuzione entro 10 secondi per scopi di visualizzazione e dashboard o entro 4,5 secondi per l'utilizzo degli allarmi. Se la il tempo di esecuzione è più lungo, la risposta `GetMetricData` contrassegna la funzione Lambda come `InternalError` e non viene restituito alcun dato.
+ La funzione Lambda deve inviare il suo output utilizzando timestamp epoch in secondi.
+ Se la funzione Lambda non ricampiona i dati e restituisce invece dati che non corrispondono all'ora di inizio e alla durata del periodo richiesti dall' CloudWatch utente, tali dati vengono ignorati da. CloudWatch I dati aggiuntivi vengono eliminati da qualsiasi visualizzazione o allarme. Vengono eliminati anche tutti i dati che non si trovano tra l'ora di inizio e l'ora di fine.

  Ad esempio, se un utente richiede dati dalle 10:00 alle 11:00 con una durata di 5 minuti, gli intervalli di tempo validi per la restituzione dei dati sono "dalle 10:00:00 alle 10:04:59" e "dalle 10:05:00 alle 10:09:59". È necessario restituire una serie temporale che includa `10:00 value1`, `10:05 value2` e così via. Se la funzione restituisce `10:03 valueX`, ad esempio, viene eliminata perché 10:03 non corrisponde all'ora e al periodo di inizio richiesti.
+ Le interrogazioni multilinea non sono supportate dai connettori delle sorgenti dati. CloudWatch Ogni avanzamento riga viene sostituito da uno spazio quando la query viene eseguita o quando si crea un allarme o un widget del pannello di controllo con la query. In alcuni casi, ciò potrebbe rendere la query non valida.

#### GetMetricData evento
<a name="MultiDataSources-GetMetricData"></a>

**Payload della richiesta**

Di seguito è riportato un esempio di payload della richiesta `GetMetricData` inviato come input alla funzione Lambda.

```
{
  "EventType": "GetMetricData",
  "GetMetricDataRequest": {
    "StartTime": 1697060700,
    "EndTime": 1697061600,
    "Period": 300,
    "Arguments": ["serviceregistry_external_http_requests{host_cluster!=\"prod\"}"] 
  }
}
```
+ **StartTime**— Il timestamp che specifica i primi dati da restituire. Il **Tipo** è timestamp secondi epoch.
+ **EndTime**— Il timestamp che specifica i dati più recenti da restituire. **Tipo** è timestamp secondi epoch.
+ **Periodo:**: il numero di secondi rappresentato da ciascuna aggregazione dei dati dei parametri. Il valore minimo è 60 secondi. Il **Type** è Secondi.
+ **Argomenti**: una matrice di argomenti da passare all'espressione matematica del parametro Lambda. Per informazioni sugli argomenti da passare, consulta [Come passare argomenti alla funzione Lambda](CloudWatch_MultiDataSources-Custom-Use.md#MultiDataSources-Connect-Custom-Lambda-arguments).

**Payload della risposta**

Di seguito è riportato un esempio di payload di risposta `GetMetricData` per la funzione Lambda.

```
{
   "MetricDataResults": [
      {
         "StatusCode": "Complete",
         "Label": "CPUUtilization",
         "Timestamps": [ 1697060700, 1697061000, 1697061300 ],
         "Values": [ 15000, 14000, 16000 ]
      }
   ]
}
```

Il payload di risposta conterrà un campo `MetricDataResults` o un campo `Error`, ma non entrambi.

Un campo `MetricDataResults` è un elenco di campi di serie temporali di tipo `MetricDataResult`. Ciascuno di questi campi di serie temporali può includere i seguenti campi.
+ **StatusCode**— (Facoltativo) `Complete` indica che sono stati restituiti tutti i punti dati nell'intervallo di tempo richiesto. `PartialData`significa che è stato restituito un set incompleto di punti dati. Se viene omesso, il valore predefinito è `Complete`.

  Valori validi: `Complete` \$1 `InternalError` \$1 `PartialData` \$1 `Forbidden`
+ **Messaggi**: elenco facoltativo di messaggi con informazioni aggiuntive sui dati restituiti.

  Tipo: matrice di [MessageData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MessageData.html)oggetti con `Code` e `Value` stringhe.
+ **Etichetta**: l'etichetta leggibile dall'uomo associata ai dati.

  Tipo: String
+ **Timestamp**: i timestamp per i punti dati, formattati in base all'ora epoch. Il numero di timestamp corrisponde sempre al numero di valori e il valore per `Timestamps[x]` è `Values[x`].

  Tipo: matrice di timestamp
+ **Valori**: i valori dei punti dati per il parametro, corrispondenti a `Timestamps`. Il numero di valori corrisponde sempre al numero di timestamp e il valore per `Timestamps[x]` è `Values[x`].

  Tipo: matrice di doppi

Per ulteriori informazioni sull'utilizzo degli oggetti `Error`, consulta le sezioni successive.

**Formati di risposta di errore**

Puoi utilizzare la risposta di errore per fornire ulteriori informazioni sugli errori. Ti consigliamo di restituire un errore con Code Validation quando si verifica un errore di convalida, ad esempio quando un parametro manca o è del tipo sbagliato.

Di seguito è riportato un esempio di risposta per un caso in cui la funzione Lambda vuole generare un'eccezione di convalida `GetMetricData`.

```
{
   "Error": {
      "Code": "Validation",
      "Value": "Invalid Prometheus cluster"
   }
}
```

Di seguito è riportato un esempio di risposta per un caso in cui la funzione Lambda indica che non è in grado di restituire dati a causa di un problema di accesso. La risposta viene tradotta in una singola serie temporale con un codice di stato di `Forbidden`.

```
{
   "Error": {
      "Code": "Forbidden",
      "Value": "Unable to access ..."
   }
}
```

Di seguito è riportato l'esempio di un caso in cui la funzione Lambda genera un'eccezione `InternalError` generale, che viene tradotta in una singola serie temporale con un codice di stato di `InternalError` e un messaggio. Ogni volta che un codice di errore ha un valore diverso da `Validation` o`Forbidden`, CloudWatch si presume che si tratti di un errore interno generico.

```
{
   "Error": {
      "Code": "PrometheusClusterUnreachable",
      "Value": "Unable to communicate with the cluster"
   }
}
```

#### DescribeGetMetricData evento
<a name="MultiDataSources-DescribeGetMetricData"></a>

**Payload della richiesta**

Di seguito è riportato un esempio di payload della richiesta `DescribeGetMetricData`.

```
{
  "EventType": "DescribeGetMetricData"
}
```

**Payload della risposta**

Di seguito è riportato un esempio di payload della risposta `DescribeGetMetricData`.

```
{
    "Description": "Data source connector",
    "ArgumentDefaults": [{
        Value: "default value"
     }]
}
```
+ **Descrizione**: una descrizione di come utilizzare il connettore di origine dati. Questa descrizione verrà visualizzata nella CloudWatch console. Markdown è supportato.

  Tipo: String
+ **ArgumentDefaults**— La matrice opzionale di valori predefiniti degli argomenti utilizzati precompila il generatore di sorgenti dati personalizzato.

  Se `[{ Value: "default value 1"}, { Value: 10}]` viene restituito, il generatore di query nella CloudWatch console visualizza due input, il primo con «valore predefinito 1" e il secondo con 10.

  Se `ArgumentDefaults` non viene fornito, viene visualizzato un singolo input con il tipo predefonito impostato su. `String`

  Tipo: matrice di oggetti contenente Vaolre e Tipo. 
+ **Errore**: (facoltativo) è possibile includere un campo di errore in qualsiasi risposta. Puoi consultare degli esempi in [GetMetricData evento](#MultiDataSources-GetMetricData).

#### Considerazioni importanti sugli allarmi CloudWatch
<a name="MultiDataSources-Connect-Custom-Lambda-Alarms"></a>

 Se intendi utilizzare la fonte dati per impostare gli CloudWatch allarmi, dovresti configurarla in modo da riportare dati con timestamp ogni minuto. CloudWatch Per ulteriori informazioni e altre considerazioni sulla creazione di allarmi sui parametri provenienti da origini dati connesse, consulta [Creazione di un allarme basato su un'origine dati connessa](Create_MultiSource_Alarm.md).

#### (Facoltativo) Da utilizzare Gestione dei segreti AWS per memorizzare le credenziali
<a name="MultiDataSources-Connect-Custom-Lambda-Secrets"></a>

Se la tua funzione Lambda deve utilizzare credenziali per accedere all'origine dati, ti consigliamo di utilizzare Gestione dei segreti AWS per archiviare queste credenziali invece di codificarle nella tua funzione Lambda. Per ulteriori informazioni sull'utilizzo Gestione dei segreti AWS con Lambda, consulta [Utilizzare Gestione dei segreti AWS i segreti nelle AWS Lambda funzioni](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html). 

#### (Facoltativo) Connessione a un'origine dati in un VPC
<a name="MultiDataSources-Connect-Custom-Lambda-VPC"></a>

Se la tua origine dati si trova in un VPC gestito da Amazon Virtual Private Cloud, devi configurare la funzione Lambda per accedervi. Per ulteriori informazioni, consulta [Connessione della rete in uscita alle risorse in un VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).

Potrebbe anche essere necessario configurare gli endpoint del servizio VPC per accedere a servizi come Gestione dei segreti AWS. Per ulteriori informazioni, consulta [Accedere a un AWS servizio utilizzando un endpoint VPC di interfaccia](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#access-service-though-endpoint).

### Fase 2: creazione di una policy di autorizzazioni Lambda
<a name="MultiDataSources-Connect-Custom-Lambda-Permissions"></a>

È necessario utilizzare creare una dichiarazione politica che conceda l' CloudWatch autorizzazione all'uso della funzione Lambda creata. È possibile utilizzare la console AWS CLI o la console Lambda per creare l'informativa sulla politica.

**Da utilizzare AWS CLI per creare l'informativa sulla politica**
+ Inserire il seguente comando. Sostituiscilo *123456789012* con l'ID del tuo account, sostituiscilo *my-data-source-function* con il nome della tua funzione Lambda e sostituiscilo *MyDataSource-DataSourcePermission1234* con un valore univoco arbitrario.

  ```
  aws lambda add-permission --function-name my-data-source-function --statement-id MyDataSource-DataSourcePermission1234 --action lambda:InvokeFunction --principal lambda.datasource.cloudwatch.amazonaws.com --source-account 123456789012
  ```

### Fase 3: collegamento di un tag delle risorse alla funzione Lambda
<a name="MultiDataSources-Connect-Custom-Lambda-tags"></a>

La CloudWatch console determina quali delle funzioni Lambda sono connettori di sorgenti dati utilizzando un tag. Quando crei un'origine dati utilizzando una delle procedure guidate, il tag viene applicato automaticamente dallo CloudFormation stack che lo configura. Quando crei personalmente un'origine dati, puoi usare il tag seguente per la tua funzione Lambda. In questo modo il connettore viene visualizzato nel menu a discesa **Origine dati** della CloudWatch console quando esegui una query sulle metriche.
+ Aggiungi un tag con `cloudwatch:datasource` come chiave e `custom` come valore.

# Uso dell'origine dati personalizzata
<a name="CloudWatch_MultiDataSources-Custom-Use"></a>

 Dopo aver creato un'origine dati, puoi usarla per eseguire query e visualizzare i dati da tale origine e per impostare allarmi. Se hai utilizzato un modello per creare il connettore di origine dati personalizzato o hai aggiunto il tag indicato in [Fase 3: collegamento di un tag delle risorse alla funzione Lambda](CloudWatch_MultiDataSources-Connect-Custom.md#MultiDataSources-Connect-Custom-Lambda-tags), puoi seguire i passaggi indicati in [Creazione di un grafico dei parametri da un'altra origine dati](graph_a_metric.md#create-metric-graph-multidatasource) per eseguire query su di esso. Puoi anche usare la funzione matematica dei parametri `LAMBDA` per eseguire query, come spiegato nella sezione seguente. Per informazioni sulla creazione di allarmi su un parametro proveniente da un'origine dati, consulta [Creazione di un allarme basato su un'origine dati connessa](Create_MultiSource_Alarm.md). Questo argomento descrive come passare argomenti alla funzione Lambda all'origine dati personalizzata. 

## Come passare argomenti alla funzione Lambda
<a name="MultiDataSources-Connect-Custom-Lambda-arguments"></a>

Il modo consigliato per passare argomenti all'origine dati personalizzata consiste nell'utilizzare il generatore di query nella CloudWatch console quando si esegue una query sull'origine dati.

È inoltre possibile utilizzare la funzione Lambda per recuperare dati dalla fonte dati utilizzando la nuova `LAMBDA` espressione in CloudWatch matematica metrica.

```
LAMBDA("LambdaFunctionName" [, optional-arg]*)
```

`optional-arg` contiene fino a 20 stringhe, numeri o valori booleani. Ad esempio, `param`, `3.14` o `true`.

**Nota**  
Le stringhe multilinea non sono supportate dai connettori delle sorgenti dati. CloudWatch Ogni avanzamento riga viene sostituito da uno spazio quando la query viene eseguita o quando si crea un allarme o un widget del pannello di controllo con la query. In alcuni casi, ciò potrebbe rendere la query non valida.

Quando usi la funzione di matematica dei parametri `LAMBDA`, puoi fornire il nome della funzione (`"MyFunction"`). Se la policy delle risorse lo consente, puoi anche utilizzare una versione specifica della funzione (`"MyFunction:22"`) o un alias di funzione Lambda (`"MyFunction:MyAlias"`). Non è possibile utilizzare `*`

Di seguito sono riportati alcuni esempi di chiamata della funzione `LAMBDA`.

```
LAMBDA("AmazonOpenSearchDataSource", "MyDomain", "some-query")
```

```
LAMBDA("MyCustomDataSource", true, "fuzzy", 99.9)
```

La funzione matematica dei parametri `LAMBDA` restituisce un elenco di serie temporali che possono essere restituite al richiedente o combinate con altre funzioni matematiche dei parametri. Di seguito è riportato un esempio di combinazione di `LAMBDA` con altre funzioni matematiche dei parametri.

```
FILL(LAMBDA("AmazonOpenSearchDataSource", "MyDomain", "some-query"), 0)
```

# Eliminazione di un connettore a un'origine dati
<a name="CloudWatch_MultiDataSources-Delete"></a>

 Le istruzioni di questa sezione spiegano come eliminare un connettore a un'origine dati. 

**Per eliminare un connettore a un'origine dati**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione scegli **Impostazioni**.

1. Seleziona la scheda **Origini dati dei parametri**.

1. Scegli **Gestisci CloudFormation nella** riga dell'origine dati che desideri eliminare.

   Verrai indirizzato alla CloudFormation console.

1. Nella sezione con il nome dell'origine dati, seleziona **Elimina**.

1. Nella finestra pop-up di conferma, scegli **Elimina**.