

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 ServiceNow
<a name="connecting-to-data-servicenow"></a>

ServiceNow è una piattaforma SaaS basata su cloud per l'automazione dei flussi di lavoro di gestione IT. La ServiceNow piattaforma si integra facilmente con altri strumenti, consentendo agli utenti di gestire progetti, team e interazioni con i clienti utilizzando una varietà di app e plugin. Come ServiceNow utente puoi connetterti AWS Glue al tuo account. ServiceNow Quindi, puoi utilizzarlo ServiceNow come fonte di dati nei tuoi lavori ETL. Esegui questi processi per trasferire dati tra ServiceNow AWS servizi o altre applicazioni supportate.

**Topics**
+ [AWS Glue supporto per ServiceNow](servicenow-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](servicenow-configuring-iam-permissions.md)
+ [Configurazione ServiceNow](servicenow-configuring.md)
+ [Configurazione delle connessioni ServiceNow](servicenow-configuring-connections.md)
+ [Lettura da ServiceNow entità](servicenow-reading-from-entities.md)
+ [ServiceNow opzioni di connessione](servicenow-connection-options.md)
+ [Limitazioni e note per il ServiceNow connettore](servicenow-connector-limitations.md)

# AWS Glue supporto per ServiceNow
<a name="servicenow-support"></a>

AWS Glue supporta ServiceNow quanto segue:

**Supportato come origine?**  
Sì. È possibile utilizzare i job AWS Glue ETL da ServiceNow cui interrogare i dati.

**Supportato come destinazione?**  
No.

**Versioni ServiceNow API supportate**  
Sono supportate le seguenti versioni ServiceNow API:
+   v2

Per il supporto delle entità per le versioni specifiche, consulta Entità supportate per l'origine.

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

La seguente policy di esempio descrive le autorizzazioni AWS IAM richieste per la creazione e l'utilizzo delle 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": "*"
    }
  ]
}
```

------

In alternativa, se non desideri utilizzare il metodo precedente, utilizza le seguenti policy IAM gestite:
+ [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, IAM, CloudWatch Logs e Amazon. EC2 Se segui la convenzione di denominazione delle risorse specificata in questa politica, AWS Glue i processi dispongono delle autorizzazioni richieste. 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 ServiceNow
<a name="servicenow-configuring"></a>

Prima di poter AWS Glue utilizzare il trasferimento di dati da ServiceNow, è necessario soddisfare i seguenti requisiti:

## Requisiti minimi
<a name="servicenow-configuring-min-requirements"></a>

I requisiti minimi sono i seguenti:
+ Hai un ServiceNow account con email e password. Per ulteriori informazioni, consulta [Creare un ServiceNow account](#servicenow-configuring-creating-servicenow-account).
+ Il tuo ServiceNow account è abilitato per l'accesso all'API. Tutti gli utilizzi dell' ServiceNow API sono disponibili senza costi aggiuntivi.

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

## Creare un ServiceNow account
<a name="servicenow-configuring-creating-servicenow-account"></a>

Per creare un ServiceNow account:

1. Andare sulla pagina di registrazione su servicenow.com, inserire i propri dati e fare clic su **Continua**.

1. Quando si riceve un codice di verifica all'indirizzo e-mail registrato, inserire quel codice e scegliere **Verifica**.

1. Configurare l'autenticazione a più fattori o saltare l'operazione.

Il tuo account viene creato e ServiceNow mostra il tuo profilo.

## Creazione di un'istanza per ServiceNow sviluppatori
<a name="servicenow-configuring-creating-servicenow-developer-instance"></a>

Richiedi un'istanza per sviluppatori dopo aver effettuato l'accesso a ServiceNow.

1. Nella [pagina di ServiceNow accesso](https://signon.service-now.com/x_snc_sso_auth.do?pageId=username), inserisci le credenziali del tuo account.

1. Scegli il **programma per ServiceNow sviluppatori**.  
![\[\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/images/servicenow-dev-program.png)

1. Scegliere **Richiedi istanza** in alto a destra.

1. Inserire le responsabilità lavorative. Indicare l'accettazione dei termini di utilizzo e scegliere **Termina configurazione**.

1. Dopo aver creato l'istanza, annotare le credenziali e l'URL dell'istanza.

## Recupero delle credenziali BasicAuth
<a name="servicenow-configuring-basic-auth"></a>

Per recuperare le credenziali per l'autenticazione di base per un account gratuito:

1. Nella [pagina di ServiceNow accesso, inserisci le credenziali](https://signon.service-now.com/x_snc_sso_auth.do?pageId=username) del tuo account.

1. Nella home page scegliere la sezione di modifica del profilo (in alto a destra) e scegliere **Gestisci password dell'istanza**.

1. Recuperare le credenziali di accesso come nome utente, password e URL dell'istanza.

**Nota**  
Se la MFA è abilitata per l'account, aggiungere il token MFA alla fine della password dell'utente nell'autenticazione di base: <username>:<password><MFA Token>

Per ulteriori informazioni, consulta [Creazione di applicazioni](https://docs.servicenow.com/bundle/xanadu-application-development/page/build/custom-application/concept/build-applications.html) nella ServiceNow documentazione.

## Creazione di credenziali OAuth 2.0
<a name="servicenow-configuring-basic-auth"></a>

Per utilizzare OAuth2 2.0 nel ServiceNow connettore, è necessario creare un client in entrata () per generare l'ID client e il segreto del client:

1. Nella [pagina di ServiceNow accesso](https://signon.service-now.com/x_snc_sso_auth.do?pageId=username), inserisci le credenziali del tuo account.

1. Nella home page, scegliere **Avviare compilazione**.

1. Nella pagina App Engine Studio, cercare **Registro delle applicazioni**.

1. Scegliere **Nuovo** in alto a destra.

1. Scegli l'opzione **Crea un endpoint OAuth API per client esterni**.

1. Apporta le modifiche necessarie alla OAuth configurazione e scegli **Aggiorna**.

   Esempio di URL di reindirizzamento: https://us-east-1.console.aws.amazon.com/gluestudio/ oauth

1. Seleziona l'app OAuth client appena creata per recuperare l'ID client e il segreto del cliente.

1. Memorizzare l'ID client e il segreto del client per l'ulteriore elaborazione.

Per configurare OAuth in un account sviluppatore non di produzione:

1. Crea un profilo di autenticazione utilizzando l'argomento [Crea un profilo di autenticazione](https://docs.servicenow.com/bundle/washingtondc-platform-security/page/integrate/authentication/task/create-an-authentication-profile.html) nella ServiceNow documentazione.

1. **Nel Profilo di autenticazione per OAuth, seleziona **Digita** come OAuth e seleziona il client in entrata creato sopra per impostare l'entità. OAuth **

1. Se sono presenti più client, è necessario creare più profili di autenticazione per impostare l' OAuth entità richiesta nel profilo di autenticazione.

1. Se non è configurata, creare una policy di accesso a REST API per consentire l'accesso alla tabella API. Consultare [Creazione di una policy di accesso alla REST API](https://docs.servicenow.com/bundle/washingtondc-platform-security/page/integrate/authentication/task/create-api-access-policy.html).

# Configurazione delle connessioni ServiceNow
<a name="servicenow-configuring-connections"></a>

Il tipo di concessione determina la modalità di AWS Glue comunicazione con ServiceNow cui richiedere l'accesso ai dati. La tua scelta influisce sui requisiti che devi soddisfare prima di creare la connessione. ServiceNow supporta solo il tipo di concessione AUTHORIZATION\$1CODE per la versione 2.0. OAuth 
+ Questo tipo di concessione è considerato «a tre gambe» in OAuth quanto si basa sul reindirizzamento degli utenti a un 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 al ServiceNow punto in cui deve effettuare il login e consentirà AWS Glue alle autorizzazioni richieste di accedere alla propria ServiceNow istanza.
+ Gli utenti possono comunque scegliere di creare la propria app connessa ServiceNow e fornire il proprio ID client e il segreto del client durante la creazione di connessioni tramite la AWS Glue console. In questo scenario, verranno comunque reindirizzati all'accesso e ServiceNow all'autorizzazione ad accedere AWS Glue alle proprie risorse.
+ Questo tipo di concessione genera un token di aggiornamento e un token di accesso. Il token di accesso dura poco tempo e può essere aggiornato automaticamente senza l'interazione dell'utente utilizzando il token di aggiornamento.
+ Per la ServiceNow documentazione pubblica sulla creazione di un'app connessa per il OAuth flusso del codice di autorizzazione, vedi [Configurazione](https://docs.servicenow.com/bundle/vancouver-platform-security/page/administer/security/task/t_SettingUpOAuth.html). OAuth

Per configurare una ServiceNow connessione:

1. In AWS Secrets Manager, crea un segreto con i seguenti dettagli:

   1. Per l'autenticazione di base, il segreto deve contenere l'app connessa Consumer Secret con `USERNAME` e `PASSWORD` come chiave.

   1. Per un tipo di concessione con codice di autorizzazione, il segreto deve contenere l'app connessa Consumer Secret con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` come chiave.

   1. Nota: è necessario creare un segreto per la connessione in AWS Glue.

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

   1. Quando si seleziona un **tipo di connessione**, selezionare ServiceNow.

   1. Fornisci l'INSTANCE\$1URL dell' ServiceNow istanza a cui desideri connetterti.

   1. Seleziona il ruolo AWS 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. Selezionare il **tipo di autenticazione** da utilizzare per questa connessione in AWS Glue.

      1. Autenticazione di base: questo tipo di autenticazione funziona bene per gli scenari di automazione in quanto consente di utilizzare nome utente e password in anticipo con le autorizzazioni di un particolare utente nell'istanza. ServiceNow AWS Glue è in grado di utilizzare il nome utente e la password per l'autenticazione. ServiceNow APIs Inserire i seguenti input solo in caso di autenticazione di base: `Username` e `Password`.

      1. OAuth2: inserisci i seguenti input solo in caso di OAuth2:`ClientId`,,`ClientSecret`,`Authorization URL`. `Authorization Token URL`

   1. Seleziona quello `secretName` che vuoi usare 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 ServiceNow entità
<a name="servicenow-reading-from-entities"></a>

**Prerequisito**

Un oggetto ServiceNow Tables da cui desideri leggere. È necessario il nome dell'oggetto, come pa\$1bucket o incident.

**Esempio**:

```
servicenow_read = glueContext.create_dynamic_frame.from_options(
    connection_type="servicenow",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "pa_buckets",
        "API_VERSION": "v2"
        "instanceUrl": "https://<instance-name>.service-now.com"
    }
)
```

**ServiceNow dettagli dell'entità e del campo**:

Per le seguenti entità, ServiceNow fornisce endpoint per recuperare i metadati in modo dinamico, in modo che il supporto dell'operatore venga acquisito a livello di tipo di dati per ciascuna entità.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/servicenow-reading-from-entities.html)

**Nota**  
Il tipo di dati Struct viene convertito nel tipo di dati String nella risposta del connettore.

**Nota**  
`DML_STATUS`è un attributo aggiuntivo definito dall'utente utilizzato per tenere traccia dei record. CREATED/UPDATED 

## Query di partizionamento
<a name="servicenow-reading-partitioning-queries"></a>

**Partizionamento basato sul campo**:

Puoi fornire le opzioni Spark aggiuntive `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se desideri utilizzare la concorrenza in Spark. Con questi parametri, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/servicenow-reading-from-entities.html)
+ `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 il campo Datetime, accettiamo il formato di timestamp Spark utilizzato nelle query SQL. SPark 

  Esempi di valori validi:

  ```
  "2024-01-30T06:47:51.000Z"
  ```
+ `UPPER_BOUND`: un valore limite superiore **esclusivo** del campo di partizione scelto.
+ `NUM_PARTITIONS`: il numero di partizioni.

La seguente tabella descrive i dettagli del campo di supporto del partizionamento delle entità:

Esempio:

```
servicenow_read = glueContext.create_dynamic_frame.from_options(
    connection_type="servicenow",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "pa_buckets",
        "API_VERSION": "v2",
        "instanceUrl": "https://<instance-name>.service-now.com"
        "PARTITION_FIELD": "sys_created_on"
        "LOWER_BOUND": "2024-01-30T06:47:51.000Z"
        "UPPER_BOUND": "2024-06-30T06:47:51.000Z"
        "NUM_PARTITIONS": "10"
    }
```

**Partizionamento basato su record**:

Puoi fornire l'opzione Spark aggiuntiva `NUM_PARTITIONS` se desideri utilizzare la concorrenza in Spark. Con questo parametro, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.

Nel partizionamento basato sui record, il numero totale di record presenti viene richiesto dall'API e diviso per il numero fornito. ServiceNow `NUM_PARTITIONS` Il numero di record risultante viene quindi recuperato contemporaneamente da ciascuna query secondaria.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

```
servicenow_read = glueContext.create_dynamic_frame.from_options(
    connection_type="servicenow",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "pa_buckets",
        "API_VERSION": "v2",
        "instanceUrl": "https://<instance-name>.service-now.com"
        "NUM_PARTITIONS": "2"
    }
```

# ServiceNow opzioni di connessione
<a name="servicenow-connection-options"></a>

Di seguito sono elencate le opzioni di connessione per ServiceNow:
+ `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome dell'oggetto in ServiceNow.
+ `API_VERSION`(String) - (Obbligatorio) Usato per la lettura. ServiceNow Versione dell'API Rest che desideri utilizzare. Ad esempio: v1, v2, v3, v4.
+ `SELECTED_FIELDS`(Elenco<Stringa>): predefinito: vuoto (SELECT \$1). Utilizzato per la lettura. Colonne da selezionare per l'oggetto.
+ `FILTER_PREDICATE`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Dev'essere in formato Spark SQL.
+ `QUERY`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Query Spark SQL completa.
+ `PARTITION_FIELD`(Stringa): utilizzato per la lettura. Campo da utilizzare per partizionare la query.
+ `LOWER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite inferiore inclusivo del campo di partizione scelto. Ad esempio: 2024-01-30T06:47:51.000Z.
+ `UPPER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite superiore esclusivo del campo di partizione scelto. Ad esempio: 2024-06-30T06:47:51.000Z.
+ `NUM_PARTITIONS`(Numero intero): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere. Ad esempio: 10.
+ `INSTANCE_URL`(String) - (Obbligatorio) Un URL di ServiceNow istanza valido con formato https://<instance-name>.service-now.com.
+ `PAGE_SIZE`(Integer): definisce la dimensione della pagina per la query dei record. La dimensione della pagina predefinita è 1.000. Quando viene specificata una dimensione di pagina, ServiceNow restituisce solo il numero definito di record per chiamata API, anziché l'intero set di dati. Il connettore continuerà a fornire il numero totale di record e gestirà l'impaginazione utilizzando la dimensione della pagina specificata. Se è necessaria una dimensione della pagina più grande, si può scegliere qualsiasi valore fino a 10.000, che è il massimo consentito. Qualsiasi dimensione della pagina specificata superiore a 10.000 verrà ignorata. Al contrario, il sistema utilizzerà la dimensione della pagina massima consentita. È possibile specificare la dimensione della pagina nell'interfaccia utente di AWS Glue Studio UI aggiungendo un'opzione di connessione `PAGE_SIZE` con il valore desiderato. Ad esempio: 5.000.

# Limitazioni e note per il ServiceNow connettore
<a name="servicenow-connector-limitations"></a>

Di seguito sono riportate le limitazioni o le note relative al ServiceNow connettore:
+ Secondo la [documentazione SaaS](https://www.servicenow.com/docs/bundle/washingtondc-application-development/page/build/applications/reference/r_GlobalDefaultFields.html), `sys_created_on`, `sys_updated_on` e `sys_mod_count` sono campi generati dal sistema. Il connettore si affida a APIs SaaS per fornire questi campi nel corpo della risposta.
  + Se SaaS non genera questi campi per nessuna entità, il partizionamento basato su filtri non può essere supportato.
+ Se SaaS APIs non restituisce `sys_created_on` e `sys_updated_on` i campi della risposta `DML_STATUS` non possono essere calcolati.
+ Migliorare le prestazioni e l'efficienza di lettura
  + Il ServiceNow connettore ora ordina automaticamente i record in ordine crescente in base al `sys_id` campo (deve essere presente nei metadati) quando l'utente non ha specificato alcuna clausola ORDER BY. In questo caso, i record verranno impaginati mediante la nuova impaginazione ottimizzata basata su un set di chiavi.
  + Se viene specificata la clausola ORDER BY, la nuova ottimizzazione non verrà utilizzata e i record verranno recuperati utilizzando il metodo esistente (impaginazione Order By definita dall'utente e basata su Offset-Limit).