Uso de variables de etapa para las API de HTTP en API Gateway - Amazon API Gateway

Uso de variables de etapa para las API de HTTP en API Gateway

Las variables de etapa son pares clave-valor que se pueden definir para una etapa de una API HTTP. Actúan como variables de entorno y se pueden usar en la configuración de la API.

Las variables de etapa no están pensadas a fin de ser utilizadas para datos confidenciales, como credenciales. Para transferir información confidencial a las integraciones, utilice un autorizador de AWS Lambda. Puede pasar datos confidenciales a integraciones en la salida del autorizador de Lambda. Para obtener más información, consulte Formato de respuesta del autorizador de Lambda.

Ejemplo: Uso de una variable de etapa para personalizar el punto de conexión de integración HTTP

Por ejemplo, puede definir una variable de etapa y, a continuación, establecer su valor como extremo HTTP para una integración de proxy HTTP. Posteriormente, puede hacer referencia al punto de enlace mediante el nombre de variable de etapa asociada. Al hacer esto, puede usar la misma configuración de API con un punto de enlace diferente en cada etapa. Del mismo modo, puede utilizar variables de etapa para especificar una integración de funciones de AWS Lambda diferente para cada etapa de su API.

Para utilizar una variable de etapa para personalizar el punto de enlace de integración HTTP, primero debe establecer el nombre y el valor de la variable de etapa (por ejemplo, url) con un valor de example.com. A continuación, configure una integración de proxy HTTP. En lugar de escribir la URL del punto de enlace, puede indicar a API Gateway que use el valor de la variable de etapa, http://${stageVariables.url}. Este valor indica a API Gateway que sustituya la variable de etapa ${} en el tiempo de ejecución en función de la etapa de la API.

Puede hacer referencia a variables de etapa de una manera similar para especificar el nombre de una función de Lambda o el ARN de un rol de AWS.

Cuando especifica el nombre de una función de Lambda como un valor de variable de etapa, debe configurar manualmente los permisos en la función de Lambda. Puede usar el siguiente comando de la AWS CLI para hacerlo.

aws lambda add-permission --function-name arn:aws:lambda:XXXXXX:your-lambda-function-name --source-arn arn:aws:execute-api:us-east-1:YOUR_ACCOUNT_ID:api_id/*/HTTP_METHOD/resource --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction