完全自分用メモですよ。
# -*- coding: utf-8 -*-
import commands
import os
import boto3
print('Loading function')
## SNS送信関数
def sendmsg():
TOPIC_ARN = u'arn:aws:sns:ap-northeast-1:******'
msg = "Please check for https://www.example.com/"
subject = u'Site is down!!'
client = boto3.client('sns')
request = {
'TopicArn': TOPIC_ARN,
'Message': msg,
'Subject': subject
}
response = client.publish(**request)
#Linuxのコマンド実行関数
def _(cmd):
return commands.getoutput(cmd)
def lambda_handler(event, context):
#ヘルスチェックで問題がない場合に表示する文字列
ok_string = "ok"
#ヘルスチェックで問題がある場合に表示する文字列
ng_string = "ng"
#実行するcurlコマンド
curl_cmd = 'curl -LI https://www.example.com/ -o /dev/null -w \'%{http_code}\\n\' -s'
#curlコマンドの実行
response = _(curl_cmd)
#レスポンスのログへの記録
print("----------response body start.----------")
print(response)
print("----------response body end.------------")
#ステータスコードの判定
if response == ("200"):
print("Status is 200")
return {"result": ok_string}
else:
print("Status is not 200")
sendmsg()
return {"result": ng_string}