

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

# Esempio: integrazione programmatica di S3 con Amazon Connect Customer Profiles
<a name="customerprofiles-s3-integration"></a>

Utilizzando l'[PutIntegration](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutIntegration.html)API Customer Profiles, puoi creare in modo programmatico integrazioni per S3, Salesforce, Marketo e altro. 

In questo argomento viene mostrato come creare un'integrazione S3 con un intervallo di sincronizzazione di 15 minuti, il valore minimo attualmente supportato. 

## Passaggio 1: Creazione di un file JSON
<a name="step1-cpintegration"></a>

Crea un file JSON con i seguenti contenuti:

```
{
    "DomainName": "{{your-domain}}",
    "ObjectTypeName": "{{your-object-name}}", 
    "FlowDefinition": {
        "FlowName": "{{your-flow-name}}",
        "KmsArn": "{{the key ARN is the same as your domain's key}}",
        "Description": "Created by Customer Profiles",
        "TriggerConfig": {
            "TriggerType": "Scheduled",
            "TriggerProperties": {
                "Scheduled": {
                    "ScheduleExpression": "rate(15minutes)",
                    "DataPullMode": "Incremental",
                    "ScheduleStartTime": {{1634244800.435}},
                    "FirstExecutionFrom": {{1594166400}}
                }
            }
        },
        "SourceFlowConfig": {
            "ConnectorType":"S3",
            "SourceConnectorProperties": {
                "S3": {
                    "BucketName": "{{your-bucket}}",
                    "BucketPrefix": "{{your-prefix}}"
                }
            }
        },
        "Tasks": [
            {"TaskType":"{{Filter}}","SourceFields":["{{colA}}","{{colB}}"],"ConnectorOperator":{"{{S3}}":"{{PROJECTION}}"}},
            {"ConnectorOperator":{"{{S3}}":"{{NO_OP}}"},"DestinationField":"{{colA}}","TaskProperties":{},"SourceFields":["{{colA}}"],"TaskType":"{{Map}}"},
            {"ConnectorOperator":{"{{S3}}":"{{NO_OP}}"},"DestinationField":"{{colB}}","TaskProperties":{},"SourceFields":["{{colB}}"],"TaskType":"{{Map}}"}
        ]
    }
}
```

Per personalizzare il JSON con valori, seguire le linee guida riportate di seguito:
+ `FlowName`: Può essere STRING [a-zA-Z0-9] [\\w\!@\#.-]\+
+ `ScheduleStartTime`: Imposta sull'attuale valore di `DateTime` \+ 5 minuti nell'ora dell'epoca.
+ `FirstExecutionFrom`: Vai su S3, controlla la data del file e usa una data precedente alla data più vecchia.
+ `Tasks`: Definisci `TaskType`. Nel campo `Sourcefields` fornisci TUTTE le colonne presenti nel file CSV in quell'array. Quindi, per ciascuno degli elementi di quell'array, specifica i l`ConnectorOperator`. Questo esempio riguarda un documento CSV con due colonne: `colA` e `colB`.

## Passaggio 2: richiama l'API PutIntegration
<a name="step2-cpintegration"></a>

Dopo aver creato e personalizzato il file JSON con i tuoi valori, chiama l'[PutIntegration](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_PutIntegration.html)API, come mostrato nell'esempio seguente:

```
aws customer-profiles put-integration --cli-input-json file:///{{put_integration_s3_cli.json}} --region {{us-west-2}}                    
```

La risposta da `PutIntegration` restituisce un URI di flusso. Esempio:

```
{
    "DomainName": "testDomain",
    "Uri": "arn:aws:appflow:us-west-2:9999999999999:flow/Customer_Profiles_testDomain_S3_Salesforce-Account_1634244122247",
    "ObjectTypeName": "your objec type",
    "CreatedAt": "2021-10-14T13:51:57.748000-07:00",
    "LastUpdatedAt": "2021-10-14T13:51:57.748000-07:00",
    "Tags": {}
}
```

## Fase 3: Chiama l' AppFlow StartFlow API Amazon
<a name="step3-cpintegration"></a>

Usa l'URI del flusso per chiamare l' AppFlow [StartFlow](https://docs.aws.amazon.com/appflow/1.0/APIReference/API_StartFlow.html)API Amazon. Esempio:

```
aws appflow start-flow —flow-name {{uri}} --region {{us-west-2}}
```