Rozszerzenie AWS Lambda

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wersja: 1.1.2

Wykonaj funkcje wdrożone w AWS Lambda. Za pomocą tego rozszerzenia możesz wyświetlić listę funkcji dostępnych na koncie AWS, a następnie wywołać określone funkcje.

Wymagania wstępne

Zanim użyjesz rozszerzenia z serwera proxy interfejsu API za pomocą zasady ExtensionCallout, musisz:

Informacje o AWS Lambda

AWS Lambda udostępnia środowiska obliczeniowe, w którym możesz uruchamiać funkcje w jednym z obsługiwanych języków.

Działania

wywołać

Wywołuje funkcję w AWS Lambda.

Więcej informacji o parametrach znajdziesz w dokumentacji AWS Lambda Invoke (w języku angielskim).

Składnia

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

Przykład

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

Parametry żądania

Więcej informacji o parametrach znajdziesz w dokumentacji AWS Lambda Invoke (w języku angielskim).

Parametr Opis Typ Domyślny Wymagane
functionName Nazwa funkcji do wywołania. Ciąg tekstowy. Brak. Tak.
invocationType Określa, czy funkcja ma być wywoływana synchronicznie, asynchronicznie czy sprawdzać wartości parametrów. Ciąg tekstowy. Brak. Nie.
logType Opcjonalnie określa, czy mają być zwracane ostatnie 4 KB danych dziennika. Ciąg znaków Brak. Nie.
kwalifikator Wersja aliasu opublikowanej funkcji lambda. Ciąg znaków Brak. Nie.
ładunek JSON jako danych wejściowych dla funkcji lambda. Ciąg znaków Brak. Nie.

Odpowiedź

Tablica funkcji zawierających konkretne informacje o wersji. Oto przykład:

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

Właściwości odpowiedzi

Właściwość Opis Typ Domyślny
StatusCode . Liczba całkowita Brak.
Ładunek Plik JSON reprezentujący obiekt zwrócony przez funkcję. Wyświetla się tylko wtedy, gdy typem wywołania jest RequestResponse. W przypadku błędu funkcji zobaczysz komunikat z opisem błędu. Ciąg znaków Brak.

listFunctions

Wyświetla listę dostępnych funkcji AWS Lambda.

Więcej informacji o parametrach znajdziesz w dokumentacji funkcji AWS Lambda ListFunctions.

Składnia

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

Przykład

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

Parametry żądania

Więcej informacji o parametrach znajdziesz w dokumentacji funkcji AWS Lambda ListFunctions.

Parametr Opis Typ Domyślny Wymagane
masterRegion Region (np. us-east-2), którego funkcje powinny być wymienione; ALL, aby uwzględnić funkcje z dowolnego regionu. Jeśli została określona, musisz też podać functionVersion. Ciąg znaków Brak. Nie.
functionVersion Wpisz ALL, aby wyświetlić listę wszystkich opublikowanych wersji. Jeśli nie podasz żadnej wartości, zwracana będzie tylko ostatnia nieopublikowana wersja ARN. Ciąg znaków Brak. Nie.
maxItems Maksymalna liczba funkcji do zwrócenia w odpowiedzi. Musi być większy niż 0. Bezwzględna maksymalna liczba znaków, które można zwrócić, to 50. Liczba całkowita Brak. Nie.

Odpowiedź

Plik JSON reprezentujący tablicę funkcji zawierających szczegółowe informacje o konkretnej wersji.

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

Właściwości odpowiedzi

Właściwość Opis Typ Domyślny
Opis Opis funkcji. Ciąg tekstowy. Brak.
Moduł obsługi Funkcja, którą wywołuje lambda, aby rozpocząć wykonywanie funkcji. Ciąg tekstowy. Brak.
FunctionArn Nazwa zasobu funkcji Amazon. Ciąg tekstowy. Brak.
FunctionName Nazwa funkcji. Ciąg tekstowy. Brak.
Rola Rola wykonywania funkcji. Ciąg tekstowy. Brak.
Środowisko wykonawcze Środowisko wykonawcze funkcji. Ciąg tekstowy. Brak.
Wersja Wersja funkcji. Ciąg tekstowy. Brak.

Odniesienie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsów API użyj poniższych wskazówek. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Typowe właściwości rozszerzeń

Dla każdego rozszerzenia dostępne są poniższe właściwości.

Usługa Opis Domyślnie Wymagany
name Nazwa nadana konfiguracji rozszerzenia. Brak Tak
packageName Nazwa pakietu rozszerzeń podana przez Apigee Edge. Brak Tak
version Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. Brak Tak
configuration Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń Brak Tak

Właściwości tego pakietu rozszerzeń

Określ wartości następujących właściwości konfiguracji specyficznych dla tego rozszerzenia.

Właściwość Opis Domyślny Wymagane
Region AWS Lambda Nazwa regionu, w którym są wdrożone Twoje funkcje. Na przykład: us-east-1. Brak. Tak.
Dane logowania Wpisany w konsoli Apigee Edge plik JSON zawiera identyfikator klucza dostępu Amazon oraz klucz dostępu w takim formacie:

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

W przypadku wysyłania przez interfejs API zarządzania jest to wartość zakodowana w standardzie base64 wygenerowana na podstawie tego pliku JSON klucza.
Brak. Tak.