

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

# Configura un'API API Gateway con integrazioni private utilizzando AWS CLI (legacy)
<a name="set-up-api-with-vpclink-cli"></a>

**Nota**  
La seguente implementazione di integrazioni private utilizza i collegamenti VPC V1. I link VPC V1 sono risorse legacy. Ti consigliamo di utilizzare i [collegamenti VPC V2](apigateway-vpc-links-v2.md) per REST. APIs

Il seguente tutorial mostra come utilizzare per AWS CLI creare un collegamento VPC e un'integrazione privata. Devono essere soddisfatti i seguenti prerequisiti:
+ È necessario creare e configurare un Network Load Balancer con l'origine VPC come destinazione. Per ulteriori informazioni, consulta [Configurazione di un Network Load Balancer per le integrazioni private di API Gateway (legacy)](set-up-nlb-for-vpclink-using-console.md). Deve essere Account AWS uguale alla tua API. È necessario l'ARN del Network Load Balancer per creare il collegamento VPC.
+ Per creare e gestire un `VpcLink`, sono necessarie le autorizzazioni per creare un `VpcLink` nell'API. Non sono necessarie autorizzazioni per utilizzare il `VpcLink`. Per ulteriori informazioni, consulta [Concedi le autorizzazioni per API Gateway per creare un collegamento VPC (legacy)](grant-permissions-to-create-vpclink.md).

**Per configurare un'API con l'integrazione privata utilizzando AWS CLI**

1. Usa il [create-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-vpc-link.html)comando seguente per creare un `VpcLink` target per il Network Load Balancer specificato:

   ```
   aws apigateway create-vpc-link \
       --name my-test-vpc-link \
       --target-arns arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef
   ```

   L'output di questo comando riconosce la ricezione della richiesta e mostra lo stato `PENDING` per il `VpcLink` in fase di creazione.

   ```
   {
       "status": "PENDING", 
       "targetArns": [
           "arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef"
       ], 
       "id": "gim7c3", 
       "name": "my-test-vpc-link"
   }
   ```

   Per la creazione dell'oggetto `VpcLink` in API Gateway sono necessari da 2 a 4 minuti. Dopo il completamento dell'operazione, il valore di `status` è `AVAILABLE`. È possibile verificarlo utilizzando il seguente comando: [get-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-vpc-link.html)

   ```
   aws apigateway get-vpc-link --vpc-link-id gim7c3
   ```

   Se l'operazione non riesce, lo stato è `FAILED` e `statusMessage` contiene il messaggio di errore. Se, ad esempio, tenti di creare un oggetto `VpcLink` con un sistema Network Load Balancer già associato a un endpoint VPC, la proprietà `statusMessage` contiene quanto segue:

   ```
   "NLB is already associated with another VPC Endpoint Service"
   ```

   Dopo la corretta creazione di `VpcLink` è possibile creare un'API e integrarla con la risorsa VPC tramite la `VpcLink`. 

   Prendi nota del valore `id` del `VpcLink` appena creato. In questo output di esempio, è `gim7c3`. Questo valore è necessario per configurare l'integrazione privata.

1. Utilizzate il seguente [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html)comando per creare una [https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html)risorsa API Gateway:

   ```
   aws apigateway create-rest-api --name 'My VPC Link Test'
   ```

   Prendi nota del valore `id` di `RestApi` e del valore `rootResourceId` di `RestApi` nel risultato restituito. Questo valore è necessario per eseguire ulteriori operazioni sull'API. 

   Quindi, crea un’API con solo un metodo `GET` nella risorsa root (`/`) e integra il metodo con `VpcLink`.

1. Utilizza il comando [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) seguente per creare il metodo `GET /`:

   ```
   aws apigateway put-method \
          --rest-api-id  abcdef123 \
          --resource-id skpp60rab7 \
          --http-method GET \
          --authorization-type "NONE"
   ```

   Se non usi l'integrazione proxy con il `VpcLink`, devi configurare anche almeno una risposta del metodo per il codice di stato `200`. In questo caso si usa l’integrazione proxy.

1. Dopo aver creato il metodo `GET /`, viene configurata l'integrazione. Per un'integrazione privata, si utilizza il parametro `connection-id` per fornire l'ID del `VpcLink`. Puoi utilizzare una variabile di fase o inserire direttamente l'ID del `VpcLink`. Il parametro `uri` non viene usato per il routing delle richieste all'endpoint, ma viene usato per impostare l'intestazione `Host` per la convalida del certificato. 

------
#### [ Use the VPC link ID ]

   Utilizza il comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) seguente per usare l’ID del `VpcLink` direttamente nell’integrazione:

   ```
   aws apigateway put-integration \
       --rest-api-id abcdef123 \
       --resource-id skpp60rab7 \
       --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \
       --http-method GET \
       --type HTTP_PROXY \
       --integration-http-method GET \
       --connection-type VPC_LINK \
       --connection-id gim7c3
   ```

------
#### [ Use a stage variable ]

   Utilizza il comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) seguente per usare una variabile di fase per fare riferimento all’ID del collegamento VPC. Quando implementi l'API in una fase, viene impostato l'ID del collegamento VPC.

   ```
   aws apigateway put-integration \
       --rest-api-id abcdef123 \
       --resource-id skpp60rab7 \
       --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \
       --http-method GET \
       --type HTTP_PROXY \
       --integration-http-method GET \
       --connection-type VPC_LINK \
       --connection-id "\${stageVariables.vpcLinkId}"
   ```

   Assicurati di racchiudere tra virgolette doppie l'espressione della variabile di fase (`${stageVariables.vpcLinkId}`) e di aggiungere il carattere di escape davanti a `$`.

------

   In qualsiasi momento, puoi anche aggiornare l'integrazione per modificare il valore `connection-id`. Utilizza il comando [update-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-integration.html) seguente per aggiornare l’integrazione:

   ```
    aws apigateway update-integration \
       --rest-api-id abcdef123 \
       --resource-id skpp60rab7 \
       --http-method GET \
       --patch-operations '[{"op":"replace","path":"/connectionId","value":"${stageVariables.vpcLinkId}"}]'
   ```

   Assicurati di usare un elenco JSON in formato stringa come valore del parametro `patch-operations`.

   Poiché è stata utilizzata l’integrazione proxy privata, l’API è ora pronta per l’implementazione e i test.

1. Se hai utilizzato la variabile di fase per definire il valore `connection-id`, devi implementare l'API per testarla. Utilizza il comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) seguente per implementare l’API con una variabile di fase:

   ```
   aws apigateway create-deployment \
       --rest-api-id abcdef123 \
       --stage-name test \
       --variables vpcLinkId=gim7c3
   ```

   Per aggiornare la variabile di fase con un ID del `VpcLink` diverso, ad esempio `asf9d7`, utilizza il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) seguente:

   ```
   aws apigateway update-stage \
       --rest-api-id abcdef123 \
       --stage-name test \
       --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7'
   ```

   Quando imposti come hardcoded la proprietà `connection-id` con il valore letterale ID di `VpcLink`, non è necessario implementare l'API per testarla. Usa il [test-invoke-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html)comando per testare l'API prima che venga distribuita. 

1. Utilizza il seguente comando per invocare l'API:

   ```
   curl -X GET https://abcdef123.execute-api.us-east-2.amazonaws.com/test
   ```

   In alternativa, puoi inserire l'URL di invocazione dell'API in un browser web per visualizzare il risultato.