Chciałbym wiedzieć, jak uczynić API Gateway wywołać funkcję krok i wykonać go.Jak mogę zadzwonić do funkcji kroków AWS przez bramkę API?
Odpowiedz
Możesz utworzyć Punkt końcowy bramy API za pomocą Integration type: AWS Service
i ustawić go, aby wywołać wymaganą funkcję kroku.
W przypadku, gdy chcesz użyć API bramy, dzięki czemu można kontrolować narażenie kroku Funkcje końcowy, można utworzyć nowego użytkownika IAM (tylko dostęp programistyczny) z polityki że udziela jedynie dostęp do tego punktu końcowego, np .:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:execute-api:us-east-1:my-aws-account-id:my-api-id/my-stage/GET/my-resource-path"
]
}
]
}
To podejście zadziałało dla mnie. Czy możesz wyjaśnić głosowanie w dół? Jeśli uważasz, że ten post można poprawić, rozważ dodanie komentarza. –
W jaki sposób skonfigurowałeś integrację HTTP, aby wywołać funkcję Step Function API? AFAIK, to nie działa, ponieważ żądanie nie zostanie podpisane z SigV4. To byłaby poprawna odpowiedź, jeśli zmienisz typ integracji na AWS. –
Dzięki Ryan, zredagowałem moją odpowiedź. To dobra wiadomość! W chwili pisania tego tekstu nie mieliśmy możliwości bezpośredniej integracji funkcji kroków z bramą API, powinno to być możliwe. –
Myślę, że możesz użyć integracji API Gateway Proxy z usługą AWS. Spójrz: https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings-console.html
Rozważ utworzenie funkcji Lambda AWS, która wspiera punkt końcowy APIGw i wywołuje go za pomocą kodu AWS StepFunctions. Używamy tego podejścia, ponieważ nasz przypadek użycia pozwala parametrom punktów końcowych API kierować, które z kilku funkcji kroków musimy wykonać.
Prawdą jest, że jest to "więcej kodu"; Mamy nadzieję, że AWS opracuje funkcje kroków, które mogą być wyzwalane przez cały szereg zdarzeń zasobów AWS.
Bramka interfejsu API dodana do obsługi Funkcje krokowe aktualnie. Teraz możesz utworzyć integrację usługi AWS za pośrednictwem API Gateway Console.
- Rodzaj Integracja: AWS usługi
- AWS Usługa: Step Funkcje
- metoda HTTP: POST
- Rodzaj Działanie: Zastosowanie Nazwa działania
- Działanie: StartExecution
- Wykonanie rola: rola, aby rozpocząć realizację
Nagłówki:
X-AMZ-Target -> 'AWSStepFunctions.StartExecution'
Content-Type -> „application/x-AMZ-json- 1,0'ciała Mapowanie Szablony/Zapytanie ładowność:
{ "wejście": "string", "name": "string", "stateMachineArn": „strln g” }
Czy masz jakieś wskazówki na temat tego błędu? { "__type": "com.amazonaws.swf.service.v2.model # InvalidArn", "message" : "Nieprawidłowy Arn: 'Nieprawidłowy ARN prefiks: string'" } – omalave
Chyba ARN zdefiniować w '' stateMachineArn''' nie jest nieprawidłowy. Czy możesz to sprawdzić? –
Cóż, arn jest w porządku i kiedy testuję go w konsoli bramy api, wysyłanie tego samego jsona pocztą wszystko działa ok, ale w liście postmów powiedział, że błąd i w mojej aplikacji też jakiś pomysł? – omalave
duplikat: http://stackoverflow.com/questions/41113666/how-to-invoke-aws-step-function-using-api-gateway – Brandon
Myślę, że to pytanie jest bardziej wartościowa niż inne, ponieważ istnieje wyjaśnienie, w jaki sposób utworzyć wywołanie aws sf z bramy APi. – omalave
Możliwy duplikat funkcji krokowej [Jak wywołać funkcję AWS przy użyciu bramy API?] (https://stackoverflow.com/questions/41113666/how-to- invoke-aws-step-function-using-api-gateway) –