

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

# Connessione a Slack in AWS Glue Studio
<a name="connecting-to-data-slack"></a>

 Slack è un'app per la comunicazione aziendale che consente agli utenti di inviare messaggi e allegati tramite diversi canali pubblici e privati. Se sei un utente Slack, puoi connetterti AWS Glue al tuo account Slack. Quindi, puoi usare Slack come origine dati nei tuoi processi ETL. Esegui questi processi per trasferire dati tra Slack e i AWS servizi o altre applicazioni supportate. 

**Topics**
+ [AWS Glue supporto per Slack](slack-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](slack-configuring-iam-permissions.md)
+ [Configurazione di Slack](slack-configuring.md)
+ [Configurazione delle connessioni Slack](slack-configuring-connections.md)
+ [Lettura da entità di Slack](slack-reading-from-entities.md)
+ [Opzioni di connessione di Slack](slack-connection-options.md)
+ [Limitazioni](slack-limitations.md)
+ [Creazione di un nuovo account Slack e configurazione dell'app client](slack-new-account-creation.md)

# AWS Glue supporto per Slack
<a name="slack-support"></a>

AWS Glue supporta Slack come segue:

**Supportato come origine?**  
Sì. Puoi utilizzare i job AWS Glue ETL per interrogare i dati da Slack.

**Supportato come destinazione?**  
No.

**Versioni dell'API Slack supportate**  
 API Slack v2. 

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
<a name="slack-configuring-iam-permissions"></a>

 Nella seguente policy di esempio sono descritte le autorizzazioni IAM per creare e utilizzare le connessioni. Se si sta creando un nuovo ruolo, creare una policy che contenga quanto segue: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

È anche possibile utilizzare le seguenti policy IAM per autorizzare l'accesso:
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che AWS Glue i vari processi richiedono per l'esecuzione per conto dell'utente. Queste risorse includono AWS Glue Amazon S3 Amazon CloudWatch Logs, IAM e Amazon EC2. Se segui la convenzione di denominazione delle risorse specificata in questa politica, AWS Glue i processi dispongono delle autorizzazioni necessarie. Questa policy è in genere collegata ai ruoli specificati quando si definiscono crawler, processi ed endpoint di sviluppo. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Concede l'accesso completo alle AWS Glue risorse quando un'identità a cui è allegata la policy utilizza la AWS console di gestione. Se si segue la convenzione per la denominazione per le risorse specificate nella policy, gli utenti hanno la piena funzionalità della console. Questa policy è in genere associata agli utenti della AWS Glue console. 

# Configurazione di Slack
<a name="slack-configuring"></a>

Prima di poter AWS Glue utilizzare il trasferimento di dati da o verso Slack, devi soddisfare questi requisiti:

## Requisiti minimi
<a name="slack-configuring-min-requirements"></a>
+  Avere un account Slack. Per ulteriori informazioni, consulta [Creazione di un nuovo account Slack e configurazione dell'app client](slack-new-account-creation.md). 

 Se soddisfi questi requisiti, sei pronto per connetterti AWS Glue al tuo account Slack. 

# Configurazione delle connessioni Slack
<a name="slack-configuring-connections"></a>

 Slack supporta il tipo di `AUTHORIZATION_CODE` concessione per OAuth 2. 

 Questo tipo di concessione è considerato «a tre gambe» in OAuth quanto si basa sul reindirizzamento degli utenti al server di autorizzazione di terze parti per autenticare l'utente. Viene utilizzato durante la creazione di connessioni tramite la console. AWS Glue La AWS Glue Console reindirizzerà l'utente a Slack, dove l'utente deve effettuare il login e consentire AWS Glue le autorizzazioni richieste per accedere alla propria istanza Slack. 

 Gli utenti possono comunque scegliere di creare la propria app connessa in Slack e fornire il proprio ID client e il segreto del client quando creano connessioni tramite la Console. AWS Glue In questo scenario, verranno comunque reindirizzati a Slack per effettuare il login e autorizzare l'accesso AWS Glue alle proprie risorse. 

 Questo tipo di concessione genera un token di aggiornamento e uno di accesso. Il token di accesso scade 1 ora dopo la creazione. È possibile recuperare un nuovo token di accesso utilizzando il token di aggiornamento. 

 [Per ulteriori informazioni sulla creazione di un'app connessa per il OAuth flusso del codice di autorizzazione, consulta l'API Slack.](https://api.slack.com/quickstart) 

Per configurare una connessione Slack:

1.  In AWS Secrets Manager, crea un segreto con i seguenti dettagli. È necessario creare un segreto per la connessione in AWS Glue. 

   1.  Per le app connesse gestite dal cliente: il segreto deve contenere l'app connessa Consumer Secret con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` come chiave. 

1. In AWS Glue Glue Studio, crea una connessione in **Connessioni dati** seguendo i passaggi seguenti: 

   1. In **Tipo di connessione**, selezionare Slack.

   1. Fornire l'ambiente Slack.

   1.  Seleziona il ruolo IAM che AWS Glue può assumere e dispone delle autorizzazioni per le seguenti azioni: 

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

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Seleziona quello `secretName` che desideri utilizzare per questa connessione per AWS Glue inserire i token. 

   1.  Selezionare le opzioni di rete se si desidera utilizzare la propria rete. 

1.  Concedi il permesso di lettura `secretName` al ruolo IAM associato al tuo AWS Glue lavoro. 

# Lettura da entità di Slack
<a name="slack-reading-from-entities"></a>

 **Prerequisiti** 
+  Un oggetto di Slack da cui si desidera leggere. 

 **Entità supportate** 


| Entità | Può essere Filtrato | Supporta Limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta Partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| conversations | Sì  | Sì | No | Sì | Sì | 

 **Esempio** 

```
slack_read = glueContext.create_dynamic_frame.from_options(
    connection_type="slack",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversations/C058W38R5J8"
    }
)
```

 **Dettagli dell'entità e del campo di Slack** 


| Entità | Campo | Tipo di dati | Operatori supportati | 
| --- | --- | --- | --- | 
| conversations | attachments | List | N/A | 
| conversations | bot\$1id | Stringa | N/A | 
| conversations | blocks | List | N/A | 
| conversations | client\$1msg\$1id | Stringa | N/A | 
| conversations | is\$1starred | Booleano | N/A | 
| conversations | last\$1read | Stringa | N/A | 
| conversations | latest\$1reply | Stringa | N/A | 
| conversations | reactions | List | N/A | 
| conversations | replies | List | N/A | 
| conversations | reply\$1count | Numero intero | N/A | 
| conversations | reply\$1users | List | N/A | 
| conversations | reply\$1users\$1count | Numero intero | N/A | 
| conversations | subscribed | Booleano | N/A | 
| conversations | subtype | Stringa | N/A | 
| conversations | testo | Stringa | N/A | 
| conversations | team | Stringa | N/A | 
| conversations | thread\$1ts | Stringa | N/A | 
| conversations | ts | Stringa | EQUAL\$1TO, BETWEEN, LESS\$1THAN, LESS\$1THAN\$1OR\$1EQUAL\$1TO, GREATER\$1THAN, GREATER\$1THAN\$1OR\$1EQUAL\$1TO | 
| conversations | tipo | Stringa | N/A | 
| conversations | user | Stringa | N/A | 
| conversations | inviter | Stringa | N/A | 
| conversations | root | Struct | N/A | 
| conversations | is\$1locked | Booleano | N/A | 
| conversations | files | List | N/A | 
| conversations | stanza | Struct | N/A | 
| conversations | caricamento | Booleano | N/A | 
| conversations | display\$1as\$1bot | Booleano | N/A | 
| conversations | channel | Stringa | N/A | 
| conversations | no\$1notifications | Booleano | N/A | 
| conversations | permalink | Stringa | N/A | 
| conversations | pinned\$1to | List | N/A | 
| conversations | pinned\$1info | Struct | N/A | 
| conversations | edited | Struct | N/A | 
| conversations | app\$1id | Stringa | N/A | 
| conversations | bot\$1profile | Struct | N/A | 
| conversations | metadati | Struct | N/A | 

 **Query di partizionamento** 

 Se si desidera utilizzare la simultaneità in Spark, possono essere fornite opzioni Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND`, `NUM_PARTITIONS` aggiuntive. Con questi parametri, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark. 
+  `PARTITION_FIELD`: il nome del campo da utilizzare per partizionare la query. 
+  `LOWER_BOUND`: un valore limite inferiore inclusivo del campo di partizione scelto. 

   Per la data, accettiamo il formato di data di Spark utilizzato nelle query di Spark SQL. Esempio di valore valido: `"2024-07-01T00:00:00.000Z"`. 
+  `UPPER_BOUND`: un valore limite superiore esclusivo del campo di partizione scelto. 
+  `NUM_PARTITIONS`: numero di partizioni. 

 I dettagli di supporto del campo di partizionamento per entità sono riportati nella tabella di seguito. 


| Nome entità | Campo di partizionamento | Tipo di dati | 
| --- | --- | --- | 
| conversations | ts | Stringa | 

 **Esempio** 

```
slack_read = glueContext.create_dynamic_frame.from_options(
    connection_type="slack",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversations/C058W38R5J8",
        "PARTITION_FIELD": "ts"
        "LOWER_BOUND": "2022-12-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-09-23T15:00:00.000Z"
        "NUM_PARTITIONS": "2"
    }
)
```

# Opzioni di connessione di Slack
<a name="slack-connection-options"></a>

Di seguito sono riportate le opzioni di connessione per Slack:
+  `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome dell'entità supportata. Esempio: `conversations/C058W38R5J8`. 
+  `SELECTED_FIELDS`(List<String>): predefinito: vuoto (SELECT \$1). Utilizzato per la lettura. Campi da selezionare per l'oggetto. 
+  `FILTER_PREDICATE`(String): predefinito, vuoto. Utilizzato per la lettura. Dev'essere in formato Spark SQL. 
+  `QUERY`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Query Spark SQL completa. 
+  `NUM_PARTITIONS`(Integer): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere. 

# Limitazioni
<a name="slack-limitations"></a>

Di seguito sono riportate le limitazioni per il connettore di Slack:
+  Il partizionamento basato sui record non è supportato in quanto il connettore non fornisce alcun mezzo per recuperare il numero totale di record (messaggi) disponibili in una determinata conversazione. 

# Creazione di un nuovo account Slack e configurazione dell'app client
<a name="slack-new-account-creation"></a>

**Creazione di un account Slack**

1. Aprire la [home page di Slack](https://slack.com/intl/en-in/) per creare un account. 

1. Scegliere **ISCRIVITI CON INDIRIZZO E-MAIL**. Immettere l'ID e-mail e scegliere **Continua**.

1. Immettere il codice di 6 caratteri inviato all'indirizzo e-mail, che ti permetterà di un'area di lavoro o di unirsi a un'area di lavoro esistente.

1. Scegliere **Crea un'area di lavoro** per creare una nuova area di lavoro. Sarà necessario rispondere ad alcune domande nell'ambito del processo di configurazione.
   + Nome dell'azienda
   + Nome
   + Per aggiungere colleghi tramite e-mail
   + Su cosa sta lavorando il team? (Questo sarà il nome del canale)

1. Compilare i campi per queste domande e continuare. L'account è ora pronto per l'uso.



**Creazione di un'app per sviluppatori Slack**

1. Accedere all'account Slack e all'area di lavoro.

1. Dal menu dell'area di lavoro, selezionare **Strumenti e impostazioni**, quindi selezionare **Gestisci app**.

1. Dal menu Slack App Directory, selezionare **Crea**.

1. Nella pagina **Le tue app**, selezionare **Crea un'app**.

1. Nella pagina **Crea un'app**, selezionare **Da zero**.

1. Nella finestra di dialogo **Dai un nome all'app e scegli l'area di lavoro** che si apre, aggiungere un nome per l'app e **Scegli un'area di lavoro in cui distribuire l'app**. Poi selezionare **Crea app**.

1. Annotare l'ID cliente e il segreto visualizzati nelle credenziali dell'app

1. Nella barra laterale OAuth & Autorizzazioni, vai su Ambiti e scegli **Aggiungi** un ambito. OAuth Puoi aggiungere il reindirizzamento URLs alla tua app per configurare la generazione automatica del pulsante «Aggiungi a Slack» o per distribuire l'app. Scorri verso l'alto fino alla URLs sezione Reindirizzamento e scegli **Aggiungi nuovo** URL di reindirizzamento e salva. 

1. **Quindi, scorri fino alla sezione OAuth Tokens for Your Workspace e scegli Installa in Workspace.**

1. Nella finestra di dialogo che si apre per informare che l'app creata richiede l'autorizzazione per accedere all'area di lavoro Slack a cui si desidera connetterla, selezionare **Consenti**.

1. Una volta completato con successo, la console mostrerà la schermata OAuth Tokens for Your Workspace.

1. Dalla schermata OAuth Tokens for Your Workspace, copia e salva il OAuth token che utilizzerai per connetterti a AWS Glue

1. Successivamente, si recupera l'ID del team Slack. Dal menu dell'area di lavoro di Slack, selezionare **Strumenti e impostazioni**, quindi selezionare **Gestisci app**. Apparirà l'ID del team nell'URL della pagina che si apre.

1. Per distribuire pubblicamente l'app, è possibile attivarla andando sul pulsante **Gestisci distribuzione** nella barra laterale. Scorrere verso il basso fino alla sezione Condividi l'app con altre aree di lavoro e scegliere **Rimuovi informazioni codificate**. Fornire il consenso e scegliere **Distribuzione pubblica attiva**. 

1. L'app è ora distribuita pubblicamente. Per accedere all'entità APIs, l'app deve essere aggiunta a ogni canale di workspace da cui l'utente desidera accedere.

1. Accedere all'account Slack e aprire l'area di lavoro con il canale a cui deve essere effettuato l'accesso.

1. Nell'area di lavoro, aprire il canale a cui l'app desidera accedere e scegliere il titolo del canale. Selezionare la scheda **Integrazioni** dal pop-up e aggiungere l'app. In questo modo, l'app è integrata con il canale per avere accesso all'API.

   L'ID client OAuth 2.0 deve avere uno o più URLs reindirizzamenti autorizzati. I reindirizzamenti URLs hanno il seguente formato:
**Nota**  
 I reindirizzamenti di Appflow URLs sono soggetti a modifiche, i reindirizzamenti postali URLs per AWS Glue la piattaforma sono disponibili. Client ID e Client Secret provengono dalle impostazioni del tuo ID client OAuth 2.0.     
<a name="slack-redirect-url-detail"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/slack-new-account-creation.html)