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

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

JavaScript ⇄ AWS (API Gateway & Lambda) でデータやりとり

# はじめに
下の記事で、JavaScriptを使ってフォトシャワー表示をするフロントエンドを記述していました。
[フォルダ内の写真をフォトシャワーで表示してみる
](https://qiita.com/tomtom_pudding/items/be8b26dff40ece88d0b9)

今回は、AWS S3に保存されている写真を取得して表示をしてみたいと思います。つまりこんなイメージです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1989761/1d54ad9b-4f07-dc6d-1aa1-4a0e1cb7ad17.png)
JavaScriptの正式なロゴってこれであっているのだろうか…

# JavaScriptとAWS API Gatewayをつないで情報をLambdaへ送信
API Keyを用いたアクセスキー認証で行います。
LambdaとGatewayの連携、API Keyの取得方法に関しては以下の記事がとてもわかりやすいです。さすがはクラスメソッド様。。。
[

元記事を表示

AWS SAMを触ってみた

こんにちは、HCB Advent Calendar 2021の8日目を担当する、take-2405です。
研究の都合上あまり時間を確保できず、とても雑な記事になってしまっています。

ごめんなさい!!

[HCB Advent Calendar 2021](https://qiita.com/advent-calendar/2021/hcb-2021)

今回は、AWS Lambdaのローカルでのテストを目的とし、AWS SAMのインストールとテンプレート作成までについてをメインに書いています。
(本題のテストまで書く時間がなかった、、、、今度時間を見つけて加筆します。)

注意:基本的なLambdaの作成方法などは省いています。

# はじめに
みなさんは普段AWS Lambdaを利用するでしょうか?
私は、割と頻繁に利用します。(体感週に2つはLambdaを作成している)

普段goでLambdaを作成するのですが、goでLambdaを作成する場合以下の手順を踏む必要があります。

“`
1. プログラムをコンパイルする(バイナリファイル化)
GOOS=linux go bu

元記事を表示

2021年に超絶進化を遂げた AWS Step Functionsを触ってみました

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

# 感想
– かつてLambdaに初めて触れたときの感動を、ワークフローでも感じた
– Step Functionsはいいぞ

# 背景~今年あった大きな進化
・[ワークフロースタジオ爆誕](https://aws.amazon.com/jp/blogs/news/new-aws-step-functions-workflow-studio-a-low-code-visual-tool-for-building-state-machines/)
・[AWS SDK統合で200を超えるサービスサポート](https://aws.amazon.com/jp/about-aws/whats-new/2021/09/aws-step-functions-200-aws-sdk-integration/)

ワークフロースタジオによって、ベースのJSONがGUIベースで生み出される

元記事を表示

【AWS】LambdaからDynamoDBを呼ぶときは、タイムアウト時間を設定変更しようの巻

# 起きたトラブル

`APIGW <-> Lambda <-> DynamoDB`のようなシンプルな構成で、DBの中身をサーバレス配信するようなAPIを作ったとき、ごくまれにLambdaがタイムアウトを起こした。Lambdaのランタイムはnodejs。

↓ランダムに大量リクエストを飛ばしてみると、全体の0.1%未満ながら、間違いなく5秒タイムアウトしている?
![IMG_0106 3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050582/ab04e172-0f16-8534-f02c-1cfbb4a0ab73.jpeg)

Lambdaのタイムアウト時間は自由に設定変更できるが、30秒タイムアウトに設定しても改善しない。
(そもそも30秒もかかっていたら使い物にならないけど。)

# なにがまずいのか

aws-sdkの仕様書より抜粋↓

> timeout [Integer] — Sets the socket to timeout after timeout milliseconds

元記事を表示

たった1人でEC2&RDSのバックエンドをLambda&DynamoDBに移行した話

先日お仕事でスマホアプリのバックエンドを移行する機会をいただきました。
システムのフルリニューアルは初めての経験だったので色々と学びが多くありました。
せっかくなので知識を共有したいと思います。

# サマリー
## 概要
こんな感じのプロジェクトでした。

– 開発期間 9ヶ月
– 体制 1人開発
– API数 約100
– バッチ数 約10
– その他の移行対象(DBデータ,管理コンソールetc)

## 移行の目的
バックエンドの移行の主な目的は以下でした。

– 内製化によって開発速度を上げる
– 内製化するために社内のスキルセットに合う言語・アーキテクチャにする
– AWSコストの削減

## 移行前後の違い
|| 移行前 | 移行後 |
|—|—|—|
|実行環境|EC2|Lambda & Api Gateway|
|フレームワーク|Rails|なし|
|メインDB|RDS(PostgreSQL)|DynamoDB|
|バッチの仕組み|Rails(SideKiq)|AWS Batch/Lambda|

# 実作業前の準備
## 現状把握
私は移行対象の元のシス

元記事を表示

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万という規模感**で成長を続けています。

元記事を表示

OTHERカテゴリの最新記事