Ruby와 AWS Lambda에서 Saku와 Slack에 게시하십시오.

4110 단어 슬랙AWSLambda루비
우선 AWS Lambda를 움직이고 싶었다.
시험이므로 브라우저상에서 완결하도록 했지만, 비교적 시간이 걸렸다.

함수 만들기



(AWS 계정을 생성하고 AWS 콘솔에 로그인할 때까지 생략)

서비스 목록에서 Lambda → 함수 → 함수 작성을 선택합니다.

함수의 작성 화면에서는 「1부터 작성」을 선택. 함수명은 임의.
런타임은 Ruby2.5 (2019/11/26 현재)를 선택.
역할은 기본값으로 유지됩니다.



「함수 작성」버튼을 선택하면 함수가 작성되어 편집 화면으로 천이한다.



함수 실행



우선 샘플을 움직여 보자.
오른쪽 상단의 "테스트"를 선택하고 "이벤트 이름"을 적절하게 입력하여 만듭니다.



작성한 이벤트명이 표시되고 있는 것을 확인하면, 「테스트」를 누르면 함수가 움직인다.



Slack incoming-webhook 설정



Slack에 게시하기 위해 webhook을 설정합니다.
(이 부분은 처음 설정시와 그 이외로 표시가 다를지도 모른다)

통지하고 싶은 채널의 설정 아이콘 → 「어플리를 추가한다」를 선택해, 「incoming-webhook」로 검색.
브라우저 측에서 App 디렉토리로 전환할 것이므로 "Slack에 추가"를 선택.



웹후크를 추가할 채널을 선택하고 "Incoming Webhook 통합 추가"를 선택합니다.
webhook URL이 만들어지므로 이것을 복사합니다.
(이 때 간단한 사용법 등도 표시되므로 읽으면 좋을지도)

Lambda에서 Slack로 게시



작성한 Lambda 함수에서 포스트 해 본다.
시험만 하기 때문에 net/http 를 이용.use_ssl = true 를 설정하지 않으면 Bad Request가 된다.
require 'json'
require "net/http"

URL = "https://hooks.slack.com/services/*******"

def lambda_handler(event:, context:)
    uri = URI.parse(URL)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.post(uri.path, { text: "hello from lambda." }.to_json)
end

수정 후 "저장"→ "테스트"를 선택하면 요청이 실행됩니다.
성공적으로 처리되면 Slack에 알림이 날아갑니다.



기타



Lambda 자체는 무료 테두리에 들어갔지만 로그를 보존하는 S3의 요금이 조금씩 발생하고 있었다.
회피 방법등 있을지도 모르지만, 신경이 쓰이지 않는 정도였으므로 이번은 무시.

다음은 어떠한 트리거로 실행하는 부분과 변수를 건네주는 부분을 조사한다.

좋은 웹페이지 즐겨찾기