Extensión de AWS Lambda

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Versión: 2.0.1

Ejecutar funciones implementadas en AWS Lambda Usa esta extensión para enumerar las funciones disponibles en tu cuenta de AWS y, luego, invocar funciones específicas.

Requisitos previos

Antes de usar la extensión desde un proxy de API con la política ExtensionCallout, debes hacer lo siguiente:

Acerca de AWS Lambda

AWS Lambda proporciona entornos de procesamiento en los que puedes ejecutar funciones en uno de los lenguajes admitidos.

Acciones

invocar

Invoca una función en AWS Lambda.

Para obtener más detalles sobre los parámetros, consulta la documentación de AWS Lambda Invoke.

Sintaxis

<Action>invoke</Action>
<Input><![CDATA[
{
  "functionName" : "function-on-lambda",
  "invocationType" : "RequestResponse | Event | DryRun",
  "logType" : "None | Tail",
  "qualifier" : "Version-or-alias",
  "payload" : "Escaped-JSON-string"
}
]]>
</Input>
<Output>flow-variable</Output>

Ejemplo

<Action>invoke</Action>
<Input><![CDATA[
{
  "functionName" : "helloWorld",
  "invocationType" : "RequestResponse",
  "logType" : "None",
  "qualifier" : "$LATEST",
  "payload" : "{ \"key\": \"val\" }"
}
]]>
</Input>
<Output>function.response.value</Output>

parámetros de solicitud

Para obtener más detalles sobre los parámetros, consulta la documentación de AWS Lambda Invoke.

Parámetro Descripción Tipo Predeterminado Obligatorio
functionName Es el nombre de la función que se invocará. String. Ninguno Sí.
invocationType Especifica si se debe invocar la función de forma síncrona o asíncrona, o bien si se deben validar los valores de los parámetros. String. Ninguno No.
logType Especifica de forma opcional si se deben devolver los últimos 4 KB de datos de registro. String Ninguno No.
calificador Es la versión del alias de una función de Lambda publicada. String Ninguno No.
carga útil JSON como entrada para la función de Lambda String Ninguno No.

Respuesta

Es un array de funciones que contiene detalles específicos de la versión. A continuación, se muestra un ejemplo:

{
  "StatusCode" : 200,
  "Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}

Propiedades de la respuesta

Propiedad Descripción Tipo Predeterminada
StatusCode Código de estado HTTP. Número entero Ninguno
Carga útil Es un objeto JSON que representa el objeto que devuelve la función. Solo está presente si el tipo de invocación es RequestResponse. En el caso de un error de función, este campo contiene un mensaje de descripción del error. String Ninguno

listFunctions

Enumera las funciones de AWS Lambda disponibles.

Para obtener más detalles sobre los parámetros, consulta la documentación de ListFunctions de AWS Lambda.

Sintaxis

<Action>listFunctions</Action>
<Input><![CDATA[
{
  "masterRegion" : "ALL | [a-z]{2}(-gov)?-[a-z]+-\d{1}",
  "functionVersion" : "ALL",
  "maxItems" : 1 - 10000
}
]]>
</Input>
<Output>flow-variable</Output>

Ejemplo

<Action>listFunctions</Action>
<Input><![CDATA[
{
  "masterRegion" : "ALL",
  "functionVersion" : "ALL",
  "maxItems" : 50
}
]]>
</Input>
<Output>function.list</Output>

parámetros de solicitud

Para obtener más detalles sobre los parámetros, consulta la documentación de ListFunctions de AWS Lambda.

Parámetro Descripción Tipo Predeterminado Obligatorio
masterRegion Región (como us-east-2) cuyas funciones se deben enumerar; ALL para incluir funciones de cualquier región. Si se especifica, también debes especificar functionVersion. String Ninguno No.
functionVersion Especifica ALL para enumerar todas las versiones publicadas. Si no se especifica, solo se devuelve el ARN de la versión más reciente no publicada. String Ninguno No.
maxItems Es la cantidad máxima de funciones que se devolverán en la respuesta. Debe ser mayor que 0. La cantidad máxima absoluta que se puede devolver es 50. Número entero Ninguno No.

Respuesta

Es un objeto JSON que representa un array de funciones que contiene detalles específicos de la versión.

[
  {
    "FunctionName": "helloWorld",
    "FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
    "Runtime": "nodejs",
    "Role": "arn:aws:iam::012345:role/service-role/fakeRole",
    "Handler": "index.handler",
    "Description": "A Hello World lambda function.",
    "Version": "$LATEST"
  },
  {
    "FunctionName": "helloWorld",
    "FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
    "Runtime": "nodejs",
    "Role": "arn:aws:iam::012345:role/service-role/fakeRole",
    "Handler": "index.handler",
    "Description": "A Hello World lambda function.",
    "Version": "1"
  }
]

Propiedades de la respuesta

Propiedad Descripción Tipo Predeterminado
Descripción Es una descripción de la función. String. Ninguno
Handler Es la función que llama Lambda para comenzar a ejecutar la función. String. Ninguno
FunctionArn Es el nombre de recurso de Amazon de la función. String. Ninguno
FunctionName Es el nombre de la función. String. Ninguno
Rol Es el rol de ejecución de la función. String. Ninguno
Entorno de ejecución Es el entorno de ejecución de la función. String. Ninguno
Versión Es la versión de la función. String. Ninguno

Referencia de configuración

Usa la siguiente información cuando configures e implementes esta extensión para usarla en proxies de API. Si deseas conocer los pasos para configurar una extensión con la consola de Apigee, consulta Cómo agregar y configurar una extensión.

Propiedades comunes de la extensión

Las siguientes propiedades están presentes para cada extensión.

Propiedad Descripción Predeterminado Obligatorio
name Nombre que asignas a esta configuración de la extensión. Ninguna
packageName Nombre del paquete de extensiones proporcionado por Apigee Edge. Ninguna
version El número de versión del paquete de extensiones desde el que quieres configurar la extensión. Ninguna
configuration Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones Ninguna

Propiedades de este paquete de extensión

Especifica valores para las siguientes propiedades de configuración específicas de esta extensión.

Propiedad Descripción Predeterminada Obligatorio
Región de AWS Lambda Es el nombre de la región en la que se implementan tus funciones. Por ejemplo: us-east-1. Ninguno Sí.
Credenciales Cuando se ingresa en la consola de Apigee Edge, es un archivo JSON que contiene tu ID de clave de acceso y clave de acceso de Amazon con el siguiente formato:

{
"accessKeyId" : "access-key-ID",
"secretAccessKey" : "secret-access-key"
}

Cuando se envía a través de la API de administración, es un valor codificado en base64 que se genera a partir de ese archivo JSON de clave.
Ninguno Sí.