Lambda関連のことを調べてみた

Lambda関連のことを調べてみた
目次

AWS LambdaとEventbridgeを使って毎朝7時に気象庁天気予報をLINEに通知

## 概要
気象庁から天気予報データを取得、必要情報を抽出してLINEに通知するLambdaを作成して、Eventbridgeで毎朝7時に起動するよう設定しました。

## 準備
– 事前にLINE Notifyのアクセストークンを取得
– エリアコードの確認
https://www.jma.go.jp/bosai/common/const/area.json
東京地方は130000です。

## 作成
– Lambda作成
Lambda作成方法は他の有志の方の記事または公式を参照ください。
なお、PythonのRequestsモジュールをLambdaで使用するためにはLayerの追加の必要があります。
– エリアコードは東京地方の天気を対象としています
– 抽出データは、時間、天気、6時間ごとの降水確率と最高気温です
– 【LINE Notifyアクセストークン】を取得したアクセストークンに置き換えてください

“`python.py
import requests
import json
import io

def lambda_ha

元記事を表示

【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part5

# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2](https://qiita.com/mcen/items/7d978203ef22412309f2)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3](https://qiita.com/mcen/items/e66e77743963084a3d7b)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part4](https://qiita.com/mcen/items/802a43a28358303125f6)

# 今回の実施内容
前回Part4の内容を行いました。今回は

元記事を表示

【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part4

# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2](https://qiita.com/mcen/items/7d978203ef22412309f2)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3](https://qiita.com/mcen/items/e66e77743963084a3d7b)

# 今回の実施内容
前回Part3の内容を行いました。今回はAthenaの設定を行います。
* Part1
* JSONのダミーデータの作成
* S3バケットの作成
* Part2
* Lambda作成
* S3イベントとLam

元記事を表示

Serverless FrameworkとTerraformの責任分界点

# 概要

Lambdaアプリケーションを構築する上では、Terraform以外に [Serverless Framework](https://www.serverless.com/) や [AWS SAM](https://aws.amazon.com/serverless/sam/) といったフレームワークを使うことがあります。
メタップスホールディングスではLambdaのアプリケーション開発にServerless Frameworkを使うことが多いのですが、インフラを構築する上で、Terraformとの使い分けはどうするべきか、という課題が度々発生します。
今回は弊社のプロダクト開発におけるフレームワークの使い分けについて、一例を紹介したいと思います。

# Terraformの利点

TerraformはInfrastructure as Code (IaC) の中でもとりわけ人気が高く、多数のクラウドプロバイダーに対応しており、デプロイメントやプロビジョニングを自動化できる利点があります。
弊社のSREチームもAWSを始め、DatadogやGitHub、PagerDuty

元記事を表示

AWS Lambda Web Adapterを使ってAgents for Amazon Bedrockを高速開発

Amazon Bedrockでエージェントを構築できるAgents for Amazon Bedrockという機能があります。この機能はLambdaで構築するのですが、構築に際して次のものが必要です。

* エージェントが実行するアクションのビジネスロジックを含んだLambda関数
* APIの説明、構造、パラメーターを含むOpenAPIスキーマ

また、イベントのJSONが専用フォーマットなので、どういったイベントが来るのか気にしながら開発する必要があります。

AWS謹製のAWS Lambda Web AdapterがAgents for Amazon Bedrockに対応しましたので、使用方法を紹介します。

## AWS Lambda Web Adapterとは

AWS Lambda 上で Web アプリケーションを実行するツールです。

AWS Lambda Web Adaptor を使用すると、開発者は使い慣れたフレームワーク (Express.js、Next.js、Flask、SpringBoot、ASP.NET、Laravel など、HTTP 1.1/1.0 を使用

元記事を表示

Firehoseのレコード出力の設定をCDKで構築する(改行の区切り文字/動的パーティショニング)

# 背景
Firehoseでは、1行1レコードとして出力したり、Lambdaで1レコードごとに処理するためには、追加での設定が必要です。
画面からだと簡単に設定できますが、CloudFormationおよびCDKでは、設定方法が直感的とは言い難いです。

この記事では、CDKのみを使用して、こちらの画像の状態にする方法を紹介します。

![スクリーンショット 2024-01-18 8.52.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468968/31379ea2-7606-ab85-f8e2-dc3593f89f88.png)

## 設定項目解説
### New line delimiter/改行の区切り文字
設定することで、各レコードが1行ごとに出力されます。

“`json
{“id”:1}
{“id”:2}
“`
JSONL形式になるため、後続の処理でS3から取り出した時に処理しやすくなります。

#### 設定しない場合に困ること
これを設定しないと、いわゆるJSONL形式では

元記事を表示

Windowsで作成したLambdaレイヤーで”Unable to import module”エラーが発生した場合の対処(の一つ)

ローカルのWindows環境で外部ライブラリの動作確認をした後に、`pip install -t`してLambdaレイヤーを作成したらLambdaで以下のエラーが発生した際の調査メモ。
※他の原因(循環参照)でも同じエラーが発生するようなのでどちらが原因かは適宜判断

`[ERROR] Runtime.ImportModuleError: Unable to import module’lambda_function’: cannot import name ‘xxx’ from partially initialized module ‘xxx’ (most likely due to a circular import)
`

# 環境
– ローカル環境:Windows
– Lambda:Python

# 原因
そのまま書いてありました。
要はライブラリにバイナリを含む場合は、インストール時の環境(Windows)とLambda実行環境(Amazon Linux)の差異でエラーになるようです。

> NumPy や pandas などのコンパイル済みコードを含む Python パ

元記事を表示

【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3

# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2](https://qiita.com/mcen/items/7d978203ef22412309f2)

# 今回の実施内容
前回Part2の内容を行いました。今回はGlueの設定を行います。
* Part1
* JSONのダミーデータの作成
* S3バケットの作成
* Part2
* Lambda作成
* S3イベントとLambdaの連動
* Part3
* Glueの設定
* Part4
* Athenaの設定
* Part5
* Quicksightでの可視化

## AWS Glueとは?
AW

元記事を表示

【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2

# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)

# 今回の実施内容
前回Part1の内容を行いました。今回はLambda関連の設定を行います。
* Part1
* JSONのダミーデータの作成
* S3バケットの作成
* Part2
* Lambda作成
* S3イベントとLambdaの連動
* Part3
* Glueの設定
* Part4
* Athenaの設定
* Part5
* Quicksightでの可視化

## Lambda作成
S3バケット「**transbucket-2024**」のinputフォルダにアップロードしたjsonファイルを
csvファイルに加工後、outputフォルダに格納するLambdaを作成していきます。

元記事を表示

【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1

# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。

# はじめまして!
AWS認定DASの資格学習として出題サービスを使用した構成を組んでみようと思い
初投稿をしてみました。
私自身の経歴はインフラエンジニアとして2年半設計構築に携わってます。
SAAの資格学習時(昨年取得出来ました!)に実際に携わったことのあるサービスに関しては理解度が格段に上がることを実感したためこのような取り組みを行っております。

# 実現したい構成
早速ですが実現したい構成は以下です。
作成リージョンはap-northeast-1とします。
構成図

>①JSONファイルをS3(inputフォルダ)にアップロード
②S3にJSONファイルがアップロードされたことをトリガーにLamb

元記事を表示

【AWS】CloudWatchLogs→Lambda→SQS連携方法

## はじめに

本記事は Lambda を使ったことが無い自分の備忘として、
Lambda 構築までの流れをメモした記事となります。

## 構成

「CloudwatchLogs」→「Lambda」→「SQS」のシンプルな構成とします。
■処理フロー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1764568/e8d2b446-752d-f000-6fe7-d478245d3f19.png)

## 実装してみた

### Amazon SQS 作成

今回の構成で SQS は Lambda からのメッセージをキューに保持するだけなので、
以下 CLI コマンドで簡易的に作成。

“`bash
aws sqs create-queue –queue-name
# 例:aws sqs create-queue –queue-name testqueue
“`

### AWS Lambda 作成

今回は AWSCLI を利用して Lambda の作成を行う。

元記事を表示

AWSLambdaを使用してRDSからCSVを取得してメール送信

# 1.はじめに
はじめまして!株式会社TechoesインフラチームのYです!
今年の4月で2年目を迎える初心者のクラウドエンジニアです。
今回からTechoesの採用強化、学習内容のアウトプットを目的としてQiitaで技術ブログを書いていこうと思います。
第1回目として最近学習したAWSLambdaを使ってRDSからCSVを取得してメール送信する手順を投稿します。

# 2.前提
– 言語:Python 3.10
– ライブラリ:pymysql
※layerとしてS3に保管
– RDS:Aurora MySQL
– RDSの認証情報はSecretManagerから取得
– メール送信にはSESを使用
# 3. CFNテンプレート
Lambda関数を作成・管理するテンプレートです。

レイヤーはあらかじめS3に保管しておいたものを使用します。
“`yaml:lambda.yaml
Resources:
LambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:

元記事を表示

【AWS CDK / SQS+Lambda】SQSからのLambda呼び出しについて検証してみた

# はじめに
SQSトリガーのLambda実行について、色々と検証してみたくなったので試してみた。

## 対象とする読者
* SQSの基本は知ってるけど、細かい動作まで知りたい人
* SQSトリガーのLambda実行環境をcdkで構築したい人

# 結論)わかったこと

* SQSのキューがFIFOの場合、紐づくデッドレターキュー(DLQ)も強制FIFO
* LambdaのOnSuccess/OnFailureに紐づけるキューはFIFO不可
* LambdaのDLQもFIFO不可
* 最大受信回数到達時、Lambdaエラー→可視性タイムアウト→DLQへ送信の順番
* SQSからのLambda実行は非同期呼び出しではない
→ LambdaのOnSuccess/OnFailure送信先やDLQは効かない

# 検証環境構築

以下の環境を構築する。

元記事を表示

AWS Lambda(Python)からOpenAIのGPT4のAPIを呼び出してみた

[Supership](https://supership.jp/)の名畑です。[スナックバス江](https://snackbasue.com/)は肩の力を抜いて見られるのでいいですね。年齢を重ねる毎にこういう作品が好きになっていきます。

## はじめに

[AWS(Amazon Web Services)](https://aws.amazon.com/jp/)でWebアプリを作ることがあるのですが、その過程で触れてきたものについて、せっかくなので要点だけを抽出して残しておくことにしました。

特に目新しい内容はありませんが、**AWS**や**OpenAI**のアカウント作成も含めて一通りの流れを残すので、いい具合の備忘になればと。

今回は[Lambda](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)を経由して[OpenAI](https://openai.com/)の**API**を叩くまでをまとめます。

## Lambdaとは

> AWS Lambda は、サーバーをプロビジョニングま

元記事を表示

【AWS CDK入門】AWS CDKでAPI Gateway + Lambdaを構築してみた

# はじめに
AWS CDKってドキュメント見てもよくわからん…ってなったので、実際に動かしてみた。
すると、CDKすげええええぇってなったので、その感動を共有したくて記事を書いてみた。

### 対象とする読者
* AWS CDKとはなんぞやって人
* AWS CDKをお金をかけずに動かしてみたい人

# AWS CDK のこれだけ知っておけばOK

AWSのIaC (コードでインフラを管理)といえば、CloudFormation!
→ しかし、以下の課題が・・・
* YAML/JSONなので、ループや条件分岐などを用いたリソース定義が書けない
* 大規模なインフラだと、一から十まで書くの大変

これらを解決するのが、AWS CDK!
→ CloudFormation用のテンプレートをプログラム言語から生成しちゃおう

:::note
* TypeScriptやPythonなどでリソースを定義するのでループなど自由自在
* ライブラリでリソースが抽象化されているので記述量が大幅減
(抽象化 = REST APIを作るといったパターンが用意されている)
:::

# AWS CD

元記事を表示

CloudFront + Lambda@Edgeを利用して、user-agentに応じて異なるwebページを表示させる

CloudFront + S3でウェブページを表示する仕組みは以前作ったことがありますが、
「**AWS上の仕組みを使ってスマートフォンとPCからのアクセスで、異なるwebページを表示させることってできるのかな?**」と思ったので、実践してみました。

## 目標
・スマートフォンからのアクセス時は「スマートフォン専用サイト」
・PCからのアクセス時は「PC専用サイト」を表示させる

## 条件
・user-agentに「iPhone」「Android」が含まれている場合にスマートフォン、含まれていない場合はPCからのアクセスと判断する
・表示させるのはS3に配置したhtmlファイル

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2969669/018162c8-072d-e62e-0585-2ab732d79111.png)

## 流れ
①S3に2つのhtmlファイルを配置する
②Lambda@Edgeを作成する
③CloudFrontのディストリビューションを作成する

元記事を表示

AWS LambdaでECRのコンテナイメージを指定したら、エラーが出た。

こんにちは、ユーゴです。今回は、私がコンテナイメージからLambdaを作ろうとした時に遭遇したエラーと解決策を紹介します。
難易度は、初歩レベルです。

# 問題
以下のようなエラーが出る
![スクリーンショット 2024-01-21 15.44.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/9f3108ea-4f10-fccc-bd2c-22b0f44d2666.png)

> Source image xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/xxxxxxxx is not valid. Provide a valid source image.

# 原因
リポジトリ自体のURIを指定してた
![スクリーンショット 2024-01-21 15.45.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/8349e5bc-a

元記事を表示

LangChainをAPI化するLangServeをLambda上で動作させるのはめちゃ簡単デス

少し前にLangChain開発元から新しいツールとしてLangServeというものがリリースされています。

https://blog.langchain.dev/introducing-langserve/

> LangServe is the easiest and best way to deploy any any LangChain chain/agent/runnable.

生成系AIを使ったAPIを簡単に作成し利用できる仕組みで、プロダクション環境でどんどんLangChainを使ってねというメッセージと捉えました。

イメージとしてはこんな仕組みです。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/63dc3abd-a710-3717-b6b0-ffc45585644e.png)

FastAPI上で動作し、API仕様が定められている感じです。

* Invoke API
単一の入力で処理を実行する
* Batch API
複数の入力で処理を実行する
*

元記事を表示

【Ruby】Procの基礎を理解する

# Procクラス
https://docs.ruby-lang.org/ja/latest/class/Proc.html

– ブロックをオブジェクトとして扱いたい時に使用するクラス
– ブロック
– メソッドの引数として渡すことが出来る処理のまとまり
– `do .. end`, `{ .. }`
– Procは、クロージャに相当する

“`rb
i = 100
pr = Proc.new { i += 1000 } # proc { i += 1000 } も同様

p pr.call #=> 1100
p i #=> 1100

p pr.call #=> 2100
p i #=> 2100
“`

# クロージャとは

>[手続きをオブジェクトとして扱う機能があります。このオブジェクト化された手続きのことをクロージャと呼びます。](https://docs.ruby-lang.org/ja/latest/doc/spec=2fintro.html#:~:text=%E5%88%B6%E5%BE%A1%E6%A7%8B%E9%80%A0%E3%81%

元記事を表示

Lambda Node.js 16 EOL 対応とは / AWS

# Node.js よりも前に自分が EOL

気が付けば2024年になりました。

昨年は途中で気持ちが折れたものの現役ビジネスマンとして
有効期限が切れないように今年もよろしくお願いいたします。

# Lambda のランタイムを探る

今更次郎さんではありますが
現在新規に作成する Node.js は v20 が初期設定になっているみたい

かつて環境構築時に最新であった Node.js 16 は
気持ちに含まれる OpenSSL1.1.1 が 2023年9月11日にEOL で完了。

ただやさしい AWSでは気にせずサポートを継続してくれておりました
ただ気が付けば 2024年6月12日が廃止日。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/f7038555-3dca-97bc-b28f-75ff53fa834f.png)
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.ht

元記事を表示

OTHERカテゴリの最新記事