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 Gateway API con integrazioni private utilizzando il AWS CLI
Il seguente tutorial mostra come utilizzare AWS CLI per creare un VPC collegamento e un'integrazione privata. Sono richiesti i seguenti prerequisiti:
-
È necessario un Network Load Balancer creato e configurato con l'VPCorigine come destinazione. Per ulteriori informazioni, consulta Configurare un Network Load Balancer per le integrazioni private del API gateway. Deve essere Account AWS uguale al tuoAPI. È necessario il Network Load Balancer ARN per creare il VPC collegamento.
-
Per creare e gestire un
VpcLink
, hai bisogno delle autorizzazioni per creare un fileVpcLink
nel tuo. API Non sono necessarie le autorizzazioni per utilizzare il.VpcLink
Per ulteriori informazioni, consulta Concedi a API Gateway le autorizzazioni per creare un collegamento VPC.
Per configurare un account API con l'integrazione privata utilizzando AWS CLI
-
Il create-vpc-linkcomando seguente crea 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 ilVpcLink
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" }
APIGateway impiega 2-4 minuti per completare la creazione di.
VpcLink
Dopo il completamento dell'operazione, il valore distatus
èAVAILABLE
. È possibile verificarlo chiamando il seguente get-vpc-linkcomando:aws apigateway get-vpc-link --vpc-link-id
gim7c3
Se l'operazione non riesce, lo stato è
FAILED
estatusMessage
contiene il messaggio di errore. Ad esempio, se si tenta di creare unVpcLink
Network Load Balancer già associato a un VPC endpoint, si ottiene quanto segue sulla proprietà:statusMessage
"NLB is already associated with another VPC Endpoint Service"
Una volta creata correttamente,
VpcLink
è possibile crearne una API e integrarla con la VPC risorsa tramite.VpcLink
Nota il
id
valore del nuovo file creatoVpcLink
. In questo output di esempio, ègim7c3
. Questo valore è necessario per configurare l'integrazione privata. -
Il create-rest-apicomando seguente crea una
RestApi
risorsa API Gateway:aws apigateway create-rest-api --name 'My VPC Link Test'
Annotate
RestApi
ilid
valore e ilrootResourceId
valoreRestApi
del risultato restituito. È necessario questo valore per eseguire ulteriori operazioni suAPI.A scopo illustrativo, creeremo un metodo API con solo un
GET
metodo sulla risorsa radice (/
) e integreremo il metodo con.VpcLink
-
Configura il metodo
GET /
. Utilizzate il seguente comando put-method e immetteteId
as therest-api-id
e as therootResourceId
:resource-id
aws apigateway put-method \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --authorization-type "NONE"Se non si utilizza l'integrazione del proxy con
VpcLink
, è inoltre necessario impostare almeno un metodo di risposta del codice di200
stato. In questo caso usiamo l'integrazione proxy. -
Dopo aver creato il
GET /
metodo, configurate l'integrazione. Per un'integrazione privata, si utilizza ilconnection-id
parametro per fornire l'VpcLink
ID. È possibile utilizzare una variabile di fase o immettere direttamente l'VpcLink
ID. Il parametrouri
non viene usato per il routing delle richieste all'endpoint, ma viene usato per impostare l'intestazioneHost
per la convalida del certificato.In qualsiasi momento, puoi anche aggiornare l'integrazione per modificare il
connection-id
. Il seguente comando update-integration mostra come aggiornare l'integrazione:aws apigateway update-integration \ --rest-api-id
abcdef123
\ --resource-idskpp60rab7
\ --http-method GET \ --patch-operations '[{"op":"replace","path":"/connectionId","value":"${stageVariables.vpcLinkId}"}]'Assicurati di utilizzare un JSON elenco di stringhe come valore del parametro.
patch-operations
Poiché abbiamo utilizzato l'integrazione con proxy privato, ora il tuo API è pronto per l'implementazione e per le esecuzioni di test. Con l'integrazione senza proxy, devi anche configurare il metodo di risposta e la risposta di integrazione, proprio come faresti quando configuri e APIcon integrazioni HTTP personalizzate.
-
Se hai usato la variabile stage per definire la tua
connection-id
, devi implementarla per testarlaAPI. Il seguente comando create-deployment mostra come distribuire il tuo API con una variabile stage:aws apigateway create-deployment \ --rest-api-id
abcdef123
\ --stage-name test \ --variables vpcLinkId=gim7c3
aws apigateway update-stage \ --rest-api-id
abcdef123
\ --stage-name test \ --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7
'Quando codificate la
connection-id
proprietà con l'VpcLink
ID letterale, non è necessario implementare il vostro per testarla. API Usa il test-invoke-methodcomando per testare il tuo API prima che venga distribuito. -
Usa il seguente comando per richiamare il tuo: API
curl -X GET https://
abcdef123
.execute-api.us-east-2.amazonaws.com/testIn alternativa, puoi inserire il tuo API invoke- URL in un browser web per visualizzare il risultato.