Rocket.ChatにAWS Lambda(Python)から投稿する
2020/06/17
Rocket.ChatにAPIで投稿するテスト(Postman)をやってみて、使い方がわかってきましたので、AWS Lambda PythonでRocket.Chatに投稿してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import logging import json import traceback import os import requests logger = logging.getLogger() logger.setLevel(logging.DEBUG) token = os.environ.get('rocket_token', None) user_id = os.environ.get('rocket_user_id', None) room_id = os.environ.get('rocket_room_id', None) url = os.environ.get('rocket_url', None) def lambda_handler(event, context): logger.debug(event) try: headers = { 'X-Auth-Token': token, 'X-User-Id': user_id, 'Content-Type': 'application/json' } for record in event['Records']: message = json.loads(record['Message']) project_id = message['project_id'] description = message['detail'] message = { 'message': { 'rid': room_id, 'msg': description } } response = requests.post( url, data=json.dumps(message), headers=headers ) logger.debug(response.text) except: logger.error(traceback.format_exc()) |
POSTした後のレスポンスでは、メッセージIDとかも返ってくるので、投稿したトピックのレスポンスとかも取得して、いろいろできそうです。
トークンとか環境変数にしています。
そのうち、SecretsManagerにします。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
AWS Organizationsのルートユーザー管理(Root user management)でメンバーアカウントのルートユーザー認証を無効にしました
2024年11月発表のAWS Organizations を使用するお客様のため …
-
Cloud9でSAMローカルテスト
せっかくテストするので、Amazon CloudSearchからAmazon E …
-
Amazon CloudSearchからAmazon Elasticsearch Serviceへ変えました
全文検索をする必要がありまして、本当はCloudSearchを使い続けたいのです …
-
東京リージョンの1つのAZ(apne1-az2)でt3.nanoスポットインスタンスが拒否されちゃいました
拒否されちゃいました ちょっとした検証をしようとしてて、t3.nanoのスポット …
-
CloudFrontのカスタムヘッダーがなければALBのルーティングで403レスポンスを返す
大阪リージョンにはWAFがまだないです(2021年4月現在) 今のこのブログの構 …
-
VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した
2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …
-
Organizations対応のAWS CloudTrailのAthenaテーブルでPartition Projectionを使用しました
パーティション向けのAlterテーブルの定期実行が面倒だと思っていたら、Part …
-
Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました
2023/2/17のアップデートAWS Systems Manager をアカウ …
-
Route 53 の加重ラウンドロビンルーティングでロードバランサー
Route 53の加重ラウンドロビンで両方1に設定してみました。 上図はイメージ …