Lambda関連のことを調べてみた2021年12月08日

Lambda関連のことを調べてみた2021年12月08日
目次

Lambda から SORACOM 経由で Raspberry Pi の LED を操作する 3 つのパターン

これは、[SORACOM Advent Calendar 2021](https://qiita.com/advent-calendar/2021/soracom) の 8 日目の記事です。

## 作った物

こんなものを、3 つのパターンで作ってみた記事です。

本当は LINE の連携部分から解説したかったのですが、かなり分量が多くなってしまって、AWS Lambda (以後、Lambda) から Raspberry Pi を操作するところに限定した記事にしてみました。LINE 部分はまた追ってブログにしたいと思います。

## 構成

以下のような 3 つの構成で、どのように Lambda から Raspberry Pi を操作するか紹介しようと思います。

![summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125247/9ff11204-16ee-61e

元記事を表示

TerraformでやってきたLambdaデプロイの試行錯誤の歴史と行き着いた雑な運用

この記事は[Wanoグループ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/wano-group) / 7日目の記事になります。。

terraformユーザーの皆様は Lambda や StepFunctions などのデプロイどうしてますか?
プロジェクト構成によっていろんなパターンがあるかと思いますが、少し前までは結構悩んでるユーザーが多かったように記憶しています。
**特に弊社ではデプロイ間の依存や順番、リポジトリ構成の都合で大いに悩みました。**
弊社でいままで使用/検討したものを振り返りつつ、プロジェクトで固まってきた運用を紹介します。

# いままでにやってきた/検討したデプロイ

現行関わっているプロジェクトの特徴として、**アプリ/ビジネスロジック系リポジトリとIaC専用リポジトリが別である** ということがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85375/88e0

元記事を表示

xxxというエラーはxxxすると直ります←大好き

# はじめに
皆様。エラーメッセージでググるのは好きでしょうか?私は大好きです:innocent:
見覚えのないエラーに直面したら毎回コピペでぐぐっています。そして割とよく解決してもらっています。
あまつさえ、自分の境遇そのものの記事を見つけた時は感動のあまり目頭が熱くなり、性善説を唱えたくなります。

少しでも恩返しをしたいので、僭越ながら私もエラーメッセージ軸の記事を書かせていただきます:bow_tone1:

もし共感した方や、この記事が役立った方がいたら:heart_eyes:LGTM:heart_eyes:をいただけたら嬉しいです。
~~会社のアドベントカレンダーなので褒めてもらえます~~

## ターゲット(エラーメッセージとググりがち文言)
*Nuxt.js Audio 読み込めない*
*”Module parse failed: Unexpected character”*
*[object%20Module]*
 └ **[:point_right: Nuxt.jsでAudio読み込みに失敗](#nuxtjsでaudio読み込みに失敗)**

*Amazon Tran

元記事を表示

SAM Accelerateだと!?SAM AccelerateをCloud9を一から構築して試す

#はじめに
皆さん、こちらの記事はご覧になりましたか?私も記事が出た当日に見てはいたのですが、同僚にも「めっちゃ速いよ!」と言われたのですが、スルーしてました。 

https://aws.amazon.com/jp/about-aws/whats-new/2021/10/aws-sam-accelerate-test-code-changes-cloud/

でも、百聞は一見に如かずなんですよね。

[re:Invent 2021](https://virtual.reinvent.awsevents.com/)のLeadership SessionであるAccelerating your serverless journey with AWS LambdaでSAM AccelerateとStep Functionsのデモが披露されていたのですが、それを見て、

「あ、すぐ使いたい」と思って、使ってみたのです。

ということで、今日は、[こちらのブログ](https://aws.amazon.com/jp/blogs/compute/accelerating-serverless-d

元記事を表示

Lambda + Go + terraformでAWSの料金をSlack通知してみた

## はじめに

この記事は[mixiアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/mixi) 6日目の記事です。
みなさまはAWSで運用しているサービスに毎月どれくらいのコストがかかっているか、サービスのリソースごとにどれくらいの料金がかかっているかを確認していますでしょうか。
今回は、AWSの料金を毎日Slackに通知するシステムをLambda + Go + terraformで構築したのでそちらをご紹介させていただきます。

## おすすめな人

– AWSにかかる料金を定期的に通知したい
– GoでLambdaをどう開発するか知りたい
– terraformでLambdaを管理する方法を知りたい

## アーキテクチャー
![aws_billing_notification.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2334784/760f4f85-cfdb-8b57-bad4-8c4b0e4df04d.png)

– Even

元記事を表示

【Python】API Gateway + lambda にファイルを post、s3 に保存

「Applibot Advent Calendar 2021」 6日目の記事になります!!どうぞよろしくお願いいたします。

# 1. 概要
ローカルにある csv を lambda に post して、s3にアップロードするまでのメモ。Content-Type の設定をAPI Gateway で行うことを知らず、若干詰まったので記事にしました。

# 2. 目次
– [1. 概要](#1-概要)
– [2. 目次](#2-目次)
– [3. aws リソースの用意](#3-aws-リソースの用意)
– [3.1. ロールの用意](#31-ロールの用意)
– [3.2. s3の作成](#32-s3の作成)
– [3.3. lambda関数の作成](#33-lambda関数の作成)
– [3.4. api gateway の作成](#34-api-gateway-の作成)
– [3.5. 疎通の確認](#35-疎通の確認)
– [4. 参考](#4-参考)

# 3. aws リソースの用意
## 3.1. ロールの用意
– 次のポリシーを持ったロールを作成する

元記事を表示

Salesforceの外部サービスを使ってAWSのLambdaを実行してみる

[Ateam Brides Inc. Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ateam-brides)の6日目は
株式会社エイチームブライズ エンジニア
新卒2年目になった@takaHALが担当します!

# これは何?

Lambdaで作ったAPIをSalesforceの外部サービスに登録し
SalesforceのフローからLambdaを実行してみます。

# 使うもの

– AWS
– Lambda
– IAM
– APIGateway
– CloudWatch
– 意識して使うのはこの4つ

– ServerlessFramework
– Salesforce
– 外部サービス
– 指定ログイン情報

利用するSalesforce環境はtrailheadのplayground環境です。
trailheadに登録すれば誰でも利用できます。

# 外部サービスとは

https://trailhead.salesforce.com/ja/

元記事を表示

AWSのAI(Rekognition/Polly/Transcribe/Comprehend/Translate/Textract)サービスを試してみる

# 概要

AWS資格取得に向けて実際にAWSを利用してみるシリーズの投稿です。
今回はAWSサービスの中でAIサービスに分類されるサービスを使ってみる編です。
具体的には以下の6つのAIサービスをAWS Lambdaを使って実際に動かしてみます。
AWSアカウントがあればすべてAWS上で完結されることができるため、お試し簡単な実践編です(^^)

* Amazon Rekognition:画像ファイルをインプットにモノ・人・顔を抽出する
* Amazon Polly:テキストファイルをインプットに音声ファイルを生成する
* Amazon Transcribe:音声ファイルをインプットにテキストファイルを生成する
* Amazon Comprehend:テキストファイルをインプットにインサイトや関係性を検出する自然言語処理 (NLP) サービス
* Amazon Translate:テキストファイルをインプットに翻訳する
* Amazon Textract:画像ファイルをインプットにテキストを抽出する

資格勉強的にはAWSのAIサービスのサービス概要を掴める内容になっています。
興味

元記事を表示

CloudWatch EventとLambdaでStepFunctions間のエラ-を伝搬する

StepFunctions は、並行して実行するなどワ-クフロ-を構築・管理する際によく使用します。StepFunctions内のLambdaなどが実行失敗した際には、StepFunctionsが終了しますが、後続するStepFunctionsは実行されてしまいます。言い換えれば、StepFunctoins内のエラーは伝搬するが、StepFunctions間のエラーは伝搬しません。

今回は、StepFunctions間でエラーを伝搬させる構成を紹介します。

# 解決したい課題

StepFunctions間でエラーを伝播させる

StepFunction内だけではなく、StepFunctions間でエラーを伝播したい。
具体的には、1つのStepFunctionsが失敗すると、後続するStepFunctionsを実行させないようにします。

# StepFunctionsのエラー伝播

ここから、具体例を用いて、StepFunctionsでのエラー伝搬について説明します。

## StepFunctions内のエラー伝播

下図のように、複数のLambdaなどを順番に実行すること

元記事を表示

AWS Lambda + S3 + Python で PDF を扱う際のTips

# 初めに

PDF を `AWS` で扱う際に、ローカルの環境と `Lambda` や `S3` では少し扱いに注意が必要だったので、忘れないようにまとめておきます。

## 1. S3 から PDF を読み込む

`Python` で PDF を扱う場合は `PyPDF2` を使うことが多いかと思います。

ローカル環境で読み込む場合は

“`.py
# example code
from PyPDF2 import PdfFileReader

PDF_PATH = ‘pdf/xxx.pdf’ # ローカルのディレクトリ
pdf = PdfFileReader(PDF_PATH)
“`

とパスを指定するだけで簡単に読み込むことができます。

`S3` から PDF を読み込む場合は少し工夫が必要です。

“`.py
# example code
import boto3
from PyPDF2 import PdfFileReader
from io import BytesIO

PDF_PATH = ‘data/pdf/xxx.pdf’ # S3バケットの

元記事を表示

aws-cdk v2でlambda layers を扱ったメモ

## 概要
aws-cdkでもlambda layersが扱えることを確認する。
コードの共通化を試す。
[ソースコード](https://github.com/hibohiboo/aws-cdk-v2/tree/e32dc9658f313e651cf69fe82dd219891beb0efb)

## node_modulesのLayer化
必要なことは以下。

* node_modulesフォルダをLayerのフォルダに指定する
* 実行する上では`devDependency`はいらないので、`dependency`のみを含んだnode_modulesにする
* ビルド時にnode_modulesのファイルはバンドルしないようにする

`dev`(ローカルで確認)や`deploy`の前に、Layerのフォルダを作成するスクリプト`pre.ts`を実行するようにする。npmのルールで、`preスクリプト名`で定義したスクリプトは、目的のスクリプトの実行前に行うようになるのでそれを利用する。

“`json:cdk/package.json
{

元記事を表示

【AWS】LambdaでJSONファイルを「S3へ保存/S3から取得」してみる

# はじめに
先日、Lambdaを用いて、S3へ推論結果を格納したり、S3から推論結果を取得したりする処理を実装する機会がありました。
今後似たような処理を実装する際にすぐに思い出すことができるよう全体の流れを整理したいと思い、記事に残すことにしました。

# シナリオ
API GatewayへのリクエストをトリガーにLambda関数を実行し以下の処理を行う。

* A – S3へJSONファイルを保存する
* B – S3からJSONファイルを取得する

# A – S3へJSONファイルを保存
![スクリーンショット 2021-12-01 23.28.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646903/46a940cd-982d-6a8f-5cb3-b9bee501fe72.png)
## 1. S3のバケットを準備する
1. 「バケットを作成」をクリック
1. バケット名を入力。今回は `sample-json-test`とする。

## 2. Lamda関数の作成
今回はリクエスト

元記事を表示

姉さん、New Relic デビューしたのでLambdaと・・・・

# 1.はじめに
こちらの記事で、New Relic デビューをしてから5日が経過しました。

https://qiita.com/horit0123/items/a53013db9d42711b648d

完全に理解した!!って最後に言ってますが、次のBlogを書いていたら、「お、完全に理解したし、ついでにやっとく?」と思いました。

https://qiita.com/horit0123/items/0cc147d4081803d46c14

ということで、New RelicとLambdaを完全に理解するための記事を一本書くことにしました。

# 2. AWS Lambdaアプリケーションの構成
意味は特になし。何も考えず、とりあえず、こんなアプリを作ろうと考えた。とりあえず、正規の流れと、エラー時のDLQがある感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535037/50524c1e-662c-260c-9ce9-a0545275abb4.png)

これがどう可視化され

元記事を表示

特定のサイトの更新情報をLINEに通知してくれるスクレイピングアプリを作ってみた!

# はじめに
特定のサイトのお知らせ欄が更新されたかな?と毎回見に行くことって結構あるかと思うのですが、時にはやはり忘れてしまうものです。
サイト自体に通知機能のようなものがあればそれを利用するのも一つの対策ですが、そういうものがない場合は毎日確認することをルーチン化する!…いや…やはりそういうわけにはいきません。

そこで今回は特定のサイトのお知らせ欄を1日に2回見にいき、更新されていたらその記事をLINEで通知してくれる、というアプリを作ってみました。

## 完成形
LINE Notifyから毎日7:00と17:00に以下のように通知が来るようになっています。

|記事が更新されていたとき|記事が更新されていないとき|
|—|—|
||Lambda サブスクリプションフィルター + AWS WAF で実現する「フルリモートワーク時代のお手軽社内サイト」

本記事は [AWS LambdaとServerless Advent Calendar 2021](https://qiita.com/advent-calendar/2021/lambda) の4日目です。

たまたま空きがあることに気付いたため、せっかくでしたらと急遽参加させていただきます! よろしくお願いいたします ?

こんにちは。[**Togetter**](http://togetter.com) を運営しているトゥギャッター株式会社でエンジニアをしている [@MintoAoyama](http://twitter.com/MintoAoyama) です。

[**Togetter**](http://togetter.com) はツイートを始めとした様々な情報を組み合わせてコンテンツを作り出すキュレーションサービスです。
2009年に誕生してから**今年で13年目**に突入し、現在も**月間PV約1億、月間UU約1500万という規模感**で成長を続けています。

元記事を表示

つみたてNISAの損益をスプレッドシートに保存

この記事は、[シアトルコンサルティング株式会社 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/seattleconsulting)の4日目の記事です。
こんにちは、シアトルコンサルティングの松縄です。
現在は、エンジニアとしてWebサービスの開発に携わっています。

## はじめに
みなさん、つみたてNISAはやっていますか?
僕は1年くらい前からやり始めていて最近は順調に上がっていて安心しています。
さて、今回とある証券会社のサイトでスクレイピングをしてみようと思ったのは、**自動化**をしたいなと考えたからです。

僕は最低でも1日1回は口座状況を見るようにしています。chromeでパスワードは保存できるからすぐログインできますが少し面倒でした。それに日毎に見て少し増減があってもよほど変わらない限り気付けないんです。

そこで、今回作ったPython + AWS Lambda + Spreadsheet + LINEのシステムで日毎の損益を残しつつ、週毎だったり月毎だったりの増減も見れるようにしてみました。

元記事を表示

Github ActionsでAWS CDKを自動デプロイしてみる

#はじめに
はじめまして!株式会社オークンのNHatanakaと申します!

現在会社の同僚と趣味でフットサルのLINEアプリケーションを作っていて、
せっかくなので初めてGithub Actionsを触ってみました!
なので今回はその時実装したコードを紹介したいと思います!

#使ったもの
AWS CDK
Github Actions
direnv

#構成
まず構成としては下図のようなパイプラインでデプロイ時にAPIGatewayとLambdaが作成されます。
![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2347292/d2fcb710-c34f-0aa9-b3b0-6dc1b8d80d7e.png)

#ディレクトリ構成
iam:GithubActions上で使用するロールを作成するプロジェクトです。
futsal-backend:今回自動デプロイを組むプロジェクトでLambdaとAPIGatewayを作成します。

“`ruby:全体のディレクトリ構成
.
├── README.

元記事を表示

Lambda関数をAWS CLI スクリプトで書こう 〜 @aws-cdk/lambda-layer-awscli モジュールの紹介 〜

これは [AWS CDK Advent Calendar 2021](https://qiita.com/advent-calendar/2021/aws-cdk) 4日目の記事です。

こんにちは。米田 (@komeda-shinji)です。インフラエンジニアをしています。

みなさん、AWS CLI を使っていますか。AWS Lambda を手軽にシェルスクリプトで書けたらなあ、と思うことはありませんか。

その夢、叶います。

この記事では [@aws-cdk/lambda-layer-awscli](https://docs.aws.amazon.com/cdk/api/latest/docs/lambda-layer-awscli-readme.html) モジュールをつかって、シェルスクリプトで Lambda 関数を書いてデプロイする方法を説明します。

# はじめに

先日 lambda-layer-awscli を使おうとしたときに CDK に @aws-cdk/lambda-layer-awscli モジュールがあることに気が付きました。

Lambda Layer

元記事を表示

RDS Proxyを作成して、lambdaで利用する

# 概要
RDS Proxyをセットアップする手順を記載する

# なぜRDS Proxyを使わないといけないか

https://ichi-station.com/aws-rds-proxy-lambda-aurora/

> LambdaからRDSへのアクセスはアンチパターンと言われています。(調べるまで知りませんでした)
> その理由は、Lambdaはリクエストごとに起動し、その都度RDSに対してコネクションを張ろうとするため、
> コネクション上限を超えたLambdaからのアクセスはエラーとなってしまうためです。
> Lambda起動の頻度が高いほどコネクションが多くなってしまうのですね。。。

lambdaが終了しても、コネクションが残ってしまい、接続数の上限に達してしまう

# 参考

### AWS

* RDS Proxyについて https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html
* PostgreSQL関数lastvalを使用してはいけないw(Proxyを利用してるからしょう

元記事を表示

CloudFront+S3 URLの末尾がサブディレクトリの場合でもindex.htmlを表示する方法

#経緯

CloudFront+S3ではURLがディレクトリまでしかない場合は404エラーになります。つまり、

“`
http://hogehoge.com
“`
の場合には index.html が表示されますが、

“`
http://hogehoge.com/subdir/
“`
の場合には index.html が表示されずに 404エラーになる訳です。

その解決方法として既に多くの記事で Lambda@edge を使って http://hogehoge.com/subdir/ (末尾にスラッシュあり) の場合に index.html を表示させる方法が紹介されていますが、http://hogehoge.com/subdir (末尾にスラッシュなし)の場合CSSやJSのパス当たらないなど、うまく動かなかったので、備忘録も兼ねて記事を書くことにしました。

方法を先に言ってしますと、スラッシュ(/)無しの場合にはスラッシュ(/)ありに301リダイレクトさせるというものです。

# まずはLambda@edgeを用意しましょう。
2021/12現在、Lambda@edg

元記事を表示

OTHERカテゴリの最新記事