Google Cloud Functions에서 Slack에 알림 보내기

Google Cloud Functions란 무엇입니까?





서버를 준비, 관리하지 않고 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스. AWS에서 말하는 Lambda에 해당한다. 코드가 실행되는 시간에 대해서만, 가장 가까운 100밀리초 단위로 과금된다.
※2017년 12월 17일 시점에서는 Beta판

Google Cloud Functions에서 함수 만들기



1. GCP 콘솔 메뉴에서 Cloud Functions를 선택합니다.



2. "함수 만들기"버튼을 누르십시오.



3. 함수 세부 정보 입력



입력 내용은 다음과 같습니다.


입력 항목
설명


이름
모든 함수의 이름을 입력. 여기서 설정한 이름은 바꿀 수 없습니다.

할당된 메모리
함수 실행 시 할당되는 최대 메모리 크기

트리거
무엇을 트리거가이 함수를 실행할지 선택

소스 코드
함수 소스 코드를 관리하고 편집하는 방법 선택

무대 버킷
코드를 준비하는 Cloud Storage 지정


위를 입력하면 "만들기"버튼을 누릅니다.
잠시 후, 다음과 같은 형태로 함수가 완성된다.


Slack 토큰 확인



Slack API의 Token 취득 및 위치 을 참고로, Slack의 토큰을 삼킨다.

스크립트 작성



Cloud Functions는 Node.js 런타임에서 실행됩니다. 따라서 스크립트는 Node.js에서 구현됩니다.

index.js
const request = require('request');

// デフォルトでhelloWorldで作成されるのでよしなに変更する
exports.helloWorld = function helloWorld(req, res) {

    var headers = {
        'Content-Type':'application/json'
    }

    var options = {
        url: 'https://slack.com/api/chat.postMessage',
        method: 'POST',
        headers: headers,
        json: true,
        form: {
            token: '控えてあるSlackのトークン',
            channel: '通知を送りたいSlackのチャンネル名',
            username: 'Slackに通知を送るユーザ名',
            text: 'Slackに通知するメッセージ'
        }
    }

    request(options, function (error, response, body) {
    // 必要に応じてコールバック処理
    })

    res.status(200).send('Success');
};

package.json
{
    "name": "sample-http",
    "version": "0.0.1",
    "dependencies": {
        "request": "^2.81.0"
    }
}

알림이 날거나 시도해보기



URL은 「함수의 상세」의 「트리거」탭에서 확인할 수 있으므로, 브라우저 등의 HTTP 클라이언트로, 상기에서 작성한 함수를 호출한다.


이런 느낌으로 통지를 받으면 OK.


참고


  • Google Cloud Functions
  • 좋은 웹페이지 즐겨찾기