臼田佳祐(130)25この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。こんにちは、臼田です。皆さん、Lambdaしてますか?今回はLambdaでPython3.6を利用してツイッターにTweetしてみます。Listのアップデート確認ですが、Tweetの機能だけなら汎用的に利用できると思うので、汎用的な手順として書いていきます。Twitterでアプリケーションを登録ツイッターへの投稿には、利用するアカウントでアプリケーションを作成して、アプリケーション経由でAPIをリクエストする必要があります。アプリケーション作成ツイートしたいアカウントでログインして、TwitterのDeveloperサイトにアクセスします。apps」からアプリケーションの管理ページへ移動します。App」をクリックしてアプリケーションを作成します。application」をクリックします。これでアプリケーションの作成が完了しました。Secret)」を控えます。token」をクリックします。Secret」を控えます。これでTwitter側の準備は完了です。スクリプト作成ローカル環境でスクリプトを作成します。localで個別の環境を割り当てています。3.6.1パッケージがglobalの環境と混ざらないように分けたい場合には、下記を参考に専用の環境を作成することをおすすめします。APIを利用するには、OAuth2.0を利用した認可が必要になります。APIに最適化したパッケージがいくつかあるのでそちらを利用します。今回は、Tweepyを利用してみます。今回は下記のように作成しました。{})本当はエラー処理とか入れたほうがいいですが、とりあえずこれで動きます。Key等はハードコーディングしないように環境変数から取るようにしています。Frameworkの中で値を管理できます。tweetする内容は引数で取るようにしています。末尾はローカルのターミナルから実行する際に引数をlambda_handlerに渡して実行するように指定しています。環境変数の設定ローカルでテストするために環境変数の設定をします。試しにローカルから実行してみます。メッセージはjsonの"message"キーに入れて渡します。local"}'無事投稿できました。Frameworkを利用してLambdaにデプロイできるようにします。Frameworkの導入については下記をご参考にして下さい。今回のバージョン(1.18.0)ではnode.jsは「v6.5.0」が求められます。Frameworkで簡単Lambda開発環境の構築serverless-python-requirementsの導入LambdaでPythonの外部モジュールを利用する場合には、Zipでまとめてアップロードする必要がありますが、serverless-python-requirementsというプラグインを利用すると、デプロイ時に自動的に必要なプラグインをまとめてアップロードしてくれます。詳しくは下記を参照して下さい。私の環境は以下のようになっています。Frameworkでサービスを作成します。既存のフォルダで作成するので下記のようになります。tweetserverless.ymlを変更します。pythonpluginとしてserverless-python-requirementsを読み込ませています。関数名を適切に変更し、「environment」要素で環境変数を定義しています。custom部分は次で説明します。index.jsの編集serverless-python-requirementsの2.4.1では、残念ながらpyenv環境での実行に対応してません。具体的には、serverless.ymlで設定したprovicer.runtimeの値をpythonのエイリアスとして使用しようとします。したがって、LambdaでPython3.6を利用するには、環境上のPythonもpython3.6で呼び出されないとserverless-python-requirementsの2.4.1では正常に動作しません。対応策として、実際に./node_modules/serverless-python-requirements/index.jsでprovicer.runtimeを読み込む部分(80行目ぐらい)を下記のように変更します。this.serverless.service.custom.pythonRequirements.pythonBin;これで、serverless.ymlで追記したcustomの設定を読み込むようになります。※pyenvで動作しない仕様についてはserverless-python-requirementsに修正を依頼していますrequirements.txtの作成serverless-python-requirementsでまとめる外部モジュールを指定します。-vでデプロイします。デプロイが完了するとマネジメントコンソールのLambdaの画面で作成されていることが確認できます。localコマンドで動作を確認してもいいですが、今回はマネジメントコンソールからテストしてみます。テストの設定から下記のようにmessageを設定します。実行すると、投稿が確認できました。さいごにこれで、LambdaのPython3.6からツイッターにtweetできました。serverless-python-requirementsの問題は少しありましたが、それ以外は比較的簡単に実行できる手順かと思います。Functionsでこれまで作成したLambdaをつなげてみます。1,301,458AWSとセキュリティを頑張る。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。2020年03月11日3【3/11(水)リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。kaji896AWSを全く知らない状態で入社して5年が経過、中途採用のAWSエンジニアの育成リーダーを1年間担当しています。そんな中で教える機会が増えました。自分がAWSに関するスキルアップために実践したことについてまとめてみました。どなたかのお役に立てれれば光栄です。濱田孝治437re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。泰雨132皆さん、こんにちは。コンサル部のテウです。2020年もあっという間に2ヶ月が経ちました。今年こそ機械学習に入門しようぜ!!って決心された方もいらっしゃると思います。入門できる方法をご紹介させて頂きたいと思います。本記事の手順通り、ランチタイム等の時間を活かして、手軽に入門してみてください。kaji896AWSを全く知らない状態で入社して5年が経過、中途採用のAWSエンジニアの育成リーダーを1年間担当しています。そんな中で教える機会が増えました。自分がAWSに関するスキルアップために実践したことについてまとめてみました。どなたかのお役に立てれれば光栄です。濱田孝治437re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。夏目祐樹414こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐296ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。