

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

# Invocazione di un'API privata
<a name="apigateway-private-api-test-invoke-url"></a>

Puoi invocare un'API privata solo dall'interno di un VPC utilizzando un endpoint VPC. La tua API privata deve avere una policy delle risorse che consenta a specifici VPC ed endpoint VPC di invocare l'API.

Se richiami un'API privata senza utilizzare un nome di dominio personalizzato o nomi DNS privati e le API o il nome di dominio utilizzano una politica di sicurezza che inizia con`SecurityPolicy_`, devi impostare la modalità di accesso agli endpoint su. `BASIC` Per ulteriori informazioni, consulta [Modalità di accesso agli endpoint](apigateway-security-policies.md#apigateway-security-policies-endpoint-access-mode).

## Invocazione di un'API privata utilizzando un nome di dominio personalizzato
<a name="apigateway-private-custom-domains-provider-invoke"></a>

Per invocare un'API privata utilizzando un nome di dominio personalizzato, è necessario che l'endpoint VPC disponga di un'associazione di accesso ai nomi di dominio con un nome di dominio personalizzato e il nome di dominio personalizzato deve consentire l'accesso affinché l'endpoint VPC possa invocarla. Per ulteriori informazioni, consulta [Nomi di dominio personalizzati per API private in Gateway API](apigateway-private-custom-domains.md).

Non ci sono differenze tra l'invocazione di un nome di dominio personalizzato privato in un VPC personale o in un altro. Account AWS Account AWS

### Uso del nome di dominio personalizzato
<a name="apigateway-private-custom-domains-invoke-1"></a>

All'interno del tuo VPC, puoi invocare la tua API utilizzando il nome di dominio personalizzato. L'esempio seguente è un comando curl per invocare il tuo nome di dominio personalizzato privato:

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

### Uso di nomi host DNS privati specifici dell'endpoint
<a name="apigateway-private-custom-domains-invoke-2"></a>

È possibile invocare l’API utilizzando il nome di dominio personalizzato come nome host DNS privato specifico dell’endpoint.

```
curl https://{{private-dns-hostname}}.execute-api.{{region}}.vpce.amazonaws.com/{{basepath}} -H 'Host:{{custom-domain-name}}'
```

L’esempio seguente è un comando curl per invocare il nome di dominio personalizzato utilizzando il nome host DNS privato specifico dell’endpoint:

```
curl https://vpce-123456-abc000.execute-api.us-east-2.vpce.amazonaws.com/test -H 'Host:private.example.com'
```

## Invocazione di un'API privata senza utilizzare un nome di dominio personalizzato
<a name="apigateway-private-api-invoke-without-custom-domain-name"></a>

Per invocare la tua API privata senza utilizzare un nome di dominio personalizzato, devi identificare i nomi DNS per l'API. La procedura seguente mostra come trovare i nomi DNS.

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

**Per trovare i nomi DNS**

1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [ https://console.aws.amazon.com/vpc/ ](https://console.aws.amazon.com/vpc/)

1. Nel pannello di navigazione principale, scegli **Endpoint**, quindi seleziona l'endpoint VPC dell'interfaccia per Gateway API.

1. Nel riquadro **Dettagli** verranno visualizzati 5 valori nel campo **Nomi DNS**. I primi tre sono i nomi DNS pubblici per l'API. Gli altri due sono i nomi DNS privati.

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

Usa il seguente comando [describe-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) per elencare i tuoi valori DNS.

```
aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-01234567abcdef012
```

I primi tre sono i nomi DNS pubblici per l'API. Gli altri due sono i nomi DNS privati.

------

### Invocazione di un'API privata utilizzando un alias Route53
<a name="apigateway-private-api-route53-alias"></a>

È possibile associare o dissociare un endpoint VPC da una REST API privata. Per ulteriori informazioni, consulta [(Facoltativo) Associazione o dissociazione di un endpoint VPC da una REST API privata](apigateway-private-api-create.md#associate-private-api-with-vpc-endpoint).

Dopo aver associato gli endpoint VPC alla tua API privata, puoi utilizzare il seguente URL di base per invocare l'API:

```
https://{{{rest-api-id}}}-{{{vpce-id}}}.execute-api.{{{region}}}.amazonaws.com/{{{stage}}}
```

Ad esempio, se hai configurato il metodo `GET /pets` per la fase `test` e se l'ID REST API era `01234567ab`, il tuo ID endpoint VPC era `vpce-01234567abcdef012` e la Regione era `us-west-2`, puoi invocare la tua API come:

```
curl -v https://01234567ab-vpce-01234567abcdef012.execute-api.us-west-2.amazonaws.com/test/pets
```

### Invocazione di un'API privata utilizzando i nomi DNS privati
<a name="w2aac15c20c16c17b9b9"></a>

Se hai abilitato il DNS privato, puoi accedere all'API privata utilizzando i seguenti nomi DNS privati:

```
{{{restapi-id}}}.execute-api.{{{region}}}.amazonaws.com
```

L'URL di richiamata di base dell'API è nel formato seguente:

```
https://{{{restapi-id}}}.execute-api.{{{region}}}.amazonaws.com/{{{stage}}}
```

Ad esempio, se hai configurato il metodo `GET /pets` per la fase `test` e se l'ID REST API era `01234567ab` e la tua Regione era `us-west-2`, puoi invocare la tua API privata inserendo il seguente URL in un browser:

```
https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets
```

In alternativa, puoi utilizzare il seguente comando cURL per invocare l'API privata:

```
curl -X GET https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets 
```

**avvertimento**  
Se abiliti il DNS privato per il tuo endpoint VPC, non sarai in grado di accedere all'endpoint predefinito per le API pubbliche. Per ulteriori informazioni, consulta [Perché non riesco a connettere un endopoint VPC di API Gateway alla mia API pubblica?](https://repost.aws/knowledge-center/api-gateway-vpc-connections).

### Richiama un'API privata utilizzando Direct Connect
<a name="w2aac15c20c16c17b9c11"></a>

Puoi utilizzarla Direct Connect per stabilire una connessione privata dedicata da una rete locale ad Amazon VPC e accedere al tuo endpoint API privato tramite quella connessione utilizzando nomi DNS pubblici.

Puoi anche utilizzare nomi DNS privati per accedere alla tua API privata da una rete locale configurando un endpoint in Amazon Route 53 Resolver ingresso e inoltrando tutte le query DNS del DNS privato dalla tua rete remota. Per ulteriori informazioni, consulta [Inoltro delle query DNS in entrata](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-inbound-queries.html) nella *Guida per sviluppatori di Amazon Route 53*.

### Invocazione di un'API privata tramite nomi host DNS pubblici specifici dell'endpoint
<a name="apigateway-private-api-public-dns"></a>

Puoi accedere all'API privata tramite nomi host DNS specifici dell'endpoint Si tratta di nomi host del DNS pubblico che contengono l'ID dell'endpoint VPC o l'ID dell'API per la tua API privata.

L'URL di base generato è nel formato seguente:

```
https://{{{public-dns-hostname}}}.execute-api.{{{region}}}.vpce.amazonaws.com/{{{stage}}}
```

Ad esempio, se hai configurato il metodo `GET /pets` per la fase `test` e se l'ID REST API era `abc1234`, il nome host DNS pubblico era `vpce-def-01234567` e la Regione era `us-west-2`, puoi invocare l'API privata tramite il relativo ID VPCe utilizzando l'intestazione `Host` in un comando cURL:

```
curl -v https://vpce-def-01234567.execute-api.us-west-2.vpce.amazonaws.com/test/pets -H 'Host: abc1234.execute-api.us-west-2.amazonaws.com'
```

In alternativa, puoi invocare la tua API privata tramite il relativo ID utilizzando l'intestazione `x-apigw-api-id` in un comando cURL con il seguente formato:

```
curl -v https://{{{public-dns-hostname}}}.execute-api.{{{region}}}.vpce.amazonaws.com/{{{stage}}} -H 'x-apigw-api-id:{{{api-id}}}'
```