Azure Functions에서 서버리스에 빨리 Hipchat 통지 해보기
전제 정보
이번에 해보는 것
사용 사례
쓰지 않는 것
절차
Hipchat에서 필요한 정보를 가져옵니다.
아래를 참고로 통보하고 싶은 Hipchat Room의 Room ID와 Token을 취득해 주세요.
FunctionApp 만들기
Azure 포털 에서 Function App 을 검색하여 만듭니다.
필요한 정보를 입력하고 작성합니다.
물론 ARM 템플릿을 흘려 넣어 작성하는 것도 가능하기 때문에, 특기인 분은 꼭 그쪽에서.
잠시 후 완성입니다.
Function 만들기
완성된 Function App에 함수를 만듭니다.
레프트 네비게이션 함수 옆에 있는 + 아이콘을 눌러 템플릿을 선택합니다.
이번에는 자바 스크립트 (Node.js)에서 트리거를 Timer로 만들고 싶으므로 "TimerTrigger-JavaScript"를 선택하고 함수를 만듭니다.
이제는 기본적으로 여기에 구현을 쓰면 OK입니다. 이 화면에서 함수를 실행하여 로그를 확인할 수도 있으므로 부담없이 코드를 작성할 수 있습니다.
Node.js의 Request 모듈 설치
이번에 HTTP Request를 보내고 싶으므로 Request 모듈을 설치합니다.
Azure Function의 뒷면은 사실은 Azure WebApp과 다르지 않으므로 조금 kudu에서 넣어 버립니다.
이전의 FunctionApp 화면에서 URL을 찾습니다.
해당 URL의 FunctionAppName 뒤에 '.scm'을 붙여 Kudu에 액세스합니다.
https://${FunctionAppName}.scm.azurewebsites.net/
상단 탭에서 Debug Console > CMD를 탭합니다.
콘솔에서 다음을 수행하여 모듈을 설치합니다.
# 異動
$ cd site/wwwroot
# モジュールインストール
$ npm init
$ npm install request --save
코드를 작성하고 실행
이제 준비가 되었으므로 이전 함수 페이지에서 코드를 작성합니다.
module.exports = function(context,myTimer) {
if (myTimer.isPastDue) {
context.log('JavaScript is running late!');
}
var request = require('request');
var options = {
url: 'https://api.hipchat.com/v2/room/**RoomId**/notification?auth_token=**token**'
,method: 'POST'
,headers: 'Content-type: application/json'
,json: {
"from": "Test Bot"
,"message": "I love AKB48!!" // メッセージ本文
,"color": "purple"
,"notify": "true"
,"message_format": "text"
}
};
request.post(options, function (error, response, body) {
context.log("Response Code : "+response.statusCode);
})
context.done();
}
이번 사용한 API에 대해서는 Send room notification API Reference 를 참고해 주세요.
코드를 실행하면 로그도 표시됩니다.
단지 이것만으로, 실제로 Hipchat에게 통지를 할 수 있었습니다!!
Timer 트리거를 조정하려면
레프트 네비게이션 통합에서 일정을 설정할 수 있습니다.
자세한 내용은 여기을 참조하십시오.
감상
Preview 시대에 Azure Function에서 연주했지만 GA를 사용하여 사용하기 쉬워졌습니다.
이번에는 시간을 트리거로 만들었지만,
등을 트리거 할 수 있으므로,
등등 여러가지 용도로 이용할 수 있을 것 같네요.
주위의 것은 Azure Functions가 잘 해 주므로 메인 처리의 코드에 집중할 수 있을 것 같습니다.
Reference
이 문제에 관하여(Azure Functions에서 서버리스에 빨리 Hipchat 통지 해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TAKAKING22/items/969c6e25c2147690f2ef텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)