2024年10月24日木曜日

Webex Bot 3:lambdaを定期実行する

 第3回目です。今回はlambdaを定期実行していきます。

定期実行したいlambdaの画面にあるトリガーを追加から、このlambdaのトリガを設定していきます。


トリガとしてはEventBrigdeを選択し、新しいルールを作成します。
ルール名や説明については、内容に合わせて設定してください。
スケジュール式とイベントパターンがありますが、今回は定期的に実行させるため、スケジュール式を選択します。
ここでcron式を記載しますが、一旦仮で入力しておきましょう。


保存してlambdaに戻ってから、設定>トリガから登録したトリガの詳細を見ていきます。

確認すると、日本時間(ローカルタイムゾーン)にすると、異なる日に時なっていますので修正します

編集ボタンから、数値を変更していきながら、自分が実行したいパターンになるように決めてください。

編集したら[次へ]、[ルールを更新]をしてください。
これにて定期的に実行されるようになります。


2024年10月16日水曜日

大学時代に身につけたいこと

 大学生活は4年間で長いようで短くもあります。この4年間は個人個人でまったく違ったものになります。充実した大学時代にしてもらいたいと思います。ここでは、学術的・社会的な面で話をしてみます。


(1) 体系的な学問として学修する

色々な授業を受けていて、それぞれの授業が難しいとそれで精一杯になってしまいます。大学の授業は授業同士が繋がっていて、カリキュラムツリーを形成しています。自分が目指したい分野にどのような学術的な要素があるかを確認して、大きな視野で授業の立ち位置を見ることができると、授業に対しての姿勢も変わってきます。授業がどのような意味を持っているかを考えてみるのも良い機会となります。先生に尋ねてみても、どの先生も学生が授業に関心持つことは嬉しいので、快く教えてくれると思います。


(2) 学問を使えるスキルを身につける

現代はAI・データサイエンスの技術が普及し、社会活動をするときに欠かせないツールとなってきました。授業で得られた知識を、実際に使えるスキルを持っておくと、理解の面でも実用面でも役に立ちます。一番身近なスキルとしては「エクセル」ではないかと思います。エクセルはPCにほとんどインストールされていますし、社会人になっても必須のツールです。このエクセルを使いこなして、データ整理、データ処理・集計、簡単な統計処理などできると、非常に重宝されます。スキルというとプログラミングが重視されますが、エクセルでも十分対応できる面があります。プログラミングが苦手という人は、代わりにExcelを使いこなせるだけで、活躍の場が広がります。

次にオススメのスキルはプログラミングになります。プログラミングはエクセルで可能な処理に加え、機械学習や最適化など、より高度な数学的な処理が可能です。エクセルで開けないような膨大なデータ量を持つファイルも、プログラムならば対応できます。プログラミングの良いところは、自分の考えた処理・システムをプログラミングで実現できるところだと思います。僕はハードウェアは苦手で、もの作りはできませんが、プログラミングでの色々な処理を行うことができ、それが研究に繋がっています。プログラミングは、僕自身の研究の幅を、格段に広げてくれたツールの一つです。


(3) 人間関係とコミュニケーション能力

一般的に就職活動には、コミュニケーション能力が大事と言われます。大学では、出身地、興味、年齢が違うなど様々な学生がいて、社会の一つの縮図のような集団です。この中での人間関係は、人にとっては、一生ものの宝になるかもしれません。このような話をしていても、僕自身は人間関係やコミュニケーションをとることが苦手な人間です。このような人間の場合、ある集団の枠に入り、立ち位置が作れれば、関係を形成しやすいと思います。具体的には、アルバイトで頼られる立場や、サークル活動で、役につくことでしょうか。人は立場ができれば、コミュニケーションをとる機会が自然に多くなり、慣れてきます。周りの人間の役に立つということを、良いバランスで考えることは、利他的な考え方となり、良い影響を与えると思います。


(4) チャレンジできる機会を使う

学生という立場は色々なことにチャレンジできる期間だと思います。学生の社会活動としては、サークル活動、アルバイトなどが代表例かと思いますが、それ以外にも学祭、資格試験、ハッカソンなど色々な活動があります。もちろん金銭的な負担はあるのですが、自身の範囲で、学生時代にしか出来ないことを1つでもチャレンジしてみると良いかと思います。

20代での活動が30代で活きてくるのではないかと思います。今の活動が次の10年に活きてくるのだと、僕自身今になって実感しています。


学生時代は長いようで短いものです。社会人になると自由度が極端に減るので、学生の間にチャレンジしてみるのをおすすめします。

2024年9月12日木曜日

Webex Bot 2:lambdaからメッセージを送る

 今回は第2回目。前回Postmanで実行した内容をlambdaで実行してみたいと思います。


1.lambdaを起動する
ここでは、AWS academyで実施していますが、通常のAWSでも問題ないです。
右上の[関数を作成]から、新しい関数を作成します。


関数名:何か名前をつけてください
ランタイム:Python3.10 ※layersに設定するファイルをcolab(python3.10)で作成するため
アクセス権限:aws academyの場合設定
詳細設定:関数URLを有効化 認証タイプはNONE
上記以外は、デフォルトのままでOKです。

2.コードを記載する
lambdaは、通常lambda_handler関数が実行されます。※変更も可能ですが、ここではこのまま行きます。
event内にpostされた際に送られてきた情報が入ってきます。
まずはpostされた内容に関係なく情報を送信するため、4行目以降にコードを書いていきます。

前回のPostmanで実行したメッセージ送信のコードをコピーして貼り付けます。
import json
import requests


def lambda_handler(event, context):
    # TODO implement
        
    url = "https://webexapis.com/v1/messages"
    
    payload = json.dumps({
      "roomId": "Y2lzY29zc*****kMGY5Njkw",
      "markdown": "こんにちは"
    })
    headers = {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer YmYyMGQ****8cf0-2917b2d84a0f'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

コードを変えると、デプロイを求められるので必ずデプロイしましょう。


実行するときは、[Test]から実行します。イベント情報の登録が必要になりますが、イベント名はなんでもOK。イベントJSON情報は変更せずにそのままで良いです。


このまま実行しても、No module named 'requests'のエラーが出ます。
そのためrequestsが読めるようにlayers登録をしていきます。

3. layersの作成
layersの登録は、Lambda内のレイヤーから実施していきます。
右上の[レイヤーを作成]から登録します。
名前はなんでもOK
requestsモジュールの入ったzipファイルについては下記のコードから作成して、zipファイルをあげていきます。
!pip install -t /content/drive/MyDrive/Layers/requests/python requests

!find /content/drive/MyDrive/Layers/requests/python -name "*.pyc" -exec rm -f {} \;
!find /content/drive/MyDrive/Layers/requests/python -name "*.txt" -exec rm -f {} \;

!rm -rf /content/drive/MyDrive/Layers/requests/python/tests
!rm -rf /content/drive/MyDrive/Layers/requests/python/__pycache__
!rm -rf /content/drive/MyDrive/Layers/requests/python/*/tests
!rm -rf /content/drive/MyDrive/Layers/requests/python/*/__pycache__

!cd /content/drive/MyDrive/Layers/requests && zip -r /content/drive/MyDrive/Layers/requests.zip .


4.layersの登録
lambdaの関数に戻って、1番下のレイヤーの追加から、先ほど追加したレイヤーを追加します。
カスタムレイヤーから選択してください


5.実行確認
これで実行すると問題なく実行できました


以上




2024年9月3日火曜日

Webex Bot 1:Botからメッセージを送る(Postman)

 1.Webexアカウントを作成
Webexアカウントがない場合は、作成。 
https://web.webex.com/sign-in


2.Botを作成
https://developer.webex.com/docs/bots
Create a Botから作成


Botを作成すると、access tokenが表示されます。必ず、tokenは保存しておいてください。


3.Botを追加
指定されたスペースに、Botを直接検索して追加する
連絡先>ユーザを追加でusernameを入れる



4.メッセージ送信

4.1room Idの取得
メッセージ送信には、room Idが必要になるため、room Idを取得するAPIを実行
List Rooms:https://developer.webex.com/docs/api/v1/rooms/list-rooms

ここで表示されるIdがroom Idです。



4.2 メッセージ送信
メッセージ送信のAPIを実行
Create a Message:https://developer.webex.com/docs/api/v1/messages/create-a-message



実行されると、このようにメッセージが送られます。