Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejecute localmente API Gateway con AWS SAM
La ejecución local de Amazon API Gateway puede tener diversas ventajas. Por ejemplo, ejecutar API Gateway de forma local le permite probar los API puntos de conexión a nivel local antes de implementarlos AWS en la nube. Si primero realiza las pruebas a nivel local, a menudo puede reducir las pruebas y el desarrollo en la nube, lo que puede ayudar a reducir los costes. Además, la ejecución local facilita la depuración.
Para iniciar una instancia local de API Gateway que pueda utilizar para probar la funcionalidad de HTTP solicitud/respuesta, utilice el sam local start-api
AWS SAM CLI comando. Esta funcionalidad incluye la recarga en caliente para que pueda desarrollar e iterar rápidamente sus características.
nota
La recarga en caliente se produce cuando solo se actualizan los archivos que se han modificado y el estado de la aplicación sigue siendo el mismo. Por el contrario, la recarga en tiempo real se produce cuando se actualiza toda la aplicación y se pierde su estado.
Para obtener instrucciones sobre cómo utilizar el comando sam local start-api
, consulta Introducción a las pruebas con sam local start-api.
De forma predeterminada, AWS SAM utiliza integraciones de AWS Lambda proxy y admite ambos HttpApi
tipos Api
de recursos. Para obtener más información sobre las integraciones de proxy para los tipos de HttpApi
recursos, consulte Cómo trabajar con integraciones de AWS Lambda proxy HTTP APIs en la Guía para desarrolladores de APIGateway. Para obtener más información sobre las integraciones de proxy con los tipos de Api
recursos, consulte Descripción de la integración de proxy Lambda de API Gateway en APIla Guía para desarrolladores de Gateway.
Ejemplo:
$
sam local start-api
AWS SAM busca automáticamente cualquier función de la AWS SAM plantilla que tenga un origen de Api
eventos HttpApi
o un origen de eventos definido. A continuación, monta la función en las HTTP rutas definidas.
En el ejemplo de Api
siguiente, la función Ratings
monta ratings.py:handler()
en /ratings
para las solicitudes GET
.
Ratings: Type: AWS::Serverless::Function Properties: Handler: ratings.handler Runtime: python3.9 Events: Api: Type: Api Properties: Path: /ratings Method: get
Aquí tienes un ejemplo de Api
de respuesta:
// Example of a Proxy Integration response exports.handler = (event, context, callback) => { callback(null, { statusCode: 200, headers: { "x-custom-header" : "my custom header value" }, body: "hello world" }); }
Si modifica el código de la función, ejecuta el comando sam build
para sam local start-api
para detectar los cambios.
Archivo de variables de entorno
Para declarar localmente las variables de entorno que anulan los valores definidos en las plantillas, haga lo siguiente:
-
Cree un JSON archivo que contenga las variables de entorno que desee anular.
-
Usa el argumento
--env-vars
para anular los valores definidos en sus plantillas.
Declaración de variables de entorno
Para declarar variables de entorno que se apliquen globalmente a todos los recursos, especifica un objeto Parameters
como el siguiente:
{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", "STAGE": "dev" } }
Para declarar variables de entorno diferentes para cada recurso, especifica objetos para cada recurso de la siguiente manera:
{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }
Al especificar objetos para cada recurso, puede utilizar los siguientes identificadores, enumerados en orden de mayor a menor prioridad:
logical_id
function_id
function_name
Identificador de ruta completo
Puedes utilizar los dos métodos anteriores para declarar variables de entorno juntos en un único archivo. Al hacerlo, las variables de entorno que haya proporcionado para recursos específicos tienen prioridad sobre las variables de entorno globales.
Guarde las variables de entorno en un JSON archivo, comoenv.json
.
Anulación de valores de variables de entorno
Para anular las variables de entorno por las definidas en el JSON archivo, utilice el --env-vars
argumento con los start-api comandos invoke o. Por ejemplo:
$
sam local start-api --env-vars env.json
Capas
Si tu aplicación incluye capas, para obtener información sobre cómo depurar los problemas con las capas de su host local, consulta Aumenta la eficiencia con las capas Lambda con AWS SAM.