- 1. AWS Lambda 待望の RDS Proxy を CloudFormation で作ってみる
- 2. 【Python】Lambdaで定期的にCloudWatch LogsからS3へエクスポートする
- 3. Private subnet内でNAT gatewayを介さずにlambdaからlambdaを呼び出す
- 4. CodeCommitにcommit/pushしたらLambda経由でSlackにcommentつき通知を飛ばす
- 5. サーバレスアーキテクチャにおけるアクセス制御について
- 6. S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする
- 7. AWSでRESTで送信したものをWebSocketでリアルタイムに受け取るサーバレスシステム
- 8. DynamoDB Streamを用いて、日付のパラメータを与えながらLambdaを繰り返し呼び出す
- 9. vue.jsでzlib.jsを利用して圧縮データをPOSTしてみた
- 10. RedshiftでUNLOADしたgzipファイルをLambdaのPythonで処理をして再びgzipしてS3へアップする
- 11. Lambdaをローカル実行したときにInvalidSignatureException: Signature expired:が出る件
- 12. Spring Cloud FunctionでAmazon API Gatewayのプロキシ統合なLambda関数をサクッと書いてみる
- 13. AWS LambdaでSVGの日本語を文字化けさせずにラスタライズ変換する
- 14. 令和の Lambda x RDS
- 15. SAMでS3にCSVファイルアップロードをトリガーにDynamoDBへの登録処理の作成 Lambdaの関数部分
- 16. API Gateway + LambdaでS3にある画像を表示
- 17. 【AWS;Lambda入門】第三弾;Linebotなじゃんけんゲームで遊ぶ♬
- 18. S3に保存されたwavファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする
- 19. AWS Lambda から Amazon EFS へのアクセス
- 20. AWS Lambdaのリソースベースポリシーのサイズが上限に達して困った話
AWS Lambda 待望の RDS Proxy を CloudFormation で作ってみる
2020/06/30、RDS Proxy がプレビューを終了し、ついに GA (正式リリース) となったことが[発表](https://aws.amazon.com/jp/blogs/aws/amazon-rds-proxy-now-generally-available/)されました。
これまでアンチパターンと言われていた、AWS Lambda と RDS との接続について解決策のひとつとなることから、サーバーレス界隈では待望の機能であったと思います。
この記事では、CloudFormation でこの RDS Proxy を作ってみたいと思います。が、その前に、RDS Proxy について少し振り返ってみたいと思います。
# RDS Proxy は AWS Lambda にとって何が嬉しいのか
AWS Lambda はいわゆるサーバーレスのサービスです。そのため、常在的に起動しているリソースは基本的にありません。なんらかのイベントが発生したことを契機に、Lambda 上で実装したアプリケーションを動作させるためのリソースがスピンアップするので、例えば HTTP 要求が着信し
【Python】Lambdaで定期的にCloudWatch LogsからS3へエクスポートする
[【AWS】CloudFormationでS3バケット作成とライフサイクルルールを設定する](https://qiita.com/homines22/items/e28e8ec51ca562effc6e) で作成したS3にCloudWatch Logsに保存しているログを定期的にエクスポートするLambdaをPythonで開発したお話です。
簡単に試せるようにGitHubリポジトリを作成しておきました -> [homoluctus/lambda-cwlogs-s3](https://github.com/homoluctus/lambda-cwlogs-s3)
# 要件
– 毎日JST14:00に前日のログをエクスポート
– 複数のロググループをエクスポート可能# 開発
## 言語
– Python3.8
## 開発ライブラリ
– isort
– mypy
– flake8
– autopep8## 本番ライブラリ
– boto3
– boto3-stubs (type annotation用)## デプロイメントツール
– Serverless Fram
Private subnet内でNAT gatewayを介さずにlambdaからlambdaを呼び出す
###はじめに
だいぶ特定領域の話になりますがとあるプロダクト開発にあたってちょっとした知見を得たので後学のために残しておきます。###構成
まずは今回の構成を一部分だけピックアップしたものが以下のものになります。
![qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53020/b3bb5d94-27c4-a3d5-75a7-3e672c810782.png)
要件としては、プライベートサブネット内で動いているサービス(今回であればECS上で動かしています)からマイクロサービスとして切り出した同じくプライベートサブネット内のlambdaを呼び出し(invoke)、さらにそのlambdaから別のlambdaを呼び出す。
ただし、lambdaからVPC内のリソースにアクセスするためにlambdaをVPC内に置く必要があると言った具合です。
この場合同じVPC内なため、セキュリティグループを適切に設定すればECSからlambdaを呼び出すことはうまくいきますが、lambdaから別のlam
CodeCommitにcommit/pushしたらLambda経由でSlackにcommentつき通知を飛ばす
AWS CodeCommit上で管理しているリポジトリに、誰かがcommit/pushしたらSlackで通知を受け取りたいと思って試行錯誤したときのメモになります。Lamda関数はNode.jsで記述しています。
# スクリーンショット
※ アイコンとCodeCommitの太字はSlack Incomming Webhookのカスタマイズで変更しています。
# 前置き
* CodeCommitやLamda、Slackの細かい話は書きません。
* Lamda関数のNode.jsのサンプルコードや注意点だけを書きます。
* 以下はすべてAWS Console上からの操作です。# 処理の流れ
CodeCommit → トリガー → Lambda → Slack Inco
サーバレスアーキテクチャにおけるアクセス制御について
# はじめに
Webサービスには、認証・認可が必要な場合が多く、それをアプリで実現しようとすると手間が掛かります。
サーバレスアーキテクチャでは、認証・認可をAWSのサービスをうまく使って実装することで、開発にかかる期間を短縮できます。
また、IDやパスワード忘れなどのよくある問い合わせにも、一切コードを書かずに対応できる仕組みがあります。# 認証と認可
混同しがちなのですが、認証と認可を改めて確認してください。
よくわかる認証と認可
https://dev.classmethod.jp/articles/authentication-and-authorization/## 認証
通信の相手が誰(何)であるかを確認すること。
## 認可
とある特定の条件に対して、リソースアクセスの権限を与えること。
# AWSサービスそれぞれの役割
API Gateway、Cognito、Lambdaの3つの役割を記載します。
– API Gatewayは、アプリケーションがバックエンドサービスからのデータ、ビジネスロジック、機能にアクセスするための「フロントドア」とし
S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする
# S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする
## はじめに
前回の[S3に保存されたwavファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする](https://qiita.com/haruhiko28/items/55cc892eb2c41f8f12cf)に引き続き、
今回はMP3ファイルを対象に、S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする手順をまとめます。重複する点が非常に多いので、相違点になるコードの部分だけ([前回](https://qiita.com/haruhiko28/items/55cc892eb2c41f8f12cf)でいう5-9のみ)ご紹介します。
## Code
実行するコードは以下になります。“`javascript
const AWS = require(‘aws-sdk’);
const speech = require(‘@googl
AWSでRESTで送信したものをWebSocketでリアルタイムに受け取るサーバレスシステム
#はじめに
オンラインイベントで応援ボタンなど押した時に、現地で一方向の情報として受信し、それをトリガーにエフェクトなど表示したいことがあります。
方法としてはSocket通信や、MQTTなどを利用したり、ngrokなどのローカル環境をネット上で受けれるようにするサービスを使うなどあります。
ただ、クライアントが数百人など多数の環境になるとソケットを大量に張る必要がある、サービスの上限制限や毎回URLが変わるなど運用が面倒なことなどが考えられます。
今回はそれらを回避しつつ、サーバレス環境でコストも少なくしたシステムを作ってみます。#全体構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58795/13a3d737-ea38-411f-c338-5e2f3abfc591.png)送信する方はRESTで送ることで接続数に依存せずコストを下げることが可能です。
特にいつ押されるかわからないため、無駄にSocketなどを張って時間課金のコストを増やすということをしないようにします。
DynamoDB Streamを用いて、日付のパラメータを与えながらLambdaを繰り返し呼び出す
## はじめに
パラメータを変えながらLambdaを繰り返し実行したくてDynamoDB Streamを使いました。参考までにと思い投稿してみました。この記事ではAWS LambdaからDynamoDBに日付などの数字を書き込んだのち、DynamoDB Streamを用いて同じLambda関数を呼び出し、書き込んだ日付について処理を行う実装をします。
ランタイムはPython3.8を選択しています。
Lambdaの設定で「ハンドラ」は「lambda_function.lambda_handler」であるものとし、
LambdaのロールにはDynamoDBFullAccess権限が付与されています。### この方法を使ってよかったこと
自分の場合はS3でyyyymmddフォルダに入ったファイルを処理する必要に迫られましたが、
Lambdaの性質上+自分の技能上の都合で、「どのファイルを処理するか/したか」をどこかに持たないと再実行は実装できませんでした。が、大量のファイル名をリクエストに手書きする訳にもいかず・・・そんな悩みをここに書いてある方法で解決することが出来ました。
vue.jsでzlib.jsを利用して圧縮データをPOSTしてみた
## 問題
aws lambdaへCSVファイルをPOSTする際にペイロードが6MBに制限されているため、クライアント側で圧縮する方法を調査してみました。
lambdaのペイロード制限に関しては下記に記載があります。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-limits.html## 事前準備
zlibjsというライブラリを利用するため、下記のコマンドでインストールを行います。
`npm i zlibjs –save`## 実装例
“`html