

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Utilizzo delle interfacce di gestione di Amazon Redshift per i cluster con provisioning
<a name="using-aws-sdk"></a>

**Nota**  
Questo argomento si concentra sulle interfacce di gestione di Amazon Redshift per i cluster con provisioning. Esistono interfacce di gestione simili per Amazon Redshift serverless e l’API dati Amazon Redshift.

Amazon Redshift supporta diverse interfacce di gestione che puoi utilizzare per creare, gestire ed eliminare i cluster Amazon Redshift: l'API di gestione AWS SDKs, the AWS Command Line Interface ()AWS CLI e Amazon Redshift.

**API Amazon Redshift**: è possibile chiamare questa API di gestione Amazon Redshift inviando una richiesta. Sono richieste HTTP o HTTPS che utilizzano i verbi HTTP `GET` o `POST` con un parametro denominato `Action`. La chiamata dell'API Amazon Redshift è il modo più diretto di accedere al servizio Amazon Redshift. Richiede tuttavia che la propria applicazione gestisca dettagli di basso livello, come il controllo degli errori e la generazione di un hash per la firma della richiesta.
+ Per informazioni sulla creazione e la firma di una richiesta API di Amazon Redshift, consultare [Firma di una richiesta HTTP](amazon-redshift-signing-requests.md).
+ Per informazioni sulle operazioni API di Amazon Redshift e sui tipi di dati per Amazon Redshift, consultare [Documentazione di riferimento dell'API Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/APIReference/Welcome.html).

**AWS SDKs**— Puoi utilizzarlo AWS SDKs per eseguire operazioni relative ai cluster Amazon Redshift. Molte delle librerie SDK eseguono il wrap dell'API Amazon Redshift sottostante. Queste integrano la funzionalità API nel linguaggio di programmazione specifico e gestiscono molti dettagli di basso livello, come il calcolo delle firme, la gestione dei tentativi di richiesta e la gestione degli errori. La chiamata delle funzioni wrapper nelle librerie SDK può semplificare notevolmente il processo di scrittura di un'applicazione per la gestione di un cluster Amazon Redshift.
+ Amazon Redshift è supportato da Java, .NET, PHP, Python, Ruby e Node.js. AWS SDKs Le funzioni wrapper per Amazon Redshift sono documentate nel manuale di riferimento per ogni SDK. Per un elenco AWS SDKs e i collegamenti alla relativa documentazione, consulta [Tools for Amazon Web Services](https://aws.amazon.com/tools/).
+ Questa guida fornisce esempi di utilizzo di Amazon Redshift mediante l'SDK Java. Per esempi di codice AWS SDK più generali, consulta[Esempi di codice per l'utilizzo di Amazon Redshift AWS SDKs](service_code_examples.md). 

**AWS CLI**— La CLI fornisce un set di strumenti da riga di comando che è possibile utilizzare per gestire AWS i servizi da computer Windows, Mac e Linux. La AWS CLI include comandi basati sulle operazioni API Amazon Redshift.
+ Per informazioni sull'installazione e la configurazione della CLI di Amazon Redshift, consultare [Configurazione della CLI di Amazon Redshift](setting-up-rs-cli.md).
+ Per il materiale di riferimento sui comandi della CLI di Amazon Redshift, consultare [Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html) in *Riferimenti di AWS CLI *

# Utilizzo di questo servizio con un SDK AWS
<a name="sdk-general-information-section"></a>

AWS i kit di sviluppo software (SDKs) sono disponibili per molti linguaggi di programmazione più diffusi. Ogni SDK fornisce un’API, esempi di codice e documentazione che facilitano agli sviluppatori la creazione di applicazioni nel loro linguaggio preferito.


| Documentazione sugli SDK | Esempi di codice | 
| --- | --- | 
| [AWS SDK per C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp) | [AWS SDK per C\$1\$1 esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI esempi di codice](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [AWS SDK per Go](https://docs.aws.amazon.com/sdk-for-go) | [AWS SDK per Go esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [AWS SDK per Java](https://docs.aws.amazon.com/sdk-for-java) | [AWS SDK per Java esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [AWS SDK per JavaScript](https://docs.aws.amazon.com/sdk-for-javascript) | [AWS SDK per JavaScript esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [AWS SDK per Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin) | [AWS SDK per Kotlin esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [AWS SDK per .NET](https://docs.aws.amazon.com/sdk-for-net) | [AWS SDK per .NET esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [AWS SDK per PHP](https://docs.aws.amazon.com/sdk-for-php) | [AWS SDK per PHP esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [AWS Strumenti per PowerShell](https://docs.aws.amazon.com/powershell) | [AWS Strumenti per PowerShell esempi di codice](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [AWS SDK per Python (Boto3)](https://docs.aws.amazon.com/pythonsdk) | [AWS SDK per Python (Boto3) esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [AWS SDK per Ruby](https://docs.aws.amazon.com/sdk-for-ruby) | [AWS SDK per Ruby esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [AWS SDK per Rust](https://docs.aws.amazon.com/sdk-for-rust) | [AWS SDK per Rust esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [AWS SDK per SAP ABAP](https://docs.aws.amazon.com/sdk-for-sapabap) | [AWS SDK per SAP ABAP esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [AWS SDK per Swift](https://docs.aws.amazon.com/sdk-for-swift) | [AWS SDK per Swift esempi di codice](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**Esempio di disponibilità**  
Non riesci a trovare quello che ti serve? Richiedi un esempio di codice utilizzando il link **Fornisci un feedback** nella parte inferiore di questa pagina.

# Firma di una richiesta HTTP
<a name="amazon-redshift-signing-requests"></a>

Amazon Redshift richiede che ogni richiesta inviata all'API di gestione venga autenticata con una firma. In questo argomento viene illustrato come firmare le richieste. 

Se si utilizza uno dei AWS Software Development Kit (SDKs) o ilAWS Command Line Interface, la firma della richiesta viene gestita automaticamente e si può saltare questa sezione. Per ulteriori informazioni sull'utilizzo AWSSDKs, vedere. [Utilizzo delle interfacce di gestione di Amazon Redshift per i cluster con provisioning](using-aws-sdk.md) Per ulteriori informazioni sull'uso dell'interfaccia a riga di comando di Amazon Redshift, consultare [Guida di riferimento alla riga di comando di Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html).

Per firmare una richiesta, è necessario calcolare una firma digitale usando una funzione hash crittografica. Una funzione hash crittografica è una funzione che restituisce un valore hash univoco basato sull'input. L'input alla funzione hash include il testo della richiesta e la chiave di accesso segreta che puoi ottenere dalle credenziali temporanee. La funzione hash restituisce un valore hash che includi nella richiesta come firma. La firma è parte dell'intestazione `Authorization` della richiesta.

**Nota**  
Gli utenti necessitano dell'accesso programmatico se desiderano interagire con l'AWSConsole di gestione AWSesterno di. Il modo per concedere l'accesso programmatico dipende dal tipo di utente che accede. AWS  
Per fornire agli utenti l’accesso programmatico, scegli una delle seguenti opzioni.  


****  

| Quale utente necessita dell’accesso programmatico? | Per | Come | 
| --- | --- | --- | 
| IAM | (Consigliato) Utilizza le credenziali della console come credenziali temporanee per firmare le richieste programmatiche a,, o. AWS CLI AWS SDKs AWS APIs |  Segui le istruzioni per l’interfaccia che desideri utilizzare. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
|  Identità della forza lavoro (Utenti gestiti nel centro identità IAM)  | Utilizza credenziali temporanee per firmare le richieste programmatiche aAWS CLI, AWSSDKs, o. AWS APIs |  Segui le istruzioni per l’interfaccia che desideri utilizzare. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
| IAM | Utilizza credenziali temporanee per firmare le richieste programmatiche aAWS CLI, AWSSDKs, o. AWS APIs | Seguendo le istruzioni riportate in [Utilizzo delle credenziali temporanee con le AWS risorse nella Guida per](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) l'utente IAM. | 
| IAM | (Non consigliato)Utilizza credenziali a lungo termine per firmare richieste programmatiche aAWS CLI,, AWS SDKs o. AWS APIs |  Segui le istruzioni per l’interfaccia che desideri utilizzare. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 

Dopo aver ricevuto la richiesta, Amazon Redshift ricalcola la firma usando la stessa funzione hash e lo stesso input che hai usato per firmare la richiesta. Se la firma risultante corrisponde a quella nella richiesta, Amazon Redshift elabora la richiesta. In caso contrario, la richiesta viene rifiutata. 

Amazon Redshift supporta l'autenticazione con [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html). La procedura per il calcolo di una firma è composta da tre attività. Queste attività sono illustrate nell'esempio seguente.
+   [Fase 1: creazione di una richiesta canonica](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request)

  Riorganizza la richiesta HTTP in un formato canonico. L'uso di un formato canonico è necessario perché Amazon Redshift utilizza lo stesso formato canonico per calcolare la firma da confrontare con quella che inviata. 
+   [Fase 2: creazione di una stringa di firma](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-string-to-sign)

  Crea una stringa che utilizzerai come uno dei valori di input per la funzione hash crittografica. La stringa, denominata *stringa di firma*, è una concatenazione del nome dell'algoritmo hash, della data della richiesta, di una stringa di *ambito credenziali* e della richiesta in formato canonico creata nella fase precedente. La stringa di *ambito credenziali* è anch'essa una concatenazione di data, regione e informazioni sul servizio.
+   [Attività 3: calcolo di una firma](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#calculate-signature)

  Calcola una firma per la richiesta utilizzando una funzione hash crittografica che accetta due stringhe di input, ovvero la stringa di firma e una *chiave derivata*. La chiave derivata viene calcolata partendo dalla chiave di accesso segreta e utilizzando la stringa Credential Scope per creare una serie di codici di autenticazione dei messaggi basati su hash (HMAC-). SHA256 

## Esempio di calcolo di firma
<a name="example-signature-calculation"></a>

L'esempio seguente illustra i dettagli della creazione di una firma per la richiesta. [CreateCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html) Puoi usare questo esempio come riferimento per verificare il metodo di calcolo della firma usato. Altri calcoli di riferimento sono inclusi nella sezione [Richiesta di esempi di firma](https://docs.aws.amazon.com/IAM/latest/UserGuide/signature-v4-examples.html) della Guida per l'utente IAM.

Per inviare richieste ad Amazon Redshift è possibile utilizzare una richiesta GET o POST. La differenza tra le due opzioni è legata al fatto che per la richiesta GET i parametri vengono inviati come parametri della stringa di query. Per la richiesta POST sono invece inclusi nel corpo della richiesta. L'esempio seguente mostra una richiesta POST.

L'esempio presuppone quanto segue:
+ Il time stamp della richiesta è `Fri, 07 Dec 2012 00:00:00 GMT`.
+ L'endpoint è la regione Stati Uniti orientali (Virginia settentrionale), `us-east-1`.

La sintassi generale della richiesta è la seguente: 

```
https://redshift.us-east-1.amazonaws.com/
   ?Action=CreateCluster
   &ClusterIdentifier=examplecluster
   &MasterUsername=masteruser
   &MasterUserPassword=12345678Aa
   &NumberOfNode=2
   &NodeType=dc2.large
   &Version=2012-12-01
   &x-amz-algorithm=AWS4-HMAC-SHA256
   &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request
   &x-amz-date=20121207T000000Z
   &x-amz-signedheaders=content-type;host;x-amz-date
```

Il formato canonico della richiesta calcolata per [Fase 1: creazione di una richiesta canonica](#SignatureCalculationTask1) è:

```
POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:redshift.us-east-1.amazonaws.com
x-amz-date:20121207T000000Z

content-type;host;x-amz-date
55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d
```

L'ultima riga della richiesta canonica è l'hash del corpo della richiesta. La terza riga nella richiesta canonica è vuota perché non ci sono parametri di query per l'API. 

La stringa di firma per [Fase 2: creazione di una stringa di firma](#SignatureCalculationTask2) è:

```
AWS4-HMAC-SHA256
20121207T000000Z
20121207/us-east-1/redshift/aws4_request
06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714
```

La prima riga della *stringa di firma* è l'algoritmo, la seconda è il timestamp, la terza è l'*ambito credenziali* e l'ultima è un hash del formato della richiesta canonica in [Fase 1: creazione di una richiesta canonica](#SignatureCalculationTask1). Il nome del servizio da utilizzare nell'ambito credenziali è `redshift`.

In [Attività 3: calcolo di una firma](#SignatureCalculationTask3), la chiave derivata può essere rappresentata come segue:

```
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")
```

La chiave derivata viene calcolata come una serie di funzioni hash. A partire dall'istruzione HMAC interna nella formula precedente, la frase **AWS4** viene concatenata con la chiave di accesso segreta e il risultato viene usato come chiave per l'hash dei dati "us-east-1". Il risultato dell'hash diventa la chiave per la funzione hash successiva. 

Dopo aver calcolato la chiave derivata, puoi usarla in una funzione hash che accetta due stringhe di input, ovvero la stringa di firma e la chiave derivata. Ad esempio, se usi la chiave di accesso segreta `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` e la stringa di firma indicata in precedenza, la firma calcolata è analoga a quanto segue:

```
9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

La fase finale consiste nel creare l'intestazione `Authorization`. Per la chiave di accesso `AKIAIOSFODNN7EXAMPLE`, l'intestazione (con interruzioni di riga aggiunte per facilitare la lettura) è:

```
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, 
SignedHeaders=content-type;host;x-amz-date, 
Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

# Configurazione della CLI di Amazon Redshift
<a name="setting-up-rs-cli"></a>

Questa sezione spiega come configurare ed eseguire gli strumenti da riga di AWS CLI comando da utilizzare nella gestione di Amazon Redshift. [Gli strumenti a riga di comando di Amazon Redshift vengono eseguiti su AWS Command Line Interface (AWS CLI), che a sua volta utilizza Python (thon.org/). https://www.py](https://www.python.org) AWS CLI Può essere eseguito su qualsiasi sistema operativo che supporti Python.

## Installazione di AWS Command Line Interface
<a name="setting-up.installing-the-tools"></a>

Per iniziare a utilizzare gli strumenti da riga di comando di Amazon Redshift, devi prima configurare e poi aggiungere i file di configurazione che definiscono le opzioni della CLI di Amazon Redshift. AWS CLI

Se lo hai già installato e configurato AWS CLI per un altro AWS servizio, puoi saltare questa procedura.

**Per installare il AWS Command Line Interface**

1. Vai a [Installa o aggiorna alla versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html), quindi segui le istruzioni per l'installazione di AWS CLI.

   Per l'accesso alla CLI, sono necessari un ID chiave di accesso e una chiave di accesso segreta. Utilizza credenziali temporanee al posto delle chiavi di accesso a lungo termine quando possibile. Le credenziali temporanee includono un ID della chiave di accesso, una chiave di accesso segreta e un token di sicurezza che ne indica la scadenza. Per ulteriori informazioni, consulta [Using temporary credenziali with AWS resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) nella *IAM User Guide*.

1. Creare un file contenente informazioni di configurazione come le chiavi di accesso, la regione predefinita e il formato di output dei comandi. Impostare quindi la variabile di ambiente `AWS_CONFIG_FILE` per fare riferimento a quel file. Per istruzioni dettagliate, vai alla [sezione Configurazione dell'interfaccia a riga di AWS comando nella Guida](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) per l' AWS Command Line Interface utente.

1. Esegui un comando di test per confermare che l' AWS CLI interfaccia funziona. Ad esempio, il comando seguente deve visualizzare informazioni della Guida relative all' AWS CLI:

   ```
   aws help
   ```

   Il comando seguente deve visualizzare informazioni della Guida relative ad Amazon Redshift:

   ```
   aws redshift help
   ```

Per il materiale di riferimento sui comandi della CLI di Amazon Redshift, consultare [Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html) in Riferimenti di AWS CLI .