

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

# Configurazione di notifiche in tempo reale per AWS Partner Central ed Marketplace AWS eventi
<a name="set-up-real-time-notifications"></a>

I seguenti argomenti spiegano come configurare EventBridge le notifiche in tempo reale per AWS Partner Central ed Marketplace AWS eventi. Puoi configurare le notifiche in Salesforce configurando un'app connessa oppure puoi utilizzare modelli. AWS CloudFormation 

**Topics**
+ [Configurazione di un'app connessa a Salesforce](#configuring-salesforce-connected-app)
+ [Utilizzo di uno AWS CloudFormation stack per configurare le notifiche](#configuring-aws-components)

## Configurazione di un'app connessa a Salesforce
<a name="configuring-salesforce-connected-app"></a>

I passaggi seguenti spiegano come configurare un'app connessa in Salesforce. È necessario creare un'app connessa per utilizzare l' OAuth autenticazione per le connessioni di destinazione. Per ulteriori informazioni, fare riferimento a[Creazione manuale dei componenti di notifica](#manual-creation-of-aws-components), più avanti in questa guida.

1. Accedi alla tua organizzazione Salesforce come amministratore di sistema.

1. Da **Configurazione**, nella casella **Ricerca rapida**, inserisci**apps**, quindi seleziona **App** Manager. 

1. Nella pagina **Lightning Experience App Manager**, scegli **Nuova app connessa**, scegli **Crea un'app connessa**, quindi scegli **Continua**.

   Viene visualizzata la pagina **Nuova app connessa**.

1. Esegui questa operazione:

   1. Nella casella **Nome app connessa**, inserisci un nome per l'app. 

   1. Nella casella **Email di contatto**, inserisci il tuo indirizzo e-mail.

   1. (Facoltativo) Completa i campi rimanenti come descritto in [Configurazione delle impostazioni di base delle app connesse](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_basics.htm), nella documentazione di Salesforce. 

1. Seleziona la casella di controllo **Abilita OAuth impostazioni**, quindi procedi come segue: 

   1. Seleziona la casella di controllo **Abilita per Device Flow**. Puoi ignorare l'URL di callback risultante.

   1. In ** OAuth Ambiti disponibili**, seleziona **Gestisci i dati utente tramite APIs** e utilizza il pulsante **Aggiungi** per spostare l'ambito nell'elenco degli ambiti selezionati. 

   1. Seleziona le seguenti caselle di controllo:
      + **Richiedi l'estensione Proof Key for Code Exchange (PKCE) per i flussi di autorizzazione supportati**
      + **Richiedi Secret for Web Server Flow**
      + **Richiedi segreto per Refresh Token Flow**
      + **Abilita il flusso delle credenziali del client**

   1. **Nel messaggio che appare dopo aver selezionato **Enable Client Credentials Flow**, scegli OK.**

   1. Scorri fino in fondo alla pagina e scegli **Save** (Salva).

1. Scegli **Continua**, quindi scegli **Gestisci i dettagli del consumatore**.

   Viene visualizzata la pagina **Verifica la tua identità** e il sistema invia un codice di verifica al tuo indirizzo email di contatto.

1.  Inserisci il codice di verifica nella casella **Codice di verifica** e scegli **Verifica**.

   Viene visualizzata la pagina dell'app connessa.

1. In **Consumer Details**, scegli i pulsanti **Copia** per la chiave consumer e il segreto del cliente.

1. Da **Configurazione**, nella casella **Ricerca rapida**, inserisci **App**, seleziona **Gestisci app connesse**, quindi scegli l'app connessa che hai appena creato. 

1. Scegli **Modifica politiche**, quindi procedi come segue: 

   1. Dall'elenco **Utenti consentiti**, seleziona **Tutti gli utenti possono autorizzarsi autonomamente**.

   1. Dall'elenco **IP Relaxation**, scegli **Applica restrizioni IP**.

   1. Dall'elenco **RunAs**, selezionate l'utente di *esecuzione, l'utente* a cui assegnate il flusso di credenziali del client. Salesforce richiede all'utente di esecuzione di restituire i token di accesso per conto dell'utente.

   1. Scegli **Save** (Salva).

## Utilizzo di uno AWS CloudFormation stack per configurare le notifiche
<a name="configuring-aws-components"></a>

Negli argomenti seguenti viene illustrato come utilizzare AWS CloudFormation i modelli per configurare EventBridge le notifiche in tempo reale. I passaggi si applicano solo alla versione 3.0 e successive del connettore AWS Partner CRM. 

Per la versione 3.0 e successive del connettore AWS Partner CRM, puoi utilizzare un CloudFormation modello per configurare i AWS componenti per Amazon EventBridge Integration oppure puoi creare i componenti manualmente. Per utilizzarli CloudFormation, scarica i modelli da:

**Topics**
+ [Individuazione dell'URL del dominio](#find-domain-url)
+ [Usare lo stack CloudFormation](#downloading-templates)
+ [Creazione manuale dei componenti di notifica](#manual-creation-of-aws-components)
+ [Regole di esempio](#example-rules)

### Individuazione dell'URL del dominio
<a name="find-domain-url"></a>

Il CloudFormation modello utilizza l'URL del dominio come uno dei parametri obbligatori.

**Per trovare l'URL**

1. Accedi a Salesforce.

1. Nella sezione **Configurazione**, nella casella **Ricerca rapida**, inserisci. **my domain**

1. Nel riquadro di sinistra, in **Impostazioni aziendali**, scegli il link Il **mio dominio**.

1. Copia l'indirizzo nella casella **URL del mio dominio corrente**.

**Nota**  
È necessario utilizzare il prefisso https://quando si immette l'URL nel CloudFormation modello.

### Usare lo stack CloudFormation
<a name="downloading-templates"></a>

I passaggi descritti nei seguenti argomenti spiegano come creare e distribuire uno CloudFormation stack che configura notifiche in tempo reale.

1. Scarica i seguenti modelli:
**Nota**  
Ogni modello viene distribuito separatamente e si seguono gli stessi passaggi per entrambi.
   + Integrazione con l'API Partner Central: [https://servicecatalogconnector.s3.amazonaws.com/APIDestination](https://servicecatalogconnector.s3.amazonaws.com/APIDestinationCFT_PCAPI.json)CFT\$1PCAPI.json
   + [(Opzionale) integrazione:/CFT\$1 .json Marketplace AWS https://servicecatalogconnector.s3.amazonaws.com APIDestination AWSMP](https://servicecatalogconnector.s3.amazonaws.com/APIDestinationCFT_AWSMP.json)

1. **Nella AWS Console, accedi al tuo Account Marketplace AWS venditore e assicurati che funzioni nella Virginia settentrionale.** EventBridge opera solo in quella regione.

1. Sempre nella console, cerca**cloudformation**, quindi apri la CloudFormation console.

1. Nella pagina **Pile**, scegli **Crea pila**.

1. Seleziona i pulsanti di opzione **Scegli un modello esistente** e **Carica un file modello**.

1. Seleziona **Scegli file** per aprire il modello scaricato, quindi scegli **Avanti**.

1. Nella pagina **Specificare i dettagli dello stack**, inserisci quanto segue:
   + **Nome dello stack**: inserisci un nome per lo stack.
   + **ID cliente**: inserisci la chiave utente che hai annotato durante la creazione dell'app connessa.
   + **Client Secret**: inserisci il segreto del consumatore che hai annotato quando hai creato l'app connessa.
   + **URL del dominio**: utilizza il seguente formato: **https://*domain\$1URL*.**

   Al termine, scegli **Apply** (Applica).

1. **Nella pagina **Configura le opzioni dello stack**, scorri fino alla fine, seleziona la casella di controllo **Riconosco che AWS CloudFormation potrebbe creare risorse IAM**, quindi scegli Avanti.**

1. Seleziona **Invia**.

Una volta implementati correttamente, i modelli creano le API Destination, Connection, Event Rules e Dead Letter Queue.

### Creazione manuale dei componenti di notifica
<a name="manual-creation-of-aws-components"></a>

I passaggi seguenti spiegano come creare manualmente i componenti per EventBridge le notifiche.

**Topics**
+ [Crea una destinazione e una connessione EventBridge API Amazon](#manual-destination-connection)
+ [Creazione di una EventBridge regola e connessione alla destinazione dell'API](#create-connect-ev-rule)
+ [Creazione di eventi relativi ai set di modifiche](#change-set-events)
+ [Creazione di eventi relativi all'offerta rilasciata](#offer-released-events)
+ [Creazione di eventi di opportunità](#opportunity-events)
+ [Tipi di eventi](#types-of-events)
+ [Esempio di evento](#example-event)

#### Crea una destinazione e una connessione EventBridge API Amazon
<a name="manual-destination-connection"></a>

Per creare una destinazione API e una connessione in EventBridge, crea una destinazione API che utilizzi una nuova connessione. In questo caso, la destinazione dell'API è una chiamata API REST a Salesforce per ripubblicare un evento. La connessione contiene le informazioni di autenticazione per la chiamata API. La connessione accetta diversi metodi di autorizzazione.

**Prerequisiti**  
Per utilizzare l' OAuth autorizzazione per la connessione di destinazione dell'API, crea un'app connessa in Salesforce. Per farlo, segui i passaggi in [Configurare un'app connessa per il flusso di credenziali del client OAuth 2.0](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm), nella documentazione di Salesforce. Utilizzi la chiave consumer e il segreto dell'app connessa per la connessione di destinazione dell'API.

Per creare una destinazione API nella EventBridge console: 
+ Segui la procedura descritta in [Creare una destinazione API](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html#eb-api-destination-create) nella *Amazon EventBridge User Guide*.
+ Configura le configurazioni specifiche di Salesforce.

In Salesforce, nella pagina Il **mio dominio**, in **Configurazione**, annota il nome di dominio della tua organizzazione. Lo usi per configurare la destinazione e la connessione dell'API nella EventBridge console. Di seguito è riportata la procedura.

**Per creare la destinazione e la connessione**

1. Apri la EventBridge console all'indirizzo e [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/), nel riquadro di navigazione a sinistra, scegli **Destinazioni API**.

1. Scorri verso il basso fino alla tabella delle **destinazioni API** e scegli **Crea destinazione API**.

   Viene visualizzata la pagina **Crea destinazione API**.

1. Immetti le seguenti informazioni:

   1. Un **nome** per la destinazione dell'API. È possibile utilizzare fino a 64 lettere maiuscole o minuscole, numeri, punti (.), trattini (-) o caratteri di sottolineatura (\$1).

      Il nome deve essere univoco per l'account nella Regione corrente.

   1. **(Facoltativo) Inserisci una descrizione della destinazione dell'API.**

   1. Per l'**endpoint di destinazione dell'API**, usa questo URL:**https://*my-salesforce-domain-name*.my.salesforce.com/services/data/v58.0/sobjects/*event-api-name***.

   1. Per **Metodo HTTP** seleziona **POST**.

1. In **Configurazione della connessione**, seleziona **Crea una nuova connessione**, quindi procedi come segue:

   1. Inserisci un nome e una descrizione opzionale.

   1. Per **Tipo di destinazione**, scegli **Altro**.

   1. Scegli **Credenziali OAuth client**.

   1. Per **l'endpoint di autorizzazione, accetta l'endpoint** precompilato.

      - OPPURE -

      se utilizzi un'organizzazione di produzione, sostituisci l'endpoint popolato con questo URL:

      **https://*my-salesforce-domain-name*.my.salesforce.com/services/oauth2/token**

   1. Per **Metodo HTTP** seleziona **POST**.

   1. Per **Client ID**, inserisci la chiave consumer dall'app connessa in Salesforce.

   1. Per **Client secret**, inserisci il segreto del consumatore dall'app connessa in Salesforce.

   1. Aggiungi i seguenti valori: OAuth 
      + **Parametro**: campo corporeo
      + **Chiave**: grant\$1type
      + **Valore: client\$1credentials**

1. Scegli **Create** (Crea).

**Nota**  
Se la tua organizzazione Salesforce utilizza l'autenticazione a più fattori per l'accesso alle API, gli utenti devono completare una seconda sfida di autenticazione per accedere a Salesforce. APIs Per ulteriori informazioni, consulta [Impostare i requisiti di accesso all'autenticazione a più fattori per l'accesso all'API nella documentazione](https://help.salesforce.com/s/articleView?id=sf.security_require_2fa_api.htm&language=en_US&type=5) di Salesforce.

Dopo aver creato la destinazione dell'API, puoi creare una regola che utilizza la destinazione come destinazione.

#### Creazione di una EventBridge regola e connessione alla destinazione dell'API
<a name="create-connect-ev-rule"></a>

EventBridge le regole instradano gli eventi dal bus degli eventi alla destinazione dell'API, il che comporta l'esecuzione di una chiamata REST per pubblicare un evento su Salesforce.

Per ulteriori informazioni sulle EventBridge regole, consulta la sezione [Creazione di EventBridge regole Amazon che reagiscono agli eventi](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html) nella *Amazon EventBridge User Guide*.

#### Creazione di eventi relativi ai set di modifiche
<a name="change-set-events"></a>

I passaggi seguenti spiegano come creare eventi del set di modifiche.

1.  In [Amazon EventBridge](https://docs.aws.amazon.com/marketplace/latest/userguide/seller-eventbridge.html#events-changesets), scegli **Regole**. 

1.  Dall'elenco, seleziona il bus dell'evento desiderato. 

1.  Nella sezione **Rules (Regole)**, scegli **Create rule (Crea regola)**. 

1.  Inserisci un nome per la regola, quindi scegli **Avanti**. 

1. In **Schema di eventi**, seleziona **Modelli personalizzati (editor JSON)** e inserisci il seguente filtro. Puoi utilizzare qualsiasi combinazione di tipi di dettaglio.

   ```
   {
     "source": [
       "aws.marketplacecatalog"
     ],
     "detail-type": [
       "Change Set Succeeded",
       "Change Set Failed",
       "Change Set Cancelled"
     ]
   }
   ```

    Per ulteriori informazioni sulla corrispondenza dei modelli di eventi, consulta [Filtraggio dei contenuti nei modelli di EventBridge eventi di Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html) nella AWS documentazione. 

1.  Scegli **Next (Successivo)**. 

1.  In **Seleziona obiettivi**, in **Target 1**, seleziona la **destinazione EventBridge dell'API**. 

1.  Dall'elenco, seleziona la destinazione API che hai appena creato. 

1.  Espandere **Additional settings** (Impostazioni aggiuntive). 

1.  In **Configura Target Input**, seleziona **Input Transformer** e **Configura Input Transformer**. Ciò garantisce che vengano inviati solo i campi degli eventi Salesforce della sezione dei dettagli dell'evento originale. 

    Il percorso di input deve essere:  

   ```
   {
     "Name": "$.detail-type",
     "awsapn__Account_Number__c": "$.account",
     "awsapn__EntityId__c": "$.detail.ChangeSetId"
   }
   ```

    Il modello deve essere:  

   ```
   {
     "Name": Name,
     "awsapn__Account_Number__c": awsapn__Account_Number__c,
     "awsapn__EntityId__c": awsapn__EntityId__c
   }
   ```

1.  Scegli **Avanti**, quindi **Avanti**. 

1. Controlla la regola, quindi scegli **Crea regola**.

**Nota**  
Per risolvere i problemi di una destinazione API, puoi utilizzare la console Amazon SQS per aggiungere una coda di lettere morte alla destinazione. La coda riceve i messaggi che non è stato possibile recapitare, più gli errori. Dalla console Amazon SQS, puoi controllare i messaggi in coda per individuare eventuali errori. *Per ulteriori informazioni, consulta [Usare le code di lettere non recapitate per elaborare eventi non recapitati in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html) e [Ricezione ed eliminazione di un messaggio in Amazon SQS nella Amazon SQS User Guide](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-receive-delete-message.html).* 

#### Creazione di eventi relativi all'offerta rilasciata
<a name="offer-released-events"></a>

I passaggi seguenti spiegano come creare eventi Offer Released.

1.  Nella EventBridge console [Amazon](https://docs.aws.amazon.com/marketplace/latest/userguide/seller-eventbridge.html#events-changesets), scegli **regole**. 

1.  Seleziona il bus di eventi desiderato dall'elenco. 

1.  Nella sezione **Rules (Regole)**, scegli **Create rule (Crea regola)**. 

1.  Inserisci un nome per la regola, quindi scegli **Avanti**. 

1.  In **Schema di eventi**, seleziona **Modelli personalizzati (editor JSON)**, quindi inserisci il seguente filtro:  

   ```
   {
     "source": [
       "aws.marketplacecatalog"
     ],
     "detail-type": [
       "Offer Released"
     ]
   }
   ```

    Per ulteriori informazioni sulla corrispondenza dei modelli di eventi, consulta [Filtraggio dei contenuti nei modelli di EventBridge eventi Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html) nella Amazon EventBridge User Guide. 

1.  Scegli **Next (Successivo)**. 

1.  In **Seleziona obiettivi**, in **Target 1**, seleziona la **destinazione dell'EventBridge API**, quindi apri l'elenco e seleziona la destinazione API che hai appena creato. 

1.  Espandere **Additional settings** (Impostazioni aggiuntive). 

1.  In **Configure Target Input**, seleziona **Input Transformer** e seleziona **Configura Input** Transformer. Questo passaggio impedisce l'invio a Salesforce dei campi degli eventi Amazon di primo livello. Viene inviata solo la parte contenente i campi degli eventi Salesforce della sezione dei dettagli dell'evento originale. 

    Utilizza il seguente percorso di input:  

   ```
   {
      "Name":"$.detail-type",
      "awsapn__Account_Number__c":"$.account",
      "awsapn__EntityId__c":"$.detail.offer.id",
      "awsapn__Manufacturer_Account_Id__c":"$.detail.manufacturer.accountId",
      "awsapn__Product_Id__c":"$.detail.product.id",
      "awsapn__Seller_Account_Id__c":"$.detail.sellerOfRecord.accountId"
   }
   ```

    Usare il modello seguente:  

   ```
   {
     "Name": Name,
     "awsapn__Account_Number__c": awsapn__Account_Number__c,
     "awsapn__EntityId__c": awsapn__EntityId__c,
     "awsapn__Seller_Account_Id__c": awsapn__Seller_Account_Id__c,
     "awsapn__Manufacturer_Account_Id__c": awsapn__Manufacturer_Account_Id__c,
     "awsapn__Product_Id__c": awsapn__Product_Id__c
   }
   ```

1.  Scegli **Avanti** e poi **Avanti**. 

1.  Controlla la regola, quindi scegli **Crea regola**. 

**Nota**  
 Per facilitare la risoluzione dei problemi di esecuzione della destinazione API, aggiungi una coda di lettere morte di Amazon SQS alla destinazione. La coda riceve i messaggi che non è stato possibile recapitare insieme agli errori. È quindi possibile interrogare i messaggi per visualizzare gli errori. Per ulteriori informazioni, consulta [Event Retry policy e utilizzo delle code dead-letter](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html) e [Ricezione ed eliminazione di messaggi (](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-receive-delete-message.html)console) nella documentazione. AWS 

#### Creazione di eventi di opportunità
<a name="opportunity-events"></a>

 Gli eventi di opportunità forniscono notifiche in tempo reale sui cambiamenti nello stato o nei dettagli delle opportunità 

 È inoltre possibile creare e gestire EventBridge le regole in modo programmatico utilizzando. [AWS SDKs](https://docs.aws.amazon.com/partner-central/latest/selling-api/opportunity-events.html#aws-eventbridge) 

#### Tipi di eventi
<a name="types-of-events"></a>

L'elenco seguente descrive i tipi di eventi generati quando i partner collaborano con le opportunità. I link rimandano alla documentazione dell'API per ogni evento.
+ [Opportunità creata:](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#opportunity-created) — Attivata quando viene creata una nuova opportunità.
+ [Opportunità aggiornata](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#opportunity-updated): attivata quando viene aggiornata un'opportunità. 
+ [Invito al coinvolgimento creato](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#invitation-created): attivato quando viene creata un'opportunità.
+  [Invito al coinvolgimento accettato](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#invitation-accepted): viene attivato quando un partner accetta un invito al AWS coinvolgimento, confermando il proprio interesse a collaborare AWS all'opportunità.
+  [Invito di fidanzamento rifiutato](https://docs.aws.amazon.com/partner-central/latest/selling-api/selling-api-events.html#invitation-rejected): attivato quando un'opportunità viene rifiutata. 

#### Esempio di evento
<a name="example-event"></a>

```
{
    "version": "1",
    "id": ""d1example-0c9c-4655-15bf-c5exampleb08",
    "source": "aws.partnercentral-selling",
    "detail-type": "Opportunity Created",
    "time": ""2023-10-28T13:31:05Z",
    "region": ""us-east-1",
    "account": ""123456789123",
    "detail": { 
        "schemaVersion": "1",
        "catalog": "AWS",
        "opportunity": {
            "identifier": ""O1234567",
            "url": "Partner Central Opportunity Page URL"
        }
    }
}
```

### Regole di esempio
<a name="example-rules"></a>

La tabella seguente elenca alcuni esempi delle EventBridge regole che è possibile utilizzare con gli eventi elencati nella sezione precedente. Le regole instradano gli eventi dal bus degli eventi alla destinazione dell'API, il che comporta l'esecuzione di una chiamata REST per pubblicare un evento su Salesforce.


| Tipo di evento | Esempio | 
| --- | --- | 
| **Opportunità creata** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Opportunity Created"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre>  | 
| **Opportunità aggiornata** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Opportunity Updated"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre> | 
| **Invito di fidanzamento creato** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Engagement Invitation Created"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre>  | 
| **Invito di fidanzamento accettato** |  <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Engagement Invitation Accepted"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre>  | 
| **Invito di fidanzamento rifiutato** | <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail-type": ["Engagement Invitation Rejected"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre> | 
| **Tutti gli eventi** | <pre>{<br />  "source": ["aws.partnercentral-selling"],<br />  "detail": {<br />    "catalog": ["AWS"]<br />  }<br />}</pre> | 