- 1. 【AWS】Lambda+Amazon SNSでSMSを送信する
- 2. EBSスナップショットの作成時間の統計方法
- 3. API Gateway・Lambda・DynamoDBで簡単にREST APIを作る
- 4. Rustに入門する〜6日目 始業・終業タイミングでSlackのステータスを変更する〜
- 5. AWS SAMのテンプレートではリソースごとに!Refと!GetAttの戻り値が違う
- 6. API Gateway で WebSocket を利用したAPI作成
- 7. AWS Config カスタムルールを使用してRDSを監視する
- 8. HTTP APIで動くPDFパース処理をServerless Frameworkで実装する
- 9. JSON データを AWS Lambda Tool の Debug時に使用する形式に変換する
- 10. ソラコムの【あのボタン】で勤怠打刻してみた(その2)
- 11. マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合
- 12. サーバーレスでヤフオクの在庫自動管理
- 13. AWS Amplify フレームワークの使い方Part11〜Function 権限管理編〜
- 14. 【VueSlsApp】サーバーレスなアーキテクチャの解説
- 15. ソラコムの【あのボタン】で勤怠打刻してみた(その1)
- 16. 【書評】「Severlessを支える技術 第2版」が控えめに言って神本でした #技術書典
- 17. AWSで発生したイベントを AWS Chatbot + Lambda で Slack にお手軽に通知する - ②EventBridge篇
- 18. Cloud 9 + lambdaでbot作成 ーpart3
- 19. AWSで発生したイベントを AWS Chatbot + Lambda で Slack にお手軽に通知する - ①準備篇
- 20. 海外お菓子の成分表示を自動翻訳してみた
【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` > 構築
ここでルート選択式を`$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認定ソリューションアーキテクト-アソシエイトの模擬試験を解きまくるか、先日お譲りいただいた大量の技術書典の本を乱読していました。
めちゃ大量に技術書が届く!
積読しないように溜まってる本たちを読んでおかなければ? https://t.co/wx7pYh2efz— gakuji tamaki (@gkzvoice) May 7, 2020
AWSで発生したイベントを AWS Chatbot + Lambda で Slack にお手軽に通知する - ②EventBridge篇
# はじめに
[**前回の記事**](https://qiita.com/eijikominami/items/47aa6be68d66f9986d56)では、AWS上の **システムやアプリケーションの健全性** や **可用性** を **追求するために**、AWSアカウント上で発生したさまざまなイベントを、**AWS Chatbot** と **AWS Lambda** を使って **お手軽にSlackに通知する** システムのデプロイ方法についてご説明しました。今回は本システムのうち、受信したイベントをAmazon SNSにルーティングする役割を担う、**Amazon EventBridgeの設定** についてご説明します。
## Slack が受信した通知の例
![](https://raw.githubusercontent.com/eijikominami/aws-cloudformation-templates/master/images/slack_chatbot_cloudwatch.png)## デプロイ
以下を実行することで、 **AWSで発生したイベ
Cloud 9 + lambdaでbot作成 ーpart3
#はじめに
本投稿は下記のパート3として、Lambda Functionから
S3オブジェクトへの読み書きを扱います。
・part1 : https://qiita.com/htanaka/items/a13fe6da23c3fcdc172a
・part2 : https://qiita.com/htanaka/items/2e6bdc3f54bdfdf542a9前提
・Cloud9環境は用意済み(part2)
・Cloud9からLambda Functionを実行する(part2)#boto3のインストール
LambdaではPython3を使用してコードを書いているため、
S3オブジェクトへの読み書きはAWS SDK(boto3)をして行う。・boto3のインストール
```
cd bottest
python -m pip install --target=./ boto3
```#S3の準備
今回はS3に置いたファイル(CSV)への書き込みを想定している。
そこで、S3作成のほか下記を用意する。```
bucket_name = 'bottest-20042
AWSで発生したイベントを AWS Chatbot + Lambda で Slack にお手軽に通知する - ①準備篇
# はじめに
AWSアカウントを作成したその日から、 **AWSアカウント上では様々なイベントが絶え間なく発生** します。これらのイベントを **適切にモニタリング** することで、AWS上の **システムやアプリケーションの健全性** や **可用性** を **追求することが可能**となります。
そこで、2020年4月22日に晴れてGAとなった ``AWS Chatbot`` と、**AWS Chatbot** 登場までは主流な実装方法であった``AWS Lambda`` とを組み合わせて、**AWSで発生したイベントをSlackに通知** してみたいと思います。
もちろん、チャットサービスを介して、**AWSで発生したイベントをリアルタイムにモニタリングすることが、全てのケースで正しいとは限りません**。また、そもそも下記でご紹介するイベントが、イベントの特性上、リアルタイムに通知されるべきではない可能性や、ケースによってはSlackというサービス自体が不適な場合もあるかもしれません。あくまで、AWSをモニタリングするための手法の1つとご理解ください。
# アーキテクチ
海外お菓子の成分表示を自動翻訳してみた
最近、仕事に忙殺され、趣味コーディングができていなかったので、手前味噌がてら久しぶりに投稿。
画像データに含まれるテキストデータを検出し、好きな言語に自動翻訳できるアプリを実装してみた。
外国人旅行者が増える中、分らない言語の看板や商品説明ページ、食品の成分表...などなど、写真で取れば後は自動で好きな言語に翻訳してくれれば少し幸せなことだと思う。今回は、AWSの画像認識API(Amazon Rekognition)/翻訳サービス(Amazon Translate)を使用し、以下のような構成で実装してみた。
####1. Lambda側実装
① Lambdaハンドラー実装```java:LambdaFunctionHandler.java
package com.amazonaw