Configura un API Gateway API con integrazioni private utilizzando il AWS CLI - Amazon API Gateway

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:

Per configurare un account API con l'integrazione privata utilizzando AWS CLI
  1. 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 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" }

    APIGateway impiega 2-4 minuti per completare la creazione di. VpcLink Dopo il completamento dell'operazione, il valore di status è 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 e statusMessage contiene il messaggio di errore. Ad esempio, se si tenta di creare un VpcLink 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.

  2. Il create-rest-apicomando seguente crea una RestApirisorsa API Gateway:

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

    Annotate RestApi il id valore e il rootResourceId valore RestApi 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

  3. Configura il metodo GET /. Utilizzate il seguente comando put-method e immettete Id as the rest-api-id e as therootResourceId: resource-id

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

    Se non si utilizza l'integrazione del proxy conVpcLink, è inoltre necessario impostare almeno un metodo di risposta del codice di 200 stato. In questo caso usiamo l'integrazione proxy.

  4. Dopo aver creato il GET / metodo, configurate l'integrazione. Per un'integrazione privata, si utilizza il connection-id parametro per fornire l'VpcLinkID. È possibile utilizzare una variabile di fase o immettere direttamente l'VpcLinkID. 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

    Il seguente comando put-integration utilizza l'VpcLinkID 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

    Il seguente comando put-integration utilizza una variabile stage per fare riferimento all'ID del collegamento. VPC Quando lo distribuisci API su uno stage, imposti l'ID del VPC link.

    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 ilconnection-id. Il seguente comando update-integration mostra come 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 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.

  5. Se hai usato la variabile stage per definire la tuaconnection-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

    Per aggiornare la variabile stage con un VpcLink ID diverso, ad esempioasf9d7, chiama il comando update-stage:

    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'VpcLinkID letterale, non è necessario implementare il vostro per testarla. API Usa il test-invoke-methodcomando per testare il tuo API prima che venga distribuito.

  6. Usa il seguente comando per richiamare il tuo: API

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

    In alternativa, puoi inserire il tuo API invoke- URL in un browser web per visualizzare il risultato.