

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

# Consumatore di API: associazione dell'endpoint VPC a un nome di dominio personalizzato privato condiviso
<a name="apigateway-private-custom-domains-consumer-create"></a>

La procedura seguente mostra come utilizzare un nome di dominio privato in un altro Account AWS. A seconda del rapporto di fiducia che intrattenete con il provider di API, AWS RAM potreste completare alcune attività al posto vostro.

Quando ti trovi in un nome di dominio personalizzato diverso Account AWS da quello privato, puoi solo associare il tuo endpoint VPC a un nome di dominio personalizzato privato e richiamarlo. Non puoi visualizzare la `policy` o qualsiasi altro parametro del nome di dominio personalizzato privato.

## Prerequisiti
<a name="apigateway-private-custom-domains-consumer-prerequisites"></a>

I seguenti prerequisiti sono necessari per utilizzare un nome di dominio personalizzato privato in un altro: Account AWS
+ Un VPC e un endpoint VPC per il servizio `execute-api`. Per il VPC, è necessario che `enableDnsHostnames` e `enableDnsSupport` siano impostati su `true`.
+ È consigliabile configurare almeno due zone di disponibilità per endpoint VPC.

## (Facoltativo) Accettare la condivisione di risorse del dominio personalizzato privato
<a name="apigateway-private-custom-domains-consumer-accept-resource-share"></a>

Se il tuo provider di API creava AWS RAM una condivisione di risorse, hai **12 ore** per accettarla. Se fai parte della stessa organizzazione che utilizza AWS Organizations l'API provider, la condivisione viene accettata automaticamente. Se fai parte di un'organizzazione in cui è abilitata la condivisione automatica delle risorse, la risorsa viene condivisa automaticamente con te.

------
#### [ Console di gestione AWS ]

Per utilizzare la Console di gestione AWS, consulta [Accettazione e rifiuto degli inviti alla condivisione di risorse nella Guida](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-invitations.html) per l'*AWS RAM utente*. 

------
#### [ AWS CLI ]

Per trovare tutte le risorse condivise con te, usa il seguente comando: [get-resource-share-invitations](https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html)

```
aws ram get-resource-share-invitations \
    --region us-west-2
```

Utilizza l'ARN di condivisione risorse risultante per accettare l'invito alla condivisione di risorse. Il [accept-resource-share-invitation](https://docs.aws.amazon.com/cli/latest/reference/ram/accept-resource-share-invitation.html)comando seguente accetta la condivisione delle risorse.

```
aws ram accept-resource-share-invitation \
    --resource-share-invitation-arn arn:aws:ram:us-west-2:123456789012:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE \
    --region us-west-2
```

------

## Associazione dell'endpoint VPC a un nome di dominio personalizzato privato condiviso
<a name="apigateway-private-custom-domains-consumer-associate"></a>

Poiché i nomi di dominio personalizzati privati non sono univoci, devi associare il tuo endpoint VPC all'ARN del nome di dominio personalizzato univoco. Dopo aver creato l'associazione di accesso al nome di dominio, possono essere necessari fino a 15 minuti prima che l'endpoint VPC invochi correttamente il nome di dominio personalizzato privato. Se disponi di un endpoint VPC che utilizzi per accedere a un nome di dominio personalizzato pubblico, non utilizzarlo per creare associazioni di accesso a nomi di dominio. 

------
#### [ Console di gestione AWS ]

**Per associare l'endpoint VPC a un nome di dominio personalizzato privato condiviso**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Nel pannello di navigazione principale, scegli **Associazioni di accesso ai nomi di dominio**.

1. Scegli **Crea associazione di accesso al nome di dominio**.

1. Per **ARN del nome di dominio**, seleziona l'ARN del nome di dominio che il provider di API ha condiviso con te.

   L'ARN del nome di dominio potrebbe non essere visualizzato nell'elenco a discesa. Puoi utilizzare la AWS RAM console per visualizzare i nomi di dominio condivisi con te, quindi copiare l'ARN del nome di dominio e inserirlo in questo campo.

1. Per **ID endpoint VPC**, seleziona l'ID endpoint VPC con cui desideri creare l'associazione di accesso al nome di dominio.

1. Scegli **Crea associazione di accesso al nome di dominio**.

------
#### [ AWS CLI ]

Poiché i nomi di dominio personalizzati privati non sono univoci, devi associare il tuo endpoint VPC all'ARN del nome di dominio personalizzato univoco. Per trovare l'ARN del nome di dominio, utilizza uno dei comandi seguenti.

1.   
**AWS RAM**  
Il seguente comando [list-resources](https://docs.aws.amazon.com/cli/latest/reference/ram/list-resources.html) elenca le risorse condivise con te. Il provider dell'API deve aver condiviso con te il proprio dominio privato personalizzato per utilizzare questo comando. AWS RAM   

   ```
   aws ram list-resources \
       --resource-owner OTHER-ACCOUNTS \
       --region us-west-2
       --resource-type apigateway:Domainnames
   ```  
**Gateway API**  
Il `get-domain-names` comando seguente elenca tutti i nomi di dominio personalizzati privati di proprietà di altri con Account AWS cui è possibile creare associazioni di accesso ai nomi di dominio.  

   ```
   aws apigateway get-domain-names \
       --resource-owner OTHER_ACCOUNTS \
       --region us-west-2
   ```

1.  Dopo aver recuperato l'ARN, utilizza Gateway API per creare l'associazione di accesso al nome di dominio tra l'endpoint VPC e un nome di dominio personalizzato privato condiviso. Utilizza il seguente comando `create-domain-name-access-association`:

   ```
   aws apigateway create-domain-name-access-association \
       --access-association-source-type VPCE \
       --access-association-source 'vpce-1a2b3c4d5e6f1a2b3' \
       --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
   ```

   L'output sarà simile al seguente.

   ```
   {
       "domainNameAccessAssociationARN": "arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg", 
       "accessAssociationSource": "vpce-1a2b3c4d5e6f1a2b3",
       "accessAssociationSourceType": "VPCE",
       "domainNameARN" : "arn:aws:apigateway:us-west-1:111122223333:/domainnames/private.example.com+a1b2c3"
   }
   ```

------

Dopo aver associato il tuo endpoint VPC al nome di dominio personalizzato privato, verifica che il tuo provider di API abbia aggiornato la policy del proprio nome di dominio personalizzato privato per consentire al tuo endpoint VPC di invocare il suo nome di dominio. Per ulteriori informazioni, consulta [Consentire ad altri account di invocare il nome di dominio personalizzato privato](apigateway-private-custom-domains-provider-share.md#apigateway-private-custom-domains-provider-policy-update).

## Creazione di una zona ospitata Route 53
<a name="apigateway-private-custom-domains-consumer-create-route-53-private-hosted-zone"></a>

Per risolvere il nome di dominio personalizzato privato, devi creare una zona ospitata privata Route 53. Una zona ospitata è un contenitore che contiene informazioni su come si desidera indirizzare il traffico per un dominio all'interno di uno o più domini VPCs senza esporre le proprie risorse a Internet. Per ulteriori informazioni, consulta [Utilizzo delle zone ospitate private](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html).

------
#### [ Console di gestione AWS ]

Per utilizzare la Console di gestione AWS, consulta [Creazione di una zona ospitata privata](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) nella *Amazon Route 53 Developer Guide*.

Per **Nome**, usa il nome di dominio personalizzato privato. Per **ID VPC**, usa il VPC contenente l'endpoint VPC che hai usato per l'associazione di accesso al nome di dominio.

------
#### [ AWS CLI ]

Il [create-hosted-zone](https://docs.aws.amazon.com/cli/latest/reference/route53/create-hosted-zone.html)comando seguente crea una zona ospitata privata:

```
aws route53 create-hosted-zone --name private.example.com \
    --caller-reference 2014-04-01-18:47 \
    --hosted-zone-config Comment="command-line version",PrivateZone=true \
    --vpc VPCRegion=us-west-2,VPCId=vpc-abcd1234
```

L'output contiene l'ID della zona ospitata. L'ID della zona ospitata viene utilizzato nei passaggi seguenti.

------

## Creazione di un record DNS di Route 53
<a name="apigateway-private-custom-domains-consumer-create-route-53-record"></a>

Dopo aver creato la zona ospitata, devi creare un record per risolvere il dominio personalizzato privato. In questo esempio viene creato un tipo di record A. Se lo utilizzi IPv6 per il tuo endpoint VPC, crea un tipo di record AAAA. Se utilizzi dualstack per il tuo endpoint VPC, crea un tipo di record sia AAAA che A.

------
#### [ Console di gestione AWS ]

Per utilizzare il Console di gestione AWS, consulta [Routing del traffico verso un'API Amazon API Gateway utilizzando il tuo nome di dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html).

Usa **Creazione rapida** e attiva **Alias**. Per l'endpoint, utilizza il nome DNS dell'endpoint VPC.

------
#### [ AWS CLI ]

Per configurare i record DNS in modo da mappare il nome di dominio personalizzato privato al relativo nome host dell'ID della zona ospitata, devi prima creare un file JSON contenente la configurazione per configurare un record DNS per il nome di dominio privato.

Il seguente `setup-dns-record.json` mostra come creare un record `A` DNS per mappare un nome di dominio personalizzato privato al relativo nome host privato. Fornisci il `DNSName` del tuo ID DNS VPC e l'ID della zona ospitata che hai creato nel passaggio precedente.

```
{
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "private.example.com",
        "Type": "A",
        "AliasTarget": {
          "DNSName": "vpce-abcd1234.execute-api.us-west-2.vpce.amazonaws.com",
          "HostedZoneId": "Z2OJLYMUO9EFXC",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}
```

Il [change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html)comando seguente crea un record DNS per il nome di dominio privato personalizzato:

```
aws route53 change-resource-record-sets \
    --hosted-zone-id ZABCDEFG1234 \
    --change-batch file://path/to/your/setup-dns-record.json
```

Sostituisci `hosted-zone-id` con l'ID della zona ospitata di Route 53 del record DNS impostato nel tuo account. Il valore del parametro `change-batch` punta a un file JSON.

------

## Passaggi successivi per un consumatore di API
<a name="apigateway-private-custom-domains-consumer-next-steps"></a>

Ora puoi invocare l'API privata nel tuo Account AWS. Nel tuo VPC, puoi usare il seguente comando curl per accedere al tuo nome di dominio personalizzato privato.

```
curl https://private.example.com/v1
```

Per ulteriori informazioni su altri modi per invocare la tua API privata, consulta [Invocazione di un'API privata utilizzando un nome di dominio personalizzato](apigateway-private-api-test-invoke-url.md#apigateway-private-custom-domains-provider-invoke).