Submit Search
Upload
サーバーレスで運用自動化
•
Download as PPTX, PDF
•
0 likes
•
847 views
Akifumi Niida
Follow
JAWS-UG横浜#12 サーバーレス 発表資料
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Recommended
Java勉強会2017.3.17
Java勉強会2017.3.17
technologicarts
うちのRedmineの使い方(2)
うちのRedmineの使い方(2)
Tomohisa Kusukawa
[A22] SE(SE One)をもっと有効活用しよう(db tech showcase 大阪 2014)
[A22] SE(SE One)をもっと有効活用しよう(db tech showcase 大阪 2014)
Jun Shimizu
Couchbase MeetUP Tokyo - #16
Couchbase MeetUP Tokyo - #16
kitsugi
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
JPCERT Coordination Center
Android Lecture #02 @PRO&BSC Inc.
Android Lecture #02 @PRO&BSC Inc.
Yuki Higuchi
Recommended
Java勉強会2017.3.17
Java勉強会2017.3.17
technologicarts
うちのRedmineの使い方(2)
うちのRedmineの使い方(2)
Tomohisa Kusukawa
[A22] SE(SE One)をもっと有効活用しよう(db tech showcase 大阪 2014)
[A22] SE(SE One)をもっと有効活用しよう(db tech showcase 大阪 2014)
Jun Shimizu
Couchbase MeetUP Tokyo - #16
Couchbase MeetUP Tokyo - #16
kitsugi
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
JPCERT Coordination Center
Android Lecture #02 @PRO&BSC Inc.
Android Lecture #02 @PRO&BSC Inc.
Yuki Higuchi
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
tak9029
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Yuji Kanemoto
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニック
JubatusOfficial
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
Unity Technologies Japan K.K.
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
Kenta Hattori
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Titanium勉強会
Titanium勉強会
洋平 前田
JPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発Tips
yuichi_kuwahara
ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編
Takashi Yahata
WordPress安全運用の基礎
WordPress安全運用の基礎
hiro345
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
Masami Yabushita
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
20120118 titanium
20120118 titanium
Hiroshi Oyamada
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Takahiro Yonei
認証サービスへのWebAuthnの導入
認証サービスへのWebAuthnの導入
TakashiTsukamoto4
ゼロから始めたE2Eテスト
ゼロから始めたE2Eテスト
ushiboy
AWS運用自動化への第一歩
AWS運用自動化への第一歩
Trainocate Japan, Ltd.
実践 NestJS
実践 NestJS
Ayumi Goto
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Hirotaka Ogawa
FargateからCloudRunへの移行にCloudflareを添えて.pptx
FargateからCloudRunへの移行にCloudflareを添えて.pptx
Akifumi Niida
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
More Related Content
Similar to サーバーレスで運用自動化
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
tak9029
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Yuji Kanemoto
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニック
JubatusOfficial
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
Unity Technologies Japan K.K.
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
Kenta Hattori
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Titanium勉強会
Titanium勉強会
洋平 前田
JPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発Tips
yuichi_kuwahara
ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編
Takashi Yahata
WordPress安全運用の基礎
WordPress安全運用の基礎
hiro345
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
Masami Yabushita
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
20120118 titanium
20120118 titanium
Hiroshi Oyamada
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Takahiro Yonei
認証サービスへのWebAuthnの導入
認証サービスへのWebAuthnの導入
TakashiTsukamoto4
ゼロから始めたE2Eテスト
ゼロから始めたE2Eテスト
ushiboy
AWS運用自動化への第一歩
AWS運用自動化への第一歩
Trainocate Japan, Ltd.
実践 NestJS
実践 NestJS
Ayumi Goto
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Hirotaka Ogawa
Similar to サーバーレスで運用自動化
(20)
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニック
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
Titanium勉強会
Titanium勉強会
JPAの基礎と現場で役立つ開発Tips
JPAの基礎と現場で役立つ開発Tips
ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編
WordPress安全運用の基礎
WordPress安全運用の基礎
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
20120118 titanium
20120118 titanium
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
認証サービスへのWebAuthnの導入
認証サービスへのWebAuthnの導入
ゼロから始めたE2Eテスト
ゼロから始めたE2Eテスト
AWS運用自動化への第一歩
AWS運用自動化への第一歩
実践 NestJS
実践 NestJS
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
More from Akifumi Niida
FargateからCloudRunへの移行にCloudflareを添えて.pptx
FargateからCloudRunへの移行にCloudflareを添えて.pptx
Akifumi Niida
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
宇宙一早いreCapとreInvent2回目参加に向けての意気込み.pptx
宇宙一早いreCapとreInvent2回目参加に向けての意気込み.pptx
Akifumi Niida
今年のRe inventで発表されたアップデートの傾向を探ってみた
今年のRe inventで発表されたアップデートの傾向を探ってみた
Akifumi Niida
Event bridge で s3 イベント通知を試してみた
Event bridge で s3 イベント通知を試してみた
Akifumi Niida
10週連続re capから学んだコミュニティ運営のコツ
10週連続re capから学んだコミュニティ運営のコツ
Akifumi Niida
Jawsug yokohama recap_week1_gp3
Jawsug yokohama recap_week1_gp3
Akifumi Niida
Jaws sonic 2020_yokohama_deepcomposer
Jaws sonic 2020_yokohama_deepcomposer
Akifumi Niida
Jaws ug yokoyama-16
Jaws ug yokoyama-16
Akifumi Niida
Ops x meet up v18.12 クラウドサービス運用の裏側
Ops x meet up v18.12 クラウドサービス運用の裏側
Akifumi Niida
Swarm mode運用してみた
Swarm mode運用してみた
Akifumi Niida
Ossフル活用でinfrastructure as codeやってみた
Ossフル活用でinfrastructure as codeやってみた
Akifumi Niida
More from Akifumi Niida
(12)
FargateからCloudRunへの移行にCloudflareを添えて.pptx
FargateからCloudRunへの移行にCloudflareを添えて.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
宇宙一早いreCapとreInvent2回目参加に向けての意気込み.pptx
宇宙一早いreCapとreInvent2回目参加に向けての意気込み.pptx
今年のRe inventで発表されたアップデートの傾向を探ってみた
今年のRe inventで発表されたアップデートの傾向を探ってみた
Event bridge で s3 イベント通知を試してみた
Event bridge で s3 イベント通知を試してみた
10週連続re capから学んだコミュニティ運営のコツ
10週連続re capから学んだコミュニティ運営のコツ
Jawsug yokohama recap_week1_gp3
Jawsug yokohama recap_week1_gp3
Jaws sonic 2020_yokohama_deepcomposer
Jaws sonic 2020_yokohama_deepcomposer
Jaws ug yokoyama-16
Jaws ug yokoyama-16
Ops x meet up v18.12 クラウドサービス運用の裏側
Ops x meet up v18.12 クラウドサービス運用の裏側
Swarm mode運用してみた
Swarm mode運用してみた
Ossフル活用でinfrastructure as codeやってみた
Ossフル活用でinfrastructure as codeやってみた
Recently uploaded
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
Recently uploaded
(8)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
サーバーレスで運用自動化
1.
※本内容は組織を代表するものではありません サーバーレスで運用自動化 2018/04/18 (Wed) JAWS-UG
横浜 #jawsug @nid777 新居田晃史 Akifumi Niida ※本内容はすべて個人的な見解であり、所属する会社や組織を代表するものではありません
2.
自己紹介 • 新居田 晃史(にいだ
あきふみ) • 所属 • JBアドバンスト・テクノロジー株式会社 • 先進技術研究所 • 日本最速ITエンジニア(自称) • フルマラソン 2:29:56 • JAWS-UG横浜支部 • コアメンバー Twitter @nid777 Facebook Akifumi Niida (免許更新中) 有効期限:2018/4/21
3.
今日は 「システム運用」の 話をします ヘルプデスク等のお客様対応や、アプリケーション運用の話はしません
4.
運用してますか?
5.
システム運用とは • 監視 • バックアップ •
脆弱性チェック 等 定常業務 • コンフィグの更新 • パッチ適用 • 原因のわかる障害 等 簡単なやつ • 原因がよくわからない障害 • 想定外の事態 • 緊急事態 等 ヤバいやつ システムを安定的に動作させること 簡単にしたい 楽したい 楽したい
6.
運用のつらみ •障害が起きるたびにやることが増える •システムが拡大するたびにやることが増える •人は増えない
7.
運用を自動化する ( Ops )
( Dev ) ソラコム公式Twitterより
8.
なぜサーバーレスか? 「監視」と「対応」を疎結合にできる イベントドリブンである 低コストで実現できる
9.
何ができそうか? • 定常業務 • バックアップ •
脆弱性チェック 等 • 簡単な業務 • パッチ適用 • コンフィグの更新 • AMIの更新 • プロセス、OSの再起動
10.
AWS Systems Manager •
Amazon Linux 2017.09以降ならSSMエージェントが入ってる • 入っていない場合はyumで入れられる • 適切な権限のRoleをアタッチすれば管理対象になる • AWS管理ポリシー • AmazonSSMFullAccess • AmazonSSMReadOnlyAccess • Run Commandが大変便利 • SSHなしでコマンドが実行可能 • リモートからのファイルダウンロード • AnsibleのPlaybookが実行可能 https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2017-amazon-ec2-systems-manager AWS でご利用のインフラストラクチャを可視化し、制御するためのサービス AWS のさまざまなサービスの運用データを確認でき、AWS リソース全体に関わる運用タスクを自動化 https://aws.amazon.com/jp/systems-manager/引用元 参考
11.
対応をサーバーレス化 Amazon SES Amazon SNS AWS Lambda リソース ログ Run Command Amazon S3 GitBucket Fail Amazon
EC2 Systems Manager
12.
Zabbixとの連携 • 考えた事(疎結合にする) • Zabbixが他のものに置き換わっても使えるようにしたい •
SNSで疎結合にできそう • アクションに対するコマンドはLambda、SSM側に持たせる • 実行時間300秒に注意 • Send_commandはSSMに渡せば処理が終了するので多分問題ないはず ※SNSでステータスを捕捉し、リカバリーできるようにしておく。
13.
SNS用のスクリプト (sns.py) #!/usr/bin/env python #coding:
UTF-8 doc = """doc. usage: sns.py -t topic -a action.name -s trigger.state -h hostname options: -t topic -a action.name -s trigger.state -h hostname """ …省略… from docopt import docopt from boto3 …続く… sns = boto3.client('sns', region_name=region) topic = "arn:aws:sns:" + region + ":" + accountid + ":" + topicname Instance_id = describe_instance_id(host_name) message = { "ActionName": action_name, "TriggerState": trigger_state, “InstanceId": instance_id } data = json.dumps(message) sns.publish( TopicArn = topic, Subject = subject, Message = {'Subject' : {'Data': subject, 'Charset' : 'utf-8'}, 'Body':{'Text':{'Data':data,'Charset':'utf-8'}} } ) • docoptでパラメータを受け取る • パラメータをJSONにする • boto3でSNSに送る
14.
Zabbixのアクション設定でスクリプトを指定
15.
Lambdaのテスト Pythonの場合 • ローカルから実行できるようにする •
handler(event,context,test=true) でsend_commandに渡すパラ メータをテストする。 • python test_handler.pyでテスト実行
16.
handler.py 抜粋 def alert_handler(event,
context, test=False): client = boto3.client('ssm') message = json.loads(event['Records'][0]['Sns']['Message']) instance_ids = message['instanceids'] commands = message['commands'] …省略… if test: return command_args else: response = client.send_command(command_args) …省略… if __name__ == "__main__": event = "" context = "" alert_handler(event, context)
17.
test_handler.py 抜粋 import unittest import
handler import json class TestAlertHandler(unittest.TestCase): """test class of hander.py """ def test_alert_hander(self): """test method for alert_hander """ f = open("snsformat.json") snsmessage = json.load(f) f.close snsmessage['Records'][0]['Sns']['Message'] = "{¥"instanceids¥":[¥"i-12345678912345678¥"],¥"commands¥":[¥"service tomcat restart¥"]}" event=snsmessage context="" expected = { "InstanceIds": ["i-12345678912345678"], …省略… } actual = handler.alert_handler(event, context, test=True) self.assertEqual(expected, actual) …省略… if __name__ == "__main__": unittest.main()
18.
snsformat.json { "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn":
"eventsubscriptionarn", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "1970-01-01T00:00:00.000Z", "Signature": "EXAMPLE", "SigningCertUrl": "EXAMPLE", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "message", "MessageAttributes": { "Test": { "Type": "String", "Value": "TestString" }, "TestBinary": { "Type": "Binary", "Value": "TestBinary" } }, "Type": "Notification", "UnsubscribeUrl": "EXAMPLE", "TopicArn": "topicarn", "Subject": "TestInvoke" } } ] } Lambdaのテスト用フォーマットそのままです
19.
CRONの代用(バックアップの例) Amazon SES Amazon SNS AWS Lambda Run Command CloudWatch Events Status Amazon S3 Amazon EC2 Systems Manager AWS Lambda
20.
Elasticsearchへのデータ送信 Amazon SES Amazon SNS AWS Lambda Status AWS Lambda Amazon CloudWatch Amazon Kinesis Firehose Amazon S3 Amazon Kinesis Streams •
負荷の急増をKinesisでバッファできる。 • ElasticsearchがスケールアウトしたらKinesisのシャードを増やす。
21.
fluentd https://github.com/awslabs/aws-fluent-plugin-kinesis riywo先生のKinesisプラグインを使う
22.
kinesisに送るコンフィグサンプル <match *.kinesis.**> @type kinesis_streams region
ap-northeast-1 stream_name qu-log-stream include_tag_key true include_time_key true flush_interval 1 buffer_chunk_limit 1m try_flush_interval 0.1 queued_chunk_flush_interval 0.01 num_threads 15 </match> ※Fluentd v0.12用です。すみません。ほんとすみません。
23.
lambda.py import logging import base64 import
json import datetime import os from elasticsearch import Elasticsearch, helpers def esformat(payloads): today = datetime.date.today().strftime("%Y.%m.%d") items = [] for payload in payloads: payload['@timestamp'] = payload['time'] tag = payload['tag'] payload.delete.time index = str(tag.split(".")[0]) + "-" + today es_type = tag.split(".")[-1] item = { "_index": index, "_type": es_type, "_source": payload } items.append(item) return items def lambda_handler(event, context): logger = logging.getLogger() logger.setLevel(logging.INFO) es = Elasticsearch([{"host": os.environ["ES_URL"],"port": os.environ["ES_PORT"]}]) try: payloads = [] for record in event['Records']: payload = json.loads(base64.b64decode(record["kinesis"]["data"])) payloads.append(payload) logger.info(payloads) item = esformat(payloads) helpers.bulk(es, item) except Exception as e: logger.error(e) raise e if __name__ == "__main__": event='' context='' lambda_handler(event, context)
24.
運用自動化のためにサーバーレスを使い、 幸せなエンジニアリングライフを送ろう
Download now