Rozszerzenie AWS Lambda

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wersja: 1.1.1

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

Wymagania wstępne

Zanim użyjesz zasady ExtensionCallout, musisz użyć rozszerzenia z serwera proxy interfejsu API:

Informacje o AWS Lambda

AWS Lambda udostępnia środowiska obliczeniowe, w których można wykonywać 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 interfejsu AWS Lambda Invoke.

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 interfejsu AWS Lambda Invoke.

Parametr Opis Typ Domyślne Wymagane
functionName Nazwa funkcji do wywołania. Ciąg tekstowy. Brak. Tak.
invocationType Określa, czy funkcja ma być wywoływane synchronicznie, asynchronicznie czy weryfikować wartości parametrów. Ciąg tekstowy. Brak. Nie.
logType Opcjonalnie określa, czy należy zwrócić ostatnie 4 KB danych dziennika. Ciąg znaków Brak. Nie.
kwalifikator Wersja aliasu opublikowanej funkcji Lambda. Ciąg znaków Brak. Nie.
payload JSON jako dane wejściowe funkcji Lambda. Ciąg znaków Brak. Nie.

Odpowiedź

Tablica funkcji zawierających szczegółowe 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ślne
StatusCode . Liczba całkowita Brak.
Ładunek Plik JSON reprezentujący obiekt zwrócony przez funkcję. Występuje tylko wtedy, gdy typem wywołania jest RequestResponse. W przypadku błędu funkcji tekst zawiera komunikat o błędzie. Ciąg znaków Brak.

listFunctions

Wyświetla dostępne funkcje AWS Lambda.

Więcej informacji o parametrach znajdziesz w dokumentacji 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 AWS Lambda ListFunctions.

Parametr Opis Typ Domyślne Wymagane
masterRegion Region (np. us-east-2), którego funkcje powinny być wymienione; ALL, aby uwzględnić funkcje z dowolnego regionu. Jeśli określono, musisz też podać functionVersion. Ciąg znaków Brak. Nie.
functionVersion Podaj ALL, aby wyświetlić wszystkie opublikowane wersje. Jeśli nie określono inaczej, zwracany jest tylko ARN ostatniej nieopublikowanej wersji. Ciąg znaków Brak. Nie.
maxItems Maksymalna liczba funkcji do zwrócenia w odpowiedzi. Musi być większy niż 0. Maksymalna wartość, którą można zwrócić, to 50. Liczba całkowita Brak. Nie.

Odpowiedź

Plik JSON reprezentujący tablicę funkcji z określonymi szczegółami 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ślne
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 Amazon funkcji. Ciąg tekstowy. Brak.
FunctionName Nazwa funkcji. Ciąg tekstowy. Brak.
Rola Rola wykonania funkcji. Ciąg tekstowy. Brak.
Środowisko wykonawcze Środowisko wykonawcze funkcji. Ciąg tekstowy. Brak.
Wersja Wersja funkcji. Ciąg tekstowy. Brak.

Dokumentacja konfiguracji

Skorzystaj z podanych niżej instrukcji podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsów API. Instrukcje konfigurowania rozszerzenia w 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ń

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

Właściwość Opis Domyślne Wymagane
Region AWS Lambda Nazwa regionu, w którym wdrożone są funkcje. Na przykład: us-east-1. Brak. Tak.
Dane uwierzytelniające Wpisany w konsoli Apigee Edge jest to plik JSON zawierający identyfikator klucza dostępu Amazon i klucz dostępu w takiej postaci:

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

Wysyłana za pomocą interfejsu API zarządzania jest wartością zakodowaną w formacie base64 wygenerowaną na podstawie tego klucza pliku JSON.
Brak. Tak.