Step Functions 및 API Gateway의 통합 [뒷편]

입문


저번 보도 이후 APIGAteway를 사용하여 보진 함수를 사용하여 마이크로서비스에 대해 관현적인 시범을 보이고 AWS 서비스에 접근하는 방법을 적는다.

마이크로 서비스 자동화


프로그램 백엔드를 조정하기 위해 단계 함수에 내장된 고장 처리, 결정 지점, 병행 처리를 사용하고 있다고 가정하십시오.
개발자는 APIGAteway를 사용하여 백엔드 마이크로서비스에 대한 액세스를 관리합니다.

APIGAteway 사용


요청, 응답 형식을 표준화하여 업무 논리를 루트 논리에서 분리하는 데 도움이 된다.
개발자가 검증, 절류, 부하 균형 등 책임을 줄일 수 있도록 함으로써 복잡성을 줄일 수 있다.

새로운 APIGAteway를 통한 통합


개발자는 APIGAteway 단점을 이용하여 강력한 작업 흐름을 구축하여 마이크로서비스를 조정할 수 있다.
이런 마이크로 서비스는 서버가 없거나 용기를 기반으로 할 수 있다.
다음 예제에서는 AWS 서비스에 액세스하기 위해 APIGAteway와 Step Functions를 사용하여 마이크로 서비스를 관리하는 방법을 설명합니다.
이 어플리케이션의 예제 코드

응용 프로그램 실행


GitHub 저장소를 복제합니다.
Bash
$ git clone https://github.com/aws-samples/example-step-functions-integration-api-gateway.git
$ cd example-step-functions-integration-api-gateway
AWS SAM CLI를 사용하여 애플리케이션을 배포하고 모든 기본 매개변수 입력을 수락합니다.
Bash
$ sam build && sam deploy -g

다음과 같은 17개의 리소스가 배포됩니다.
  • 단계 함수 표준 워크플로우
  • 세 개의 리소스 끝점이 있는 API Gateway REST API
  • 람다 함수 3개
  • DynamoDB 테이블을 포함하는 17개 리소스
  • StockTradingStateMachineArn 값을 기록합니다.
    명령줄 출력 또는 AWSlambda 콘솔의 응용 프로그램/섹션에 있습니다.

    워크플로우 수동 트리거


    터미널 창에서 워크플로우를 수동으로 트리거합니다.
    Bash
    aws stepFunctions start-execution \
    --state-machine-arn <StockTradingStateMachineArnValue>
    
    대답은 다음과 같다.


    워크플로가 실행될 때 APIGAteway를 통해 자원에 대한 가져오기 요청을 통해 Lambda 함수를 호출합니다.
    이것은 1-100개의 무작위 주식 가치를 되돌려 줄 것이다.
    이 값은 50 미만인지 여부에 따라 구매 또는 판매 선택을 통해 평가됩니다.

    Lambda 함수 호출


    판매 상태와 구매 상태는 APIGAteway 통합 호출 Lambda 함수를 사용합니다.
    전원 켜기 자체 검사 방법을 사용하다.
    "stock_value"는 오프라인 자체 검사 요청입니다.
    transaction_result로 돌아가 ResponseBody에 전달합니다.
    최종 상태는 동적 데이터베이스 테이블에 마이그레이션 로그를 기록합니다.

    AWSSAM 템플릿을 사용하여 리소스 정의


    단계 함수 리소스는 이 AWSSAM 템플릿에서 정의됩니다.
    기본 세분화 필드는 템플릿 매개변수를 워크플로우 정의에 전달하는 데 사용됩니다.
    YAML
    StockTradingStateMachine:
        Type: AWS::Serverless::StateMachine # More info about State Machine Resource: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html
        Properties:
          DefinitionUri: statemachine/stock_trader.asl.json
          DefinitionSubstitutions:
            StockCheckPath: !Ref CheckPath
            StockSellPath: !Ref SellPath
            StockBuyPath: !Ref BuyPath
            APIEndPoint: !Sub "${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com"
            DDBPutItem: !Sub arn:${AWS::Partition}:states:::dynamodb:putItem
            DDBTable: !Ref TransactionTable
    
    워크플로우는 다른 파일(/statemachine/stock_trader.asl.json)에서 정의됩니다.
    다음 코드 블록은 주가의 검사 상태를 정의합니다.
    새로운 자원은'arn:aws:states::apigateway:invoke]APIGateway의 서비스 통합 유형을 나타낸다.
    매개 변수 대상은 설정 서비스 통합에 필요한 필드를 보존합니다.
    경로 및 ApiEndpoint 값이 제공하는 DefinitionsSubstitutions AWS SAM 템플릿의 필드입니다.
    "Request Body"의 입력은 아마존 미국 언어의 동적 정의를 사용합니다.
    [.$] 필드 이름 끝에 요청 엔티티의 매개변수 사용 경로를 지정하여 JSON 노드를 참조하여 입력합니다.
    YAML
    "Check Stock Value": {
      "Type": "Task",
      "Resource": "arn:aws:states:::apigateway:invoke",
      "Parameters": {
          "ApiEndpoint":"${APIEndPoint}",
          "Method":"GET",
          "Stage":"Prod",
          "Path":"${StockCheckPath}",
          "RequestBody.$":"$",
          "AuthType":"NO_AUTH"
      },
      "Retry": [
          {
              "ErrorEquals": [
                  "States.TaskFailed"
              ],
              "IntervalSeconds": 15,
              "MaxAttempts": 5,
              "BackoffRate": 1.5
          }
      ],
      "Next": "Buy or Sell?"
    },
    
    배포 프로세스에서 ApiEndpoint 값을 확인합니다.
    서비스 통합은 "https://[APIendpoint]/[Stage]/[Path]"형식으로 파라미터 블록에서 제공하는 정보로 API 노드 URL을 구축합니다.

    느끼다


    API 게이트웨이의 단계 기능 통합 및
    워크플로우 단계에서 REST API, HTTP API 기능을 직접 호출하는 기능에 대해 설명합니다.
    Step Functions에 내장된 오류 처리는 개발자가 코드를 줄이고 업무 논리를 끊는 데 도움을 줄 수 있습니다.
    APIGAteway와 결합하면 인증, 슬롯, 로드 밸런싱 등의 부담을 줄일 수 있습니다.
    APIGAteway 자동화를 통해 컨테이너나 Lambda 함수에 배포할 수 있는 인프라를 관리할 필요가 없으므로 한번 시도해 보십시오!

    공식 링크


    Step Functions에서 API Gateway 사용
    AWS 공식 사이트

    좋은 웹페이지 즐겨찾기