API Gateway에서 Step Function을 호출하여 실행하는 방법을 알고 싶습니다.API 게이트웨이에서 AWS Step Functions를 어떻게 호출 할 수 있습니까?
답변
Integration type: AWS Service
으로 API 게이트웨이 끝점을 만들고 필요한 단계 기능을 호출하도록 설정할 수 있습니다.
단계 기능 끝점의 노출을 제어 할 수 있도록 API 게이트웨이를 사용하려는 경우 정책으로이 끝점에 대한 액세스 만 허용하는 새 IAM 사용자 (프로그래밍 방식 액세스 만 가능) 예 :
{
"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"
]
}
]
}
이 접근법은 저에게 효과적이었습니다. 아래 표를 설명 할 수 있니? 이 게시물을 개선 할 수 있다고 생각되면 댓글을 달아보십시오. –
Step Function API를 호출하기 위해 HTTP 통합을 어떻게 구성 했습니까? AFAIK, 요청이 SigV4에 서명되지 않았으므로이 방법은 작동하지 않습니다. 통합 유형을 AWS로 변경하면 정답이됩니다. –
감사합니다. Ryan, 내 대답을 편집했습니다. 이것은 좋은 소식입니다! 작성 당시 우리는 Step Functions와 API Gateway를 직접 통합 할 수있는 옵션이 없었습니다. –
AWS 서비스에 API 게이트웨이 프록시 통합을 사용할 수 있다고 생각합니다. Look : https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings-console.html
APIGw 엔드 포인트를 백업하고 코드를 통해 AWS StepFunctions를 호출하는 AWS Lambda 함수를 만드는 것이 좋습니다. 우리는 유스 케이스 매개 변수가 우리가 실행할 필요가있는 몇 가지 StepFunction 중 어떤 것을 지시 할 수있게하기 때문에이 접근법을 사용합니다.
틀림없이 "더 많은 코드"입니다. 우리는 AWS가 전체 AWS 리소스 이벤트 호스트에 의해 트리거 될 수 있도록 StepFunction을 정교하기를 희망합니다.
API 게이트웨이는 현재 스텝 기능에 대한 지원을 추가했습니다. 이제 API 게이트웨이 콘솔을 통해 AWS 서비스 통합을 만들 수 있습니다.
- 통합 유형 : AWS 서비스
- AWS 서비스 : 단계 기능
- HTTP 방법 : POST
- 조치 유형 : 사용 작업 이름
- 작업 : StartExecution
- 실행 역할 : 역할은 실행
헤더 시작 -> 'AWSStepFunctions.StartExecution'
콘텐츠 유형 -X-AMZ-대상> '응용 프로그램/X-AMZ-json- 1.0 '
바디 매핑 템플릿/요청 페이로드 :
{ "입력": "문자열", "이름": "문자열", "stateMachineArn": "strin g " }
이 오류에 대한 단서가 있습니까? { "__type": "com.amazonaws.swf.service.v2.model 번호의 InvalidArn" "메시지": "잘못된 ARN : '잘못된 ARN 접두사 : 문자열'" } – omalave
난 당신이 정의하는 ARN을 추측 ''''StateMachineArn'''는 유효하지 않습니다. 그것을 확인할 수 있습니까? –
글쎄, arn은 괜찮아요. 그리고 내가 api 게이트웨이 콘솔에서 테스트 할 때, post를 통해 같은 json을 보내는 것은 괜찮습니다. 그러나 우편 배달부에서는 그 오류와 내 앱에도 어떤 생각이 들었습니까? – omalave
중복 : http://stackoverflow.com/questions/41113666/how-to-invoke-aws-step-function-using-api-gateway – Brandon
나는이 질문보다 더 가치라고 생각합니다 API 게이트웨이를 사용하여 aws sf 호출을 만드는 방법에 대한 설명이 있기 때문에 다른 것들 – omalave
[API 게이트웨이를 사용하여 AWS 스텝 함수를 호출하는 방법?] (https://stackoverflow.com/questions/41113666/how-to- invoke-aws-step-function-using-api-gateway) –