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)
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 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 Configurare un Network Load Balancer per le integrazioni private di API Gateway (legacy). 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 unVpcLinknell'API. Non sono necessarie autorizzazioni per utilizzare ilVpcLink. Per ulteriori informazioni, consulta Concedi le autorizzazioni per API Gateway per creare un collegamento VPC (legacy).
Per configurare un'API con l'integrazione privata utilizzando AWS CLI
-
Usa il create-vpc-linkcomando seguente per creare un
VpcLinktarget 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/1234567890abcdefL'output di questo comando riconosce la ricezione della richiesta e mostra lo stato
PENDINGper ilVpcLinkin 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
VpcLinkin API Gateway sono necessari da 2 a 4 minuti. Dopo il completamento dell'operazione, il valore distatusèAVAILABLE. È possibile verificarlo utilizzando il seguente comando: get-vpc-linkaws apigateway get-vpc-link --vpc-link-idgim7c3Se l'operazione non riesce, lo stato è
FAILEDestatusMessagecontiene il messaggio di errore. Se, ad esempio, tenti di creare un oggettoVpcLinkcon un sistema Network Load Balancer già associato a un endpoint VPC, la proprietàstatusMessagecontiene 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 laVpcLink.Prendi nota del valore
iddelVpcLinkappena creato. In questo output di esempio, ègim7c3. Questo valore è necessario per configurare l'integrazione privata. -
Utilizzate il seguente create-rest-apicomando per creare una
RestApirisorsa API Gateway:aws apigateway create-rest-api --name 'My VPC Link Test'Prendi nota del valore
iddiRestApie del valorerootResourceIddiRestApinel risultato restituito. Questo valore è necessario per eseguire ulteriori operazioni sull'API.Quindi, crea un’API con solo un metodo
GETnella risorsa root (/) e integra il metodo conVpcLink. -
Utilizza il comando put-method seguente per creare il metodo
GET /:aws apigateway put-method \ --rest-api-idabcdef123\ --resource-idskpp60rab7\ --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 stato200. In questo caso si usa l’integrazione proxy. -
Dopo aver creato il metodo
GET /, viene configurata l'integrazione. Per un'integrazione privata, si utilizza il parametroconnection-idper fornire l'ID delVpcLink. Puoi utilizzare una variabile di fase o inserire direttamente l'ID delVpcLink. Il parametrourinon viene usato per il routing delle richieste all'endpoint, ma viene usato per impostare l'intestazioneHostper la convalida del certificato.In qualsiasi momento, puoi anche aggiornare l'integrazione per modificare il valore
connection-id. Utilizza il comando update-integration seguente per aggiornare l’integrazione:aws apigateway update-integration \ --rest-api-idabcdef123\ --resource-idskpp60rab7\ --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.
-
Se hai utilizzato la variabile di fase per definire il valore
connection-id, devi implementare l'API per testarla. Utilizza il comando create-deployment seguente per implementare l’API con una variabile di fase:aws apigateway create-deployment \ --rest-api-idabcdef123\ --stage-name test \ --variables vpcLinkId=gim7c3Per aggiornare la variabile di fase con un ID del
VpcLinkdiverso, ad esempio, utilizza il comando update-stage seguente:asf9d7aws apigateway update-stage \ --rest-api-idabcdef123\ --stage-name test \ --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7'Quando imposti come hardcoded la proprietà
connection-idcon il valore letterale ID diVpcLink, non è necessario implementare l'API per testarla. Usa il test-invoke-methodcomando per testare l'API prima che venga distribuita. -
Utilizza il seguente comando per invocare l'API:
curl -X GET https://abcdef123.execute-api.us-east-2.amazonaws.com/testIn alternativa, puoi inserire l'URL di invocazione dell'API in un browser web per visualizzare il risultato.