Lambda関連のことを調べてみた2020年05月17日

Lambda関連のことを調べてみた2020年05月17日
目次

【AWS】Lambda+Amazon SNSでSMSを送信する

#やりたいこと
AWS LambdakからAmazon SNSを利用して、任意の電話番号あてにSMSを送信します。

#Amazon SNSって?
Amazon Simple Notification Service
任意の通知をいろんなプロトコルで送信できるよ。
事前にトピックっていう通知カテゴリみたいなの作って、そいつに紐づくサブスクリプションを作成しておくと、
トピックが叩かれたときに紐づいているサブスクリプションにメッセージが送信されるよ。
で認識合ってる?

| プロトコル/トランスポート |
|:-:|
| HTTP/HTTPS |
| Email |
| Email-JSON |
| Amazon SQS |
| AWS Lambda |
| Platform application endpoint |
| SMS |

[公式の概要](https://aws.amazon.com/jp/sns/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort

元記事を表示

EBSスナップショットの作成時間の統計方法

AMIの作成時間を測定したいので、色々調べて見た。

1. AWSにはAMI作成に関してイベントが提供なし
2. スナップショットを作成イベント (createSnapshots)より時間を測定できれば、それでもOK、SnapshotからAMIを作成の時間を短いですから

## アーキテクチャ
![file](https://cloud5.jp/wp-content/uploads/2020/05/image-1589532818904.png)

下記はcreateSnapshotsイベントから着手、1から説明する

## SNSトピックとサブスクリプション作成

snapshot-topic トピック作成
![file](https://cloud5.jp/wp-content/uploads/2020/05/image-1589520133496.png)
ARNをメモしておく(arn:aws:sns:ap-northeast-1:123456789012:snapshot-topic)

受信メールアドレスを記入して、サブスクリプション作成
![file](https://cl

元記事を表示

API Gateway・Lambda・DynamoDBで簡単にREST APIを作る

大学時代の友人3人とWEBサービス開発記録シリーズ第4弾。

今回作ろうとしているWEBサービスの構成([こちらの記事](https://qiita.com/charatori/items/d4129cbdc8de143dcf17)で紹介しています)における
バックエンド側(API Gateway+Lambda+DynamoDB)のAPI構築方法についてまとめたいと思います。

## 前提
* API Gateway
* エンドポイントタイプ:リージョン
* APIキー:必須
* Lambda
* ランタイム:Python 3.8

## この記事のスコープ
### 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241764/dc3a0b3b-3740-dace-f64e-48b988392793.png)

本記事では、下記2点の説明をしたいと思います。

1. 上記構成図のAPI Gateway、Lambda、DynamoDB部分について現状の設定内容

元記事を表示

Rustに入門する〜6日目 始業・終業タイミングでSlackのステータスを変更する〜

# 初めに

前回の続きです。
少し期間が空いたのは色々あった…というよりサボっていた面が多いです。
少しコードを見るとdocstringがないとか抜きにしてあまりにもコードがひどいことに気づきました(commitに[WIP]を書くレベルです)。
…がこれに手をつけてるといつになるんだという形でしたので、
その点も踏まえて記事を書こうと思います。

こんな内容ですが一旦最終日予定です。

本日の内容は以下です。

– SAMのテンプレートにスケジューラを追加する
– 昨日までのコードを結合して表題の機能を実現する
– 平日は始業・終業タイミングでステータスを変更
– カレンダーの予定を見て「休」を含む終日スケジュールがあれば上記より優先して変更
– 有給・半休等のケースを意図していますが条件がゆるすぎるのでそのうち見直し予定です。
– 土日祝日は朝ステータスを変更
– 祝日のデータを取得する
– ユーザのスケジュールとは別に持ってるらしいので別途取得します。

# SAMのテンプレートにスケジューラーを組み込む

SAMの

元記事を表示

AWS SAMのテンプレートではリソースごとに!Refと!GetAttの戻り値が違う

# はじめに
この記事では、AWS SAMテンプレートでAWS Lambda、AmazonAPI Gateway、AmazonSNSを使用したサーバレスアプリケーションを作ろうとしたときに躓いたポイントを紹介します。
# AWS SAM テンプレートとは
AWS SAMのテンプレートはAWS CloudFormation テンプレートの拡張で基本的にはCloudFormationのテンプレートの書き方と同じですがSAM特有の便利なコンポーネントも追加されています。
もっと詳しく知りたい方はこちらを参考にしてみてください。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html
#CloudFormationの組み込み関数
CloudFormationにはスタックの管理に便利な組み込み関数があります。ここではそれらの関数のうち2つを紹介します。便利な使い方としては、実行するまでわからない値(SAMテンプレートで作成したLambda関数のAmazonリソースネーム (ARN

元記事を表示

API Gateway で WebSocket を利用したAPI作成

# はじめに
streampackチームのminsuです。
先日はステッパーを購入してとうとう室内で有酸素運動までできるようになり、接触10割減、ビタミンD未生成生活が捗っております。

今回は最近よく使っているサーバーレスアプリケーションの理解を深めるために API Gateway で Websocket API を構築して、よくあるチャット機能を実装してみます。
構成は API Gateway + Lambda + DynamoDB です。

## API Gateway
### 作成
APIタイプを選択 > `WebSocket API` > 構築
スクリーンショット 2020-05-15 11.03.13.png
ここでルート選択式を`$request.body.action`に設定しています。
クライアン

元記事を表示

AWS Config カスタムルールを使用してRDSを監視する

# 概要

AWS Config カスタムルールを使用してRDSを監視したい
更に言えば特定のインスタンスタイプ以外は違反としたい

# 前提

## AWS Config有効化

こちらを参考にしました。

[CloudFormationによるAWS Configの有効化 – Qiita](https://qiita.com/akashima/items/2cde33863c923c41ed8f)

# 本題

## lambda関数

blueprintのconfig-rule-change-triggeredをベースに判定部分を修正します。

“`typescript

function evaluateChangeNotificationCompliance(
configurationItem: {
configuration: {
dBInstanceClass: string | null;
readReplicaSourceDBInstanceIdentifier: string | null;
};
resourc

元記事を表示

HTTP APIで動くPDFパース処理をServerless Frameworkで実装する

# やりたいこと
Googleドライブ上にあるPDFをテキストに変換して、Webアプリケーションが利用しているAWS Elasticsearch Serviceのインデックスにそのテキストを登録したい。

# 方針
– PDFパース処理がそこそこ負荷が高い処理であることから、サーバーではなくAWS Lambdaで処理を行う
– WebアプリケーションからHTTP APIを呼び出してLambdaを実行する
– API Gatewayの内、REST APIではなく、機能が制限されているが低コストでシンプルなHTTP APIを利用
– デプロイを簡易にするためにserverless frameworkを利用する
– PDFのパース処理のドキュメントが豊富なことからPythonを利用する

### 参考
– [Serverless Framework](https://serverless.com/)
– [PyDrive](https://pythonhosted.org/PyDrive/)
– [Securing AWS HTTP APIs with JWT Authorizers](

元記事を表示

JSON データを AWS Lambda Tool の Debug時に使用する形式に変換する

#

変換するアプリを Angular9 を使って作成してみました
https://sasaco.github.io/JsonToAwsLambdaToolsDebug/

ソースコードは
https://github.com/sasaco/JsonToAwsLambdaToolsDebug

## アプリ作成手順

“`bash

PS > ng new json-to-lambda-debug

? Would you like to add Angular routing? No
? Which stylesheet format would you like to use? SCSS [ https://sass-lang.com/documentation/syntax#scss ]
CREATE json-to-lambda-debug/angular.json (3766 bytes)
CREATE json-to-lambda-debug/package.json (1296 bytes)

CREATE json-to-la

元記事を表示

ソラコムの【あのボタン】で勤怠打刻してみた(その2)

前回はlambdaを使ってSlackに出退勤を報告する部分を作成しました。この時点でもう本体はできましたが、後はこのlambdaのトリガーになる部分を用意するだけです。というわけで今回はSORACOM LTE-M Buttonを設定してlambdaを設定するところをやっていきます。前回の記事は以下のリンクから御覧ください。lambdaの実装やSlackの設定はこちらに書いています。
[ソラコムの【あのボタン】で勤怠打刻してみた(その1)](https://qiita.com/K_M95/items/854cd0c498792574c8a6)

## LTE-M ButtonをSORACOMに登録する(無料枠を超えた方向け)
LTE-M Buttonは購入すると使用開始から1年間、もしくは1500回ボタンを押すことが出来る無料枠がついてきますが、僕はすでに使い始めてから1年が経過したので、SORACOMにボタンを登録する必要があります。[こちら](https://dev.soracom.io/jp/start/aws_button_registration/)を参考にボタンを登録して

元記事を表示

マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合

# マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合

便利なツールは以下の通り

* DAZN Lambda Powertools

関連性のあるLambda同士を紐づけるIDをログに出力してくれます。
LambdaからLambdaの呼び出しが複雑になる場合に、関連性のあるログを一括して検索した場合に活用できます。

参考URL:https://dev.classmethod.jp/articles/dazn-lambda-powertools/

* AWS X-Ray

AWSのサービス(Lambdaもできる)の関連性を可視化でき、分析もできます。
※画面イメージ的には、JP1とか、Jenkinsのパイプライン的な感じ。Lambdaのジョブフローが見える感じ。
※内部的には、上記で紹介した「DAZN Lambda Powertools」と同じようなことしてます。

参考URL:https://docs.aws.amazon.com/xray/index.html

DAZN Lambda Powertools&AWS X-Rayどち

元記事を表示

サーバーレスでヤフオクの在庫自動管理

#はじめに
ヤフオクでの出品物の在庫管理を任されたのでサーバーレスで自動化しました。
流れとしては、出品→在庫へ登録→csvに出力というものです。
最終的に印刷して保存するためにエクセルで開けるようにcsvに出力します。
AWS Lambdaで自動でこの流れを実行できるようにします。

#TL;DR
1. pythonでスクレイピング。DynamoDBに登録
1. DynamoDBのデータを元にcsv生成、AWS S3にアップロード
1. URLにアクセスすると最新版のデータが取得できる  

この流れで実行されます。

今回のリポジトリ
[ramo798/Inventory_control](https://github.com/ramo798/Inventory_control)

![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285408/0461f360-624d-d64e-b5d1-4c4bae866688.png)

#ポイント
##boto3でのupd

元記事を表示

AWS Amplify フレームワークの使い方Part11〜Function 権限管理編〜

# はじめに
以前書いた記事では、functionのリポジトリで管理できて素晴らしい、という内容を書きましたが、使えば使うほど、このfunctionの機能は素晴らしいことを感じている今日このごろです。

今回は、権限管理について書いていきます。

そもそもAmplifyフレームワークのfunction機能では何ができるの?という方は、まずこの記事を読んでみてください。
[AWS Amplify フレームワークの使い方Part9〜Function編〜](https://qiita.com/too/items/d2732b3ec625011f4567)

# 権限管理機能
AWSの素晴らしい機能の1つといえば、そう、IAMでの権限管理ですね。細かく権限管理ができる一方で、よくわからないからとりあえずadmin権限を与えている、なんてことはよくある話かと思います。

ただ、本番環境をリリースするにあたっては、IAM設定は必須でしょう。だだ、なかなかそれを1つずつ自分で設定するのって大変なんですよね、、、。

そんなお困りの方に、Amplify!!
そんな心配を見事に簡単に解決してくれます。

元記事を表示

【VueSlsApp】サーバーレスなアーキテクチャの解説

注:本記事はnote記事の転載です。内容の更新があった場合noteのほうを更新します。qiita記事が古くなってきている場合、noteもご確認ください。

https://note.com/thiroyoshi/n/n2560c21cd6b9

こんにちは。thiroyoshiです。

今回はVueSlsAppのアーキテクチャについて解説したいと思います。
コードは書けるけどアーキテクチャ図は書けないとか、マネージドサービス同士が実際どうつながっているのかよくわかっていない、という人に特に知ってもらいたい内容です。

アプリの紹介記事は以下。
https://note.com/thiroyoshi/n/na16112b4ec1b

デプロイしてあるものは、以下から実際に触ってみてもらえます。
https://vueslsapp.thiroyoshi.com/

ソースは以下で公開しています。
https://github.com/thiroyoshi/vueslsapp

## サーバーレスなアーキテクチャがどう繋がっているか理解する

サーバーレスアーキテクチャのアプリケー

元記事を表示

ソラコムの【あのボタン】で勤怠打刻してみた(その1)

みなさん、在宅勤務やってますか?そして在宅勤務の打刻忘れてませんか?僕は忘れっぽいんですが、在宅勤務の打刻だけは忘れてません。が、打刻をしたあとslackのスレッドにも業務を開始する旨を開始時間と一緒に投稿する必要があります。そして退勤するときも同様に打刻した後に同じスレッドに退勤時間を投稿する必要があります。**これがまあ面倒くさいんですよ。**面倒くさいことはなんとかして解決する、それがエンジニアってもんじゃないですか(偏見)

というわけで、今回はこのSlackへの投稿を自動化してみたいと思います。
※今回はプライベートのテスト環境でためしてます。

## 今回使うもの
さて何をつかってこれを自動化しようか考えたときに机の上にあるものを見つけました。
![IMG_20200511_215729.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/170520/2360a460-b31c-276c-1c93-acb1ac2c0ef4.jpeg)
そうです、以前Soracom UGのハンズオンで買った**あ

元記事を表示

【書評】「Severlessを支える技術 第2版」が控えめに言って神本でした #技術書典

## 0.はじめに
こんにちは。
エンジニアしている @gkzz です。
コロナやら、外出は自粛と今年のGWは例年と過ごし方が少し変わった方もいらっしゃるのではないでしょうか。

私はひたすら、AWS認定ソリューションアーキテクト-アソシエイトの模擬試験を解きまくるか、先日お譲りいただいた大量の技術書典の本を乱読していました。