7

CloudWatch 타이머에서 ping을 처리하는 방식으로 함수를 래핑하는 가장 좋은 방법은 무엇입니까? 예를 들어, 아래 람다 함수를 가지고 : 나는 기능을 핑 (ping)하면 CloudWatch를 요청에는 queryStringParameters이 없기 때문에CloudWatch에서 람다 함수에 값을 전달하는 방법은 무엇입니까?

export const fn = (event, context, callback) => { 
    const { year, make, model, } = event.queryStringParameters 

    return otherFn({ year, make, model, }) 
    .then(res => response(callback, res)) 
    .catch(err => console.log(err)) 
} 

, 그것은 오류가 있습니다. 엄밀히 말하면, 이것은 여전히 ​​람다 함수를 따뜻하게 유지하는 일을 할 것이지만 (이것은 내 목표 임), 불필요하게 긴 오류 목록을 갖고 싶지는 않습니다.

configure input

이 핑을 받아 들일 수 있도록 위의 기능을 래핑하는 가장 현명한 방법은 무엇입니까 :

나는 CloudWatch에서 당신이 (아마도) 람다 함수에 전달되는 입력을 포함시킬 수 있습니다 것으로 나타났습니다? 나는 같은 날 이벤트를 변경할 수 있습니다 일부 JSON을 통과 할

export const fn = (event, context, callback) => { 
    if (event.ping) return ping(callback) // the ping function is an import to stay DRY 
    const { year, make, model, } = event.queryStringParameters 

    return otherFn({ year, make, model, }) 
    .then(res => response(callback, res)) 
    .catch(err => console.log(err)) 
} 

: 내가 입력에 대한 문서를 읽은

{ "ping": true } 

하지만, 이상적으로는 다음과 같을 것 다양한 입력 유형이 무엇을 의미하는지 또는 어떻게 사용하는지 명확하지 않습니다 ...

답변

5

입력 옵션 인 Constant (JSON text)를 선택하면 입력 상자가 바로 아래에 나타납니다. json {"ping": true}을 입력해야합니다. 귀하의 함수는 event 객체로 json을 가져오고 코드와 마찬가지로 event.ping에 액세스 할 수 있습니다.

AWS 콘솔에서 서버리스 프레임 워크를 사용하는 대신 사용자의 기능에 대한 일정 이벤트를 추가 할 수 있습니다. 이것은 기존의 http 이벤트에 추가됩니다.

scheduledFunction: 
    handler: index.handler 
    events: 
    - schedule: 
     rate: rate(1 minute) 
     enabled: true 
     input: 
      ping: true 

이 생성되고 지정된 일정과 CloudWatch에서 로그 이벤트를 활성화하고 event 객체의 입력 매개 변수 ping을 보내이 같은 예약 된 이벤트의 입력 섹션에서 ping: true 매개 변수를 추가 할 수 있습니다.

+0

이것은 실제로 질문에 대한 답변입니다. 사회자가 그것을 표시 할 수 있습니까? –

관련 문제