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

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

[AWS] LambdaでS3の署名付きURLを発行する時に読む記事

# これは何?

LamdbdaでS3の署名付きURLを発行する時に、個人的につまづいたポイントを書いた記事です。

具体的なつまづいた現象としては、「Lamda上の処理で指定した有効期限に関わらず、有効期限が12時間程度になってしまう」というものでした。

「LambdaでS3の署名付きURL発行したけれど、長めに有効期限に指定したのに有効期限が切れてる~~~」でお困りの方、参考になると幸いです。

# 大まかな原因と解決方法

※ 私の解釈によるものが多いので、間違えていたら教えてください

## 原因

LambdaのIAMロールによって発行されたAWS Credentialを使用する場合、IAMロールによる一時的な認証が適用される。
※ 該当IAMロールの設定にもよるが、セッション期間は1時間~12時間で設定可能

https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-session

その際に、`IAMロールのセッション有効

元記事を表示

CloudFront DistributionからALB-Lambdaを呼び出す構築ハンズオン

## はじめに
##### 先日CloudFrontからAPIGateway経由でLambdaへの構築を行なったので、そしたらセットでALB経由でLambdaこ構築に関してもCFn化しておこうと思い立ち、さっそくハンズオンしていきます。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022-12-11-8.39.11-640×284.png)

————

## ハンズオン
### 構築の流れ
#### 1.VPC作成
#### 2.Lambda作成
#### 3.ALB作成
#### 4.CloudFront作成
##### 上記の順番で構築を行なっていきます。

##### 最終的には、CloudFrontのディストリビューションドメインから、ALB経由でLambdaのメッセージ部分をダウンロードできるまでを行なっていきます。

———–

### 1.VPC作成
以前記載したブログ[CloudFormationを使ってVPC構築](

元記事を表示

CloudFront DistributionからAPI Gatewayを呼び出す構築ハンズオン

## はじめに
##### IAM認証や、ACM,Route53などの検証の際に、自分でよく利用する構築をCloudFormation化していなかったと思い着手してみました。
##### まずは背骨となる、 CloudFront から APIGateway – Lambdaを呼び出す構築部分のCFn化を行なっていきたいと思います。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022-12-10-15.03.31-640×295.png)

————

## ハンズオン
### 構築の流れ
#### 1.Lambda作成
#### 2.APIGateway作成
#### 3.CloudFront作成
##### 上記の順番で構築を行なっていきます。

##### 最終的には、CloudFrontのディストリビューションドメインから、Lambdaを呼び出せるまでを行なっていきます。
![](https://cloud5.jp/wp-content/uplo

元記事を表示

【AWS】IAM認証を使用したLambdaの関数URL呼び出しをやってみた

# はじめに
LambdaをAWSの外部から呼び出す方法として、APIGatewayでエンドポイントを作成し、そのURLにアクセスすることでLambdaが実行される仕組みがありますが、Lambdaから呼び出し用URLを生成することができるようになっていたことをご存知でしょうか。(最近って程でもないですが2022年4月のアップデートです)

存在は知ってましたが動かしたことなかったので軽く触ってみようと思います。

https://aws.amazon.com/jp/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/

# 目次

1. [IAM認証とは](#iam認証とは)
1. [アクセスキー・シークレットアクセスキーとは](#アクセスキーシークレットアクセスキーとは)
1. [使用するコード](#使用するコード)
1. [Lambda関数の作成](#lambda関数の作成)
1

元記事を表示

【Serverless Framework】PythonランタイムのLambdaでrequirements.txtと独自モジュールをレイヤー化する

# はじめに

Lambda Layerを使うと、複数のLambdaで共通して使用するライブラリとその他の依存関係をパッケージ化することができます。

今回はServerless Frameworkを利用してLayerをデプロイし、開発環境、Lambda環境で利用する方法を解説します。

# Layerの基礎知識

押さえておくべきポイントは以下2つです。

:::note
Lmabda環境においてLayerは`/opt`以下に展開される。
:::

:::note
Lambda環境の`PYTHONPATH`には`/opt/python`が含まれている。
※ PYTHONPATHとは、Pythonが import 文で利用するモジュールを探す際のパスです。
:::

以下のような`utils.py`を共通化する場合を想定します。
“`utils.py
def hello_func():
return “Hello!”
“`
上記のポイント2つを組み合わせ、Lambda内で`/opt/python/utils.py`となるようにレイヤーを配置することで、このようにLambd

元記事を表示

ソラカメ + Lobe + AWS Lambda + Tensorflow Lite で鍵の閉め忘れを検知する

## 作成のきっかけ

師走になるといろいろと慌ただしくなり、普段しないようなうっかりミスも出てきます。私は特にうっかりミスが多い方で、布団の取り込み忘れ・風呂の栓の閉め忘れ・電気の消し忘れなど、困りごとは多岐にわたります。これらはまだ良いのですが、一番怖いのはやはり玄関の鍵の閉め忘れです。最近は後付けのオートロックも出てきているのですが、なんとなく買うのを後回しにしていたところ、何度か閉め忘れが発生し、妻からひどく怒られてしまいました (ごめんなさい)。

そんな矢先に、クラウドカメラサービスのソラカメに静止画エクスポートの API が出てきました。丁度アドベントカレンダーのネタも探していたので、これを機に画像認識を勉強してみようと思いました。

## 成果物

以下のように LINE Notify でドアの開閉と画像を送信できました。

オープンデータ(GBFS)とM5Stackを使ってシェアサイクルスイッチを作ってみた

## つくるもの
– ボタンを押すと、設定しておいたステーションの貸出可能自転車数が表示されるスイッチ

## 準備すること
– シェアサイクルオープンデータより、貸出可能自転車台数を取得:AWS Lambda の設定
– M5Stackとデータをやり取りするAPIを用意する:AWS API Gateway の設定
– M5Stackで、API経由でデータを取得しディスプレイに表示:M5Stackの使い方

## シェアサイクルのオープンデータについて

以下2つの記事に詳しく書かれています。

GBFSについての概要はこちら

https://note.com/openstreet/n/n2f4b51cd52b3

GBFSのファイル、カラムについてはこちら

https://qiita.com/kumatira/items/f9229c21d9f0db3b5ae3

## AWS Lambda の設定

– 言語はPythonを選択
– Pythonのライ

元記事を表示

同期呼び出ししたLambdaがエラーを起こした時に別のLambdaを起動したい

# なぜこれが必要?
* 非同期呼び出しでLambdaを起動した場合は、Lambda自体の機能で別のLambdaを起動できる
* しかし、同期呼び出しの場合そういうのがなさそうなので別のサービスを組み合わせる必要がある

# やること

* エラー監視したいLambdaに紐づくCloudwatchのログを開いて、Lambdaサブスクリプションフィルターを作成するをクリック
![スクリーンショット 2022-12-10 19.20.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176335/91b1adb6-4919-a065-a6b2-77fa3910298c.png)

* 設定項目をいい感じに設定して作成する
![スクリーンショット 2022-12-10 19.18.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176335/6f5aefc4-625d-d824-4768-10453e77d259.png

元記事を表示

RDS起動をEventBridgeで検知してLambdaで停止する構築ハンズオン

## はじめに
[AWS Step Functionsを使用して、自動的に開始されたRDS DBインスタンスを停止してみる](https://cloud5.jp/saitou-handson-rdsautostop/)というブログを見まして影響を受けました。

思い返すと自分が設定している環境では、RDSを自動停止するにはEventBridgeのCronでスケジュールを利用して停止させてばかりだなと思いまして、RDSの起動イベント通知をEventBridgeで検知してRDSを停止するLambdaを構築してみたいと思いましてハンズオンしました。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022-12-03-19.41.58-640×253.png)

————

## ハンズオン
### 構築の流れ
#### 1.VPC作成
#### 2.RDS作成
#### 3.Lambda作成
#### 4.EventBridge作成
上記の順番で構築を行なってい

元記事を表示

S3オブジェクトをトリガーにしたLambdaからSNS通知構築ハンズオン

## はじめに
今回もCloudFormationを利用して、S3にオブジェクトを保存するとEventBridgeが検知をして後続のLambdaをターゲットにし、LambdaからSNSを自分宛に送信するような構築をしていきます。
S3からオブジェクト通知でSNSという経路もありますが、自分のリソース理解の意味も含め構築をしていきます。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2022-11-26-15.16.11-640×199.png)

————

## ハンズオン
### 構築の流れ
#### 1.S3作成
#### 2.SNS作成
#### 3.Lambda作成
#### 4.EventBridge作成
上記の順番で構築を行なっていきます。

最終的にS3にオブジェクトを保存すると、SNSで登録した宛先にメールが届きます。
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2

元記事を表示

ALBのリスナールールでメンテナンス画面を表示させる構築ハンズオン

## はじめに
[前回のブログ『ALB をトリガーにして Lambda を実行する構築ハンズオン』](https://cloud5.jp/execute-lambda-by-alb/)同様にCloudFormationを利用して、ALBリスナールールを追加してメンテナンス画面を表示させていきます。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2022-11-24-20.59.25-640×563.png)

————

## ハンズオン
### 構築の流れ
#### 1.VPC作成
#### 2.Lambda作成
#### 3.ALB作成
上記の順番で構築を行なっていきます。
最終的に下記画面で優先度を上げることで、画面を切り替えることが出来ます。
①ALBのリスナールールの優先度を変える。
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2022-11-23-23.50.51-640

元記事を表示

ALB をトリガーにして Lambda を実行する構築ハンズオン

## はじめに
ALB経由からLambdaにアクセスの挙動を確認する際に毎回手動でポチポチしている自分に嫌気がさしまして、一念発起。
CloudFormationで再現性のある構築を少しでも残していきたいと思いまして、簡単な構築ですがハンズオンしていきます。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2022-11-23-17.12.11-640×569.png)

————

## ハンズオン
### 構築の流れ
#### 1.VPC作成
#### 2.Lambda作成
#### 3.ALB作成
上記の順番で構築を行なっていきます。
最終的に下記画像がALBのDNSを入力することで、画面に表示されるようになります。
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2022-11-23-16.12.15-640×103.png)

### 1.VPC作成
以前記載したブログ[Clou

元記事を表示

StepFunctionsを利用して別アカウントへオブジェクトをコピーする構築ハンズオン

## はじめに
要件として、承認プロセスが必要な異なるアカウント間のオブジェウトの移動という要件が与えられました。
承認プロセスだとCodePipelineが最初に思い浮かびましたが、今回のケースだと複数のユーザがS3へオブジェクトを保存するため、同時並行で承認を実現するためにStepFunctionsを選定しました。
その前段として、まずは承認フェイズなしでオブジェクトの移動を実現させる検証のために、こちらの構築を検証しました。

## 今回の構築概要図
1.アカウントAのS3へ、新規オブジェクトを保存する
2.S3にオブジェクトが生成されたことをトリガーにして、EventBridgeが後続のStepFunctionsを起動させる
3.StepFunctionsのワークフローにあるLambdaで、生成されたアカウントA:オブジェクトをアカウントB:S3バケットへコピーする
4.アカウントBのS3に、アカウントAで保存した新規ファイルが移動される
![](https://cloud5.jp/wp-content/uploads/2022/11/スクリーンショット-2022-11-06-

元記事を表示

LambdaによるEC2のステータスチェックの構築

## はじめに
EC2が停止した場合にチェックをするLambdaを構築してみました。
本当はDirectConnectのStatusチェックをしてみようと考えてたのですが、会社の環境にDirectConnectの構築がなかったもので、まず手始めにEC2のStatusチェックをするLambdaを構築しました。

## 構築概要図
![](https://cloud5.jp/wp-content/uploads/2022/08/スクリーンショット-2022-08-21-21.20.33-640×492.png)

## リソース構築
“state”を取得しようとしているEC2の構築はスコープ外にします

### Lambdaの構築(デフォルトからの変更部分のみ記述)
#### IAMロール
既存のCloudWatchのロールに追加して、AWS管理の`AmazonEC2ReadOnlyAccess`を付与(下記画像あり)
![](https://cloud5.jp/wp-content/uploads/2022/08/スクリーンショット-2022-08-21-20.35.08.png)

#

元記事を表示

Lambdaのバージョン管理とエイリアスについてのハンズオン

## はじめに
Lambdaのバージョン管理とエイリアスについてハンズオンを交えて構築をしたいと思います

## 用語理解
### Lambdaのバージョン
バージョンを使用することで、Lambda関数のデプロイを管理することが出来ます。
Lambda関数をデプロイするたびに、新しいバージョンの関数を作成することにより、実稼働中に新しいバージョンの関数を公開することも出来るようになります。
![](https://cloud5.jp/wp-content/uploads/2022/07/スクリーンショット-2022-07-12-20.46.53-1-640×164.png)

参考URL:[AWSドキュメント Lambda 関数のバージョン](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-versions.html)
### Lambdaのエイリアス
エイリアスは、特定のLambda関数のバージョンに対しての別名(AWSではポインタと説明)です。
ユーザーは、エイリアスを使用することでLambda関数の

元記事を表示

APIGatewayのステージごとにエイリアスで指定したLambdaを紐づけハンズオン

## はじめに
API Gatewayのステージと、Lambdaにおけるバージョン及びエイリアスを利用した紐付けを調査した際の構築メモとなります。

参考:[APIGateway+Lambdaによるアプリサーバをバージョン管理する](https://tm-progapp.hatenablog.com/entry/2021/01/19/202623)

## 構成イメージ
APIGatewayのステージとLambdaのエイリアスを紐づける事で、呼び出すLambdaを変更する事でステージごとに挙動を変えることが可能となります。
そして、これが構築できることでLambda内のエイリアスの重みづけによる切り替えも可能になります(ここの記載は掲載してません)
![](https://cloud5.jp/wp-content/uploads/2022/07/スクリーンショット-2022-07-09-15.51.14-1-640×331.png)

## ハンズオン
### Lambdaの作成
#### Lambdaの画面から構築
![](https://cloud5.jp/wp-content/u

元記事を表示

AWS API GatewayのIAM認証をSigV4署名(Python)で作成

## はじめに
API Gatewayを利用していましたが、あまりにインターネットに対して無防備だったのでIAM認証を実装することにしました。
検証では[Postman](https://www.postman.com/)を利用して確認していましたが、対象とするインターネット経由でのユーザに導入してもらえるわけでもないので、PythonでSigV4署名を作成してみたいと思います。

参考:[API GatewayでAPIにIAM認証をかけて、Node.jsでSigV4署名ヘッダを作成してリクエストしてみる](https://dev.classmethod.jp/articles/api-gateway-iam-authentication-sigv4/)

### IAM認証とは?
AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを管理するためのサービスです。管理する中には、認証(サインイン)の制御も含まれます。

その認証(サインイン)の一つに、*『IAMのアクセスキー(**アクセスキーID**+**シークレットアクセ

元記事を表示

AWS Lambda Function URLs を利用したLINEとの構築ハンズオン

## はじめに
今年4月6日ごろに発表されました[AWS Lambda 関数 URL: Lambda 関数用の組み込み HTTPS エンドポイント](https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-lambda-function-urls-built-in-https-endpoints/)を利用して、LINEとの構築をハンズオンしました。

## どういったもの?
Lambdaのサービスの組み込み機能として、HTTPSエンドポイント(URL)を介してLambda関数を簡単に呼び出せるようになりました。

以前まではAPI Gatewayなどを介してLambda関数を呼び出していたので、その手間が省けますね。

## 構築図
従来のAPIGatewayを利用するのではなく、直接LINEからLambdaを叩く構成です
![](https://cloud5.jp/wp-content/uploads/2022/04/スクリーンショット-2022-04-29-14.21.52-640×348.png)

### 挙動
①LI

元記事を表示

Serverless Frameworkでコンテナイメージを作ってLambdaを動かす

:::note info
これは [ZOZO Advent Calendar 2022](https://qiita.com/advent-calendar/2022/zozo) カレンダー1の10日目の記事です。
:::

# はじめに
AWS Lambdaでは各言語のランタイムが提供されており、ランタイムのサポートがある言語に関しては実行したいコードをアップロードするだけで簡単にクラウド上で実行することができます。
このようにクラウド上で実行できる一方、ランタイムのサポート期限が切れる前にバージョンアップ対応が必要であったり、コードをアップロードするためのコンパイルやライブラリのダウンロードといった事前処理に時間がかかってしまうケースもあります。

そこで今回はLambdaにアップロードするコードをコンテナイメージ化し、Lambda上で実行できるまでを紹介します。

# 前提条件
今回は以下の環境でLambdaへコンテナイメージをデプロイできるようにします。

– 言語: Python3.9
– パッケージ管理ツール: Poetry
– Serverless Framework v

元記事を表示

AWS-SDKでAWS APIのリクエスト数制限で悩まされた

# はじめに
どうも、Webエンジニアの大西です。

StepFunctionのMapの中でLambdaInvokeタスクを作成し、その中で`aws-sdk.EC2.runInstances()`を呼び出したところ、下記のようなエラーが返ってきました。
“`txt
Error: RequestLimitExceeded: Request limit exceeded.
“`

調べを進めたところ、AWSのAPIには同時リクエスト数に制限があることがわかりました。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/APIReference/throttling.html#throttling-limits

今回は、リクエスト数制限(=リクエストスロットリング)に関する話と回避方法について書きます。

# リクエストスロットリングとは?
詳しい話は[AWS公式の記事](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/APIReference/throttling.html#throttli

元記事を表示

OTHERカテゴリの最新記事