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

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

LINEボットで投稿した画像をAWS S3に保存する

たくさんの人が、ブログに同じことをブログに書かれてますが、自分用の備忘録として残します。

コードはほとんどChatGPT、
AWSの設定はこちらの方のブログを見ながらやりました。

AWS Lambdaを利用したLINEbotハンズオン〜S3に写真保存〜


ありがとうございました。

## 準備

LINE Messaging API の設定
こちらの 「2-2.LINEチャットボット開発前の設定」をご覧ください。

https://qiita.com/tatsuya1970/items/3e41dbeddc0e2d2fb881#2-2line%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%83%9C%E3%83%83%E3%83%88%E9%96%8B%E7%99%BA%E5%89%8D%E3%81%AE%E8%A8%AD%E5%AE%9A

作業ディレクトリを作成
“`
mkdir line-s3
cd line-s3
“`

必要なライブラリをインストールする
“`
pip install line-bot-sdk

元記事を表示

[ TypeScript / JavaScript ]複数のプロセスを非同期で同時に走らせたい

# はじめに
自分はミロゴスに今年(2023年4月)入社した新卒エンジニアで、TypeScriptを使って開発を行っています。

複数のプロセスを非同期で同時に走らせたいという要求を実現するのに、苦戦をしたのでその実装方法をここで紹介したいと思います。

# 想定する読者
– 複数のプロセスを同時に走らせる非同期処理の実装方法を知りたい方
– 非同期処理に対する例外処理の実装方法が分からない方

# 実行環境
– AWS Lambda
– ランタイム
– Node.js 20.x
– アーキテクチャ
– x86_64

# 今回実装する要求・要件
## 要求
5個のプロセスを同時に走らせたい

## 要件
– 5個のプロセスを同時に走らせる。
– 途中で止まるプロセスがあっても、正常なプロセスは最後まで実行させる。
– 5個全てのプロセスの終了が確認できたとき、途中でエラーが発生したプロセスがあった場合は、どのプロセスが誤りだったかの情報を含め例外を発生させる。

# 実装方法
## 全体のコード
Lambdaを起動すると、関数(hand

元記事を表示

AWS CDKでLambda Function URLsを試したい

# 概要
– AWS CDKでAPI Gateway + Lambdaの構成を作ったことは何度かあったのですが、Lambda Function URLsを試したことがなかったのでやってみました。
– 前提条件
– CDK v2
– Node.js v18.18.2
– TypeScript v5.3.2

# Lambda Function URLs(Lambda 関数 URL)とは
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-urls.html

Lambdaをhttpsから実行するには、API Gateway + Lambdaの構成にしてエンドポイントを作成することがよくありますが、Function URLsではLambdaがエンドポイントを作成してくれます。

### API GatewayとLambda Function URLsの違い
簡単にいうと、API Gatewayの方が複雑な設定ができます。
API Gatewayでできることとして例えば、、
– httpsだけでなくweb

元記事を表示

SORACOM Funkを使って受信データをAmazon S3にCSVで保存する

# はじめに
こちらは[SORACOM Advent Calendar 2023](https://qiita.com/advent-calendar/2023/soracom) 3日目の記事です。

https://qiita.com/advent-calendar/2023/soracom

昨日(12/2)は @kizawa2020 さんの(まさかの英語の!)会議脱出ボタングローバルバージョン!
あの大きいボタンを持っていないので、試すことはできませんが、Amazon Connectの箇所は参考になりそうなので、後日熟読したいと思います。

# 経緯
先日、[SORACOM Harvestに保存されたデータをAPI経由で取得し、CSVにする方法](https://qiita.com/ozk009/items/c880d234a4b91f4882d0)を紹介しましたが、有識者の方から「そのままCSVで保存すれば?」とアドバイスをいただき、それはそうだということでやってみました。

# お詫び
資料中のAWS等の設定でfunk

AWS Security Token Service(STS)を使ってIAM認証のLambda関数を突破する

# はじめに
今回はLambda関数URLをIAM認証にして、Security Token Service(STS)で作成したIAMユーザーを利用して、Lambda関数を実行してます。

この記事はTDCソフト株式会社Advent Calendarの2日目です。

https://qiita.com/advent-calendar/2023/tdc

# Lambda関数URLとは

> 関数 URL は、Lambda 関数のための専用 HTTP エンドポイントです。関数 URL の作成と設定には、Lambda コンソールまたは Lambda API を使用します。関数 URL を作成すると、一意の URL エンドポイントが Lambda により自動的に生成されます。関数 URL を作成した後に、その URL エンドポイントが変更されることはありません。関数 URL のエンドポイントでは、次の形式を使用します。
`https://.lambda-url..on.aws`

https://docs.aws.amazon.com/ja_jp/lambda/

LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる

# 挨拶

こんにちは、ソーシャル経済メディア「NewsPicks」のSREチームの中川です。

この記事は [NewsPicks アドベントカレンダー 2023](https://qiita.com/advent-calendar/2023/newspicks) の2日目の記事です。

# 概要

本記事の内容としては以下の通りです。

– 今年発表されたばかりの[Lambdaレスポンスストリーミング](https://aws.amazon.com/jp/blogs/news/introducing-aws-lambda-response-streaming/)を試した。
– 上記機能とAWS-SDK for Javascript V3、 Lambda (Node.js) を使ってリアルタイムに情報取得できた。
– その情報をSlackに投稿して進捗バーを表示させた。

システム構成は以下の通りです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322115/0d4ae386-cc

API Gatewayで/{proxy+}メソッドを活用する方法

## はじめに
こんにちは、開発部の天津炒飯です。

CloudFormationのLambda Functionでパスごと、Eventsを一つずつ書くことで苦労した経験があるかもしれません。
API Gatewayの “ /{proxy+} “ メソッドを使用すると、異なるパスに対するルーティングを簡単に実現できますが、意外と日本語の情報が少ないです。
私はPythonのWebフレームワークであるFastAPIを使用したので、この記事ではFastAPIを使用してAPI Gatewayの “ /{proxy+} “ メソッドを活用する方法に焦点を当てます。

## 1. /{proxy+}メソッドとは
“ /{proxy+} “ メソッドは、ワイルドカードパスを表すもので、異なるパス構造のリクエストを同じAPIエンドポイントにルーティングするのに役立ちます。
例えば、 “ /products/{proxy+} “ は “ /products/item1 “ や “ /products/category1/item2 “ など、様々なパスに対応できます。

##

【Kotlin】lambda関数の書き方

こんにちは、GxPのチョウキです。
こちらはグロースエクスパートナーズ Advent Calendar 2023の3日目の記事です。

現在、私はアプリ開発に携わっており、その過程でKotlinを使用しています。別のプロジェクトではJavaを用いていましたが、JavaからKotlinへの移行にはいくつか困難が伴います。JavaとKotlinは100%互換性があるとされていますが、一方で似ている部分と大きく異なる部分が存在します。特に、よく使われているLambda関数の観点から、Kotlinの書き方を紹介したいと思います。Lambda関数を使用する際、初見では意味が分かりにくいことがしばしばあり、それを難しく感じることがあります。そのため、この知識をまとめることにしました。

## JavaとKotlinにおけるLambda関数と高階関数の使用
Lambda関数に入る前に、高階関数から説明します。
高階関数とは、簡単に言うと、関数型をパラメータや戻り値に持つ関数を指します。
### Javaでのメソッドの扱い
Javaでは、一つのメソッド内で別のメソッドを呼び出すことは一般的です。

`

“The Five-Factor Serverless“ AWS Lambda の9年を振り返りつつ、これからを考える。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6088/f81e1bd0-69d0-8515-2533-345d23bbdaec.png)

re:Invent 2023の Werner Vogels のセッションスライドを振り返りつつ。
![IMG_1515.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6088/0b1e7504-e6d2-85fd-dc9f-39101c7618fb.jpeg)

[AWS Lambda は、2014年にGAしました。](https://aws.amazon.com/jp/about-aws/whats-new/2014/11/13/introducing-aws-lambda/)
Lambda 以外にこの年は Auroraや Codeシリーズなども発表されており、大変盛り上がった re:Inventになったことを記憶している人も多いのではないでしょうか。
![IMG

AlexaでBedrockに質問をするスキル開発

# はじめに
こちらは
– [Alexa×BedrockでAWS最新ニュースキャッチアップアプリ コンセプト・設計](https://qiita.com/SawaShuya/private/a22645e54d75667c5148)
– [AWS Lambdaで自作RSSリーダー開発](https://qiita.com/SawaShuya/private/aa007d310bfd12c751af)
– [Self hosted AWS LambdaによるAlexaスキル開発](https://qiita.com/SawaShuya/private/2395a08f57c8988f3163)
– **AlexaでBedrockに質問をするスキル開発 (本記事)**

の連載記事です。前段の項目が完了していることを前提として書かれております。
本記事では以下のアーキテクチャの作成を目指して解説をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/918398/59c74b9a-a

Self hosted AWS LambdaによるAlexaスキル開発

# はじめに
本記事は
– [Alexa×BedrockでAWS最新ニュースキャッチアップアプリ コンセプト・設計](https://qiita.com/SawaShuya/private/a22645e54d75667c5148)
– [AWS Lambdaで自作RSSリーダー開発](https://qiita.com/SawaShuya/private/aa007d310bfd12c751af)
– **Self hosted AWS LambdaによるAlexaスキル開発 (本記事)**
– [AlexaでBedrockに質問をするスキル開発](https://qiita.com/SawaShuya/private/46c47068dd2573359c8b)

の連載記事です。前段の項目が完了していることを前提として書かれております。
本記事では以下のアーキテクチャの作成を目指して解説をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/918398/2062f960-3

AWS Lambdaで自作RSSリーダー開発

# はじめに
こちらは

– [Alexa×BedrockでAWS最新ニュースキャッチアップアプリ コンセプト・設計](https://qiita.com/SawaShuya/private/a22645e54d75667c5148)
– **AWS Lambdaで自作RSSリーダー開発 (本記事)**
– [Self hosted AWS LambdaによるAlexaスキル開発](https://qiita.com/SawaShuya/private/2395a08f57c8988f3163)
– [AlexaでBedrockに質問をするスキル開発](https://qiita.com/SawaShuya/private/46c47068dd2573359c8b)

の連載記事です。本記事では以下のアーキテクチャの作成を目指して解説をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/918398/bca51a92-e2aa-7dc0-f93f-f5daed47ba18.pn

Amazon Managed GrafanaからRDSの時系列データをリアルタイムに表示してみる

# はじめに

Amazon Managed Grafanaを使った時系列データのクエリの実装例が少なかったので記事を書いてみました。

– 以前、Grafanaは少しだけ記事にしました。
– https://qiita.com/jnit/items/49f4954f8a7667e4a440#%E6%89%80%E6%84%9F

– 最近OpenSearchがニューラル検索に対応し、「リアルタイム可視化」という点でGrafanaとOpenSearchの棲み分けの方向性が明確になってきたように思います。
– https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-opensearch-neural-search/
– 個人的には単純なリアルタイム可視化であればGrafanaがよいのではと思います。

## 構成

各サービスのデータ連携は、すべてVPC内でセキュアに通信するようにしてみます。

![image.png](https://qiita-image-store.s3.ap-northea

Alexa×BedrockでAWS最新ニュースキャッチアップアプリ開発

# はじめに
**2023 Japan AWS Jr. Championsアドベントカレンダー**:christmas_tree: 記念すべき1日目の投稿です

AlexaやBedrockを活用してAWS最新ニュースキャッチアップができないかと考え、アプリ開発をしてみました!
その時に使用した技術について以下の記事にまとめていきたいと思います。
アプリを作る中で、必要となる知識を適宜盛り込んで解説をしてます。

– **コンセプト・設計 (本記事)**
– [AWS Lambdaで自作RSSリーダー開発](https://qiita.com/SawaShuya/private/aa007d310bfd12c751af)
– [Self hosted AWS LambdaによるAlexaスキル開発](https://qiita.com/SawaShuya/private/2395a08f57c8988f3163)
– [AlexaでBedrockに質問をするスキル開発](https://qiita.com/SawaShuya/privat

Lambdaでko!

## これは何?

これは [MEGAZONE 株式会社](https://www.megazonejapan.jp/) のテック陣「MEGAZONEのゆかいな仲間たち」がおくる、[Megazone Japan Advent Calendar 2023](https://qiita.com/advent-calendar/2023/megazonejapan) の一日目のエントリーです。

## はじめに

いやー、あっという間に12月ですね。今年は秋っぽい空気を楽しむチャンスがほとんどない天候のまま冬がやってきましたが、皆さんも「え?もう Advent Calendar の季節?どうしようエントリーしたけどまだ書いてないよ?まじやばいよー」なんて慌ててませんか?えぇ、私がまさにその状態です。

まともに Advent Calendar を書くなんて何年ぶりだろう?と記憶を掘り起してみると、実に6年ぶりぐらいのエントリーとなります。Private Cloud 界隈では 2012 年ごろから 2017 年ぐらいにかけて Advent Calendar が盛んでしたが、その後は Priva

Dockerイメージから作成したLambdaで画像リサイズ処理を行う

# やりたいこと
Lambda関数でlibvipsで画像をリサイズする
Lambda関数はRubyで動かす
画像はS3から取得する
ローカル環境で動作確認もしたい

# Dockerfileの用意
libvipsを使う場合そもそもlibvips本体をインストールしないといけません。
今回は、libvipsをインストールしたDockerイメージからLambdaを作成することにしてみました。

“`:Dockerfile
FROM amazon/aws-lambda-ruby:latest

# EPELリポジトリを追加
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# remiレポジトリを追加
RUN yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# libvipsとlibvipsを使うために必要なパッケージをインストール
RUN yum install

FastAPIのLambdaからAWS外のサービスでキャッシュとDB構築! + Github Actions

# 概要
FastAPI、Pythonに詳しい方はご存じの方も多いかもしれません。
AWSのLambda関数と組み合わせるとどんな感じになるんだろう?と思って触り始めました。
色々学べたので、この機会に記事にしました!

**こういったアーキテクチャが実現できるかな**?という部分に焦点をおいています。また、可能な範囲でコストも抑える方針で進めました!

### 主な目次
– パート1:アプリケーション作成
– インフラ構築(CDK Typescript)
– Lambda関数(FastAPIのアプリケーション)の作成
– DBやcacheの構築の前に
– supabaseによるDB構築
– upstashによるcache構築
– パート2:GitHub Actionsと各ツールの利用
– GitHub Actionsのworkflowは作ったが・・・
– Ruffの利用(Linterツール)
– actの利用(ローカルでGitHub Actions)
– stepciの利用(APIのテスト)
– ふりかえりとgi

【Security Hub】全開放インバウンドルールの自動削除の仕組みを検討する

# 記事の目的
この記事では、セキュリティグループ(SG)のインバウンドルールを適切に管理し、全開放のルールが設定された場合にそれを自動的に削除する仕組みを検討します。
セキュリティグループの管理はクラウドインフラストラクチャのセキュリティにおいて極めて重要であり、この仕組みを導入することでセキュリティの向上と誤った設定による問題の最小化を目指します。

# 背景
近年、クラウド環境においてセキュリティの適切な管理がますます重要となっています。
ある日、私の配属先PJで、パブリックサブネットに配置されたプロキシ用EC2インスタンスを介して複数のシステムに接続する際、予期せぬ問題が発生しました。
システムへの接続ができなくなったため、問題の切り分けを行うために、プロキシ用EC2のセキュリティグループ(SG)のインバウンドルールを変更しました。
具体的には、全ポートからのアクセスを全ソースから許可する設定を行いました。

問題はその後解決し、システムへの接続が復旧しましたが、セキュリティグループのインバウンドルールを元の設定に戻す作業が行われませんでした。
これにより、外部からのアクセスが

AWS SESバウンスメール監視・通知仕組み

最近は、AWSから「Amazon SES Bounce Review Period for AWS Account 」の通知が来ていますが、SESを使って送信するソースメールアドレスは、メーリングリストで未達のメールがあっても、通知が来ません。
従って、バウンスメールの閾値超えているか、そもそも未達のメールはどのメールアドレスか判断が付きにくい状況になっています。

SESより送っているメールのメトリクスは二つがあります(Bounce RateとComplaint Rate)。前者はアドレスが実在しないか、メールのドメインが実在しないか、あるいは受信者のサーバーがメールを拒否した、などが原因となります。

Bounce Rateはある程度を超えたら、AWSより通知が送られて、対応依頼が来ていますが、ほっとくと、閾値を超えて送信は禁止されてしまいます。特にサーバー監視メール等は、送信できないことになってしまうと、運用に大きく影響があるので、そのようなことがないよう監視・通知・調査できる環境を作るのは実務となります。

■設計
以下のように考えています。
・調査ができるようにSESバウンス

[AWS Lambda]Line bot作成でつまづいた、zip内のフォルダ構成

# 概要
AWS Lambdaを使用したオウム返しline botをつくった。
するとオウム返しどころか、全く動作しなかった。
ログを見ていくと”lambda_function”が見つからないらしい。
zip直下に”lambda_function”などのファイルを置くことで解決した。

# 参考にしていた手順
https://qiita.com/i3no29/items/6329f0e114dad1b6a525

これの通りやったのに、できなかった

# エラーの内容
#### ① API endpointのURLを踏むと”Internal Server Error”

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1741372/9f7b5863-6c6e-8fe4-53db-5cc9b6501c07.png)
ここを踏むと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1741372