Extensão do AWS Lambda

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Versão: 1.1.1

Execute funções implantadas no AWS Lambda. Use essa extensão para listar as funções disponíveis na sua conta da AWS e, em seguida, invoque funções específicas.

Pré-requisitos

Antes de usar a extensão de um proxy de API com a política Extension callout, você precisa fazer o seguinte:

Sobre o AWS Lambda

O AWS Lambda oferece ambientes de computação em que é possível executar funções em uma das linguagens compatíveis.

Ações

invocar

Invoca uma função no AWS Lambda.

Para ver mais detalhes sobre parâmetros, consulte a documentação do AWS Lambda Chamar (link em inglês).

Sintaxe

<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>

Exemplo

<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 solicitação

Para ver mais detalhes sobre parâmetros, consulte a documentação do AWS Lambda Chamar (link em inglês).

Parâmetro Descrição Tipo Padrão Obrigatório
functionName Nome da função a ser invocada. String. Nenhum. Sim.
invocationType Especifica se é necessário invocar a função de forma síncrona, assíncrona ou validar valores de parâmetro. String. Nenhum. Não.
logType Também especifica se é necessário retornar os últimos 4 KB de dados de registro. String Nenhum. Não.
qualificador A versão do alias de uma função Lambda publicada. String Nenhum. Não.
payload JSON como entrada para a função Lambda. String Nenhum. Não.

Resposta

Uma matriz de funções que contém detalhes específicos da versão. Veja um exemplo abaixo.

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

Propriedades de resposta

Propriedade Descrição Tipo Padrão
StatusCode Código de status HTTP. Número inteiro Nenhum.
Payload JSON que representa o objeto retornado pela função. Presente apenas se o tipo de invocação for RequestResponse. Para um erro de função, ele contém uma mensagem de descrição de erro. String Nenhum.

listFunctions

Lista as funções do AWS Lambda disponíveis.

Para mais detalhes sobre parâmetros, consulte a documentação de ListFunctions do AWS Lambda.

Sintaxe

<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>

Exemplo

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

Parâmetros de solicitação

Para mais detalhes sobre parâmetros, consulte a documentação de ListFunctions do AWS Lambda.

Parâmetro Descrição Tipo Padrão Obrigatório
masterRegion A região (como us-east-2) cujas funções precisam ser listadas. ALL para incluir funções de qualquer região. Se especificado, também é necessário especificar o functionVersion. String Nenhum. Não.
functionVersion Especifique ALL para listar todas as versões publicadas. Se não for especificado, somente o ARN da versão não publicada mais recente será retornado. String Nenhum. Não.
maxItems O número máximo de funções a serem retornadas em resposta. Precisa ser maior que 0. O máximo absoluto que pode ser retornado é 50. Número inteiro Nenhum. Não.

Resposta

JSON que representa uma matriz de funções que contém detalhes específicos da versão.

[
  {
    "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"
  }
]

Propriedades de resposta

Propriedade Descrição Tipo Padrão
Descrição Uma descrição da função. String. Nenhum.
Handler A função que o Lambda chama para começar a executar a função. String. Nenhum.
FunctionArn O nome do recurso da Amazon da função. String. Nenhum.
FunctionName O nome da função. String. Nenhum.
Papel O papel de execução da função. String. Nenhum.
Ambiente de execução O ambiente de execução da função. String. Nenhum.
Versão A versão da função. String. Nenhum.

Referência de configuração

Use o código a seguir ao configurar e implantar a extensão para uso em proxies de API. Para saber como configurar uma extensão usando o console da Apigee, consulte Como adicionar e configurar uma extensão.

Propriedades de extensão comuns

As propriedades a seguir estão presentes para cada extensão.

Propriedade Descrição Padrão Obrigatório
name Nome que será dado a esta configuração da extensão. Nenhum Sim
packageName Nome do pacote de extensão fornecido pelo Apigee Edge. Nenhum Sim
version Número da versão do pacote de extensão a partir do qual você está configurando uma extensão. Nenhum Sim
configuration Valor de configuração específico da extensão que você está adicionando. Consulte Propriedades para este pacote de extensão. Nenhum Sim

Propriedades deste pacote de extensão

Especifique valores para as propriedades de configuração a seguir específicas desta extensão.

Propriedade Descrição Padrão Obrigatório
Região do AWS Lambda O nome da região em que suas funções são implantadas. Por exemplo, us-east-1. Nenhum. Sim.
Credenciais Quando inserido no console do Apigee Edge, este é um arquivo JSON que contém o ID e a chave de acesso da Amazon no seguinte formato:

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

Quando enviado pela API de gerenciamento, é um valor codificado em base64 gerado desse arquivo JSON de chave.
Nenhum. Sim.