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

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

[過去記事]lambdaからAPI Keyが設定されたAPIを実行する

## 前提

今回のlambdaはNode.js 18.xを使います。また関数の作成など細かい方法は下記で記載しているので省略します!

要リンク用意(モジュール無し)

要リンク用意(モジュールあり)

また、API Keyが設定されているAPIは別のlambda関数を用意します。今回は下記の記事で作成したreturnHello関数をそのまま使ってみます!

https://qiita.com/miriwo/items/aee5fbe285a1338daac9

## 今回作るもの

![private__Online_Whiteboard_for_Visual_Collaboration-3-1024×528.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/e24a77c2-cb3e-13e8-947c-f239f412e315.png)

lambda関数2個とAPI Key付きのAPIをAPI Gateway作成します。

### lambda関数1つ目(returnHello関数)

元記事を表示

[過去記事]AWS lambda Node.jsの追加モジュールを使って他のAPIを実行してみる(requestモジュール使用 現在は非推奨)

## 今回つくるもの

![private__Online_Whiteboard_for_Visual_Collaboration-2-1024×388.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/c1ae4144-f89e-c20a-4b13-279dddc59d70.png)

今回は前回の内容と似ていて、lambdaを用いてQiitaのユーザー情報APIを実行しレスポンスをconsole.logで出力してみようと思います!ただし!今回APIリクエストを実行する際は既存のhttpsモジュールではなく、requestモジュールを使って見ようと思います!

## 前提

今回の作業は前回と同様にAWSアカウントを持っていることを前提とします。さらにlambda関数作成権限とIAMロール作成権限が必要です。

今回requestモジュールのインストールはローカルのPCを用いて作成します。ローカルPCでnpmコマンドが実行できるようにしておいてください。また、ローカルのNode.jsのバージ

元記事を表示

[過去記事]AWS lambda Node.jsの追加モジュールを使用せず他のAPIを実行してみる

## 今回作るもの

![private__Online_Whiteboard_for_Visual_Collaboration-1-1024×429.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/e93efa46-4472-86c2-880a-e3414044a6c9.png)

今回はlambdaを用いてQiitaのユーザー情報APIを実行しレスポンスをconsole.logで出力してみようと思います!

## 前提

今回の作業にはAWSのアカウントを持っていることを前提とします。また、lambda関数作成権限とIAMロール作成権限が必要です。

## 準備

### lambda

まずはブラウザからAWSにログインしコンソールを開き、lambdaのホームまで移動しましょう。
その後、左サイドバーの「関数」をクリックし、開いたページで「関数の作成」をクリックしましょう。

![関数_-_Lambda-1024×365.png](https://qiita-image-store.s

元記事を表示

[過去記事]AWS S3のバケットのCSVが更新・登録されたことをきっかけにLambda関数を実行してみよう!

## 前提

本記事の内容は以前に記載した下記記事実施直後の状態から実施してゆきます。

https://qiita.com/miriwo/items/7470659f070504e0fafe

## 今回つくるもの

S3の指定したバケットの指定したフォルダにCSVファイルがアップロード、もしくは既存のCSVが更新された時に下記で作成した「Hello for lambda!」を返すLambda関数を実行するようにしてみます!

https://qiita.com/miriwo/items/7470659f070504e0fafe

S3のCSVを登録・更新する作業は手作業で実施しようと思います。

![Cursor_と_private__Online_Whiteboard_for_Visual_Collaboration-1024×402.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/d4b777c0-b8e4-fdb2-420f-13e6a92018ae.png)

## 準備

##

元記事を表示

【AWS×Webアプリ】CloudFrontのキャッシュ削除(SAM)

## 目的
・AWS上の静的Webサイトホスティングを有効にしたS3をCloudFrontで公開。
・S3のコンテンツを更新した際に、CloudFrontのキャッシュ削除を行うLambdaを実装。

## 前提条件
・SAMを使用してAWS上にリソースを作成する。
・Pythonを使用してLambdaを実装する。

## 完成イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637963/4052117a-cea8-9fa3-e301-6712765433d2.png)

## SAMテンプレート
“`template.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31

Resources:
WebBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${AWS::Sta

元記事を表示

Instagram APIで自分の投稿へのコメントに自動返信するAWS Lambdaの実装

# Instagram APIを使用して投稿へのコメントに自動返信する機能

この記事では、Instagram APIを利用して、投稿へのコメントに自動でDMで返信する機能をAWS Lambdaを使って実装する方法を紹介します。Facebook MessengerのInstagram APIを活用し、コメントを解析して自動的にDMを送信するプロセスを詳しく解説します!

## 1. はじめに

Instagramの投稿に対するコメントに自動で返信する機能を作成することで、ユーザーとのエンゲージメントを高め、迅速な対応が可能になります。本記事では、その実装方法を詳細に説明します。

## 2. アーキテクチャの構成

### フローチャート

1. ユーザーがInstagramの投稿にコメント
2. Webhookを通じてコメントデータを受信
3. コメント内容を解析し、自動返信メッセージを生成
4. DMを送信

### 使用する技術スタック

– **プログラミング言語**: Python
– **サーバーレスプラットフォーム**: AWS Lambda
– **APIゲートウェイ*

元記事を表示

毎日の電気量を通知する仕組みをLambdaで作った

## 目的
最近電気使用料が高くなってますよね?
サイトにログインして、前日使用した電気量を確認することが日課となっていましたが
面倒くさい

バッチ処理で毎日LINEに通知してくれたら楽だし
そういった仕組みのようなものを作ったこともなかったので
勉強になるかな~と思ってそれっぽいものを作ろうと重い腰を上げました
この記事はその備忘録的な感じです

## 構成図
仕組みとしては簡単です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785830/b42adc85-9d7d-392b-3aca-b6bf96a4efd2.png)

## LINE NOTIFYの設定
こちらのサイトのやり方を拝借しました。簡単簡単
https://zenn.dev/protoout/articles/18-line-notify-setup

問題なくテスト通知できました
[ ]で囲われているのはトークン名です
![image.png](https://qiita-image-store.s3.ap

元記事を表示

CDK×Lambda×golang×Dynamoでアプリを作ってみる DynamoDB編(第二回)

さて、今回は以下の記事に続けて第二弾DynamoDBのスタックをCDKで追加していく。

https://qiita.com/YokoYokoko/items/c1fecc3278197ca43050

まずは以下をimportに追加して`go mod tidy`を実行
“`
“github.com/aws/aws-cdk-go/awscdk/v2/awsdynamodb”
“`

さて、まずはコードの全体像からです。
今回は以前のコードの追加していますが、まあほとんど似たような箇所が多いので前回よりも理解は楽になりましたが、Dynamoの設定値があるのでそちらの方も踏まえて見ていこうと思います。追加などわかりやすいように改行や並び順が変だったりします。

ちなみに私のDynamoDBの知識は2年前にSAPを取得した時の枯れた知識と先日再度キャッチアップした時の以下の記事レベルです。ほとんど入門者です。

https://qiita.com/YokoYokoko/items/8f0a19b0da69dc28f512

“`
package main

import (
“lo

元記事を表示

CDK×Lambda×golang×Dynamoでアプリを作ってみる CDK編(第一回)

# CDKとは
コードでクラウド インフラストラクチャを定義し、AWS CloudFormation を通じてプロビジョニングするためのオープンソース ソフトウェア開発フレームワークです。(公式)

まあ、簡単にいうとUI上でEC2とかS3とかをぽちぽち設定するんじゃなくて、コードで起動できるよってこと。管理もしやすいから便利だね。

# 何はともあれ触ってみよう。
とりあえずディレクトリを作成し、モジュールを初期化。
“`
mkdir first_prac_go
cd first_prac_go
cdk init –language go
go mod init first_prac_go
“`
すると`go.mod`や他の必要ファイルが色々と作成される。
`cdk init –language go`では以下ファイルが生成されます。
“`
.
├── README.md
├── cdk.json
├── go-lambda-cdk.go
├── go-lambda-cdk_test.go
├── go.mod
└── go.sum
“`

`go.mod`の中身はmod

元記事を表示

Inspector から Security Hub に統合した脆弱性通知について考える

# やりたいこと

![inspector.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/89bce2f0-bc4f-391c-14a0-0f1640c75835.png)

以下のページで紹介されている改善後の構成で、

1. 脆弱性が検出されると EventBridge から Lambda1 を起動し、DynamoDB に脆弱性情報を格納する。この時 DynamoDB の パーティションキーとソートキーで重複をチェックし、既にレコードが存在する場合はスキップし、レコードが存在しない場合は DynamoDB に格納する

2. EventBridge Scheduler で 1 日に 1 回だけLambda2 を起動し、DynamoDB から、まだ通知が行われていない脆弱性を取得し Slack へ通知する。Slack への通知が完了すると DynamoDB に格納されている脆弱性のステータスを NEW ⇨ NOTIFIED に更新する

この 2 つを行う。

https://note

元記事を表示

[過去記事]AWS Lambda コード書き換えた時の反映とテストの流れ

## 概要

今回はLambdaのコードを書き換えた時の流れをまとめます。ようはコード書き換え後のルーティン手順です。この手順を行わないとせっかく書き換えたコードが反映されないこともありますのでしっかり抑えておきましょう!

また、今回の説明には下記の記事で構築した内容を使います。詳細は下記をご確認ください。(当該の環境を構築していなくても本記事の内容はご理解いただけると思います!)

https://qiita.com/miriwo/items/7470659f070504e0fafe

## 方法

### 場所の確認

まずはコードが記載されている場所を確認しましょう。
AWSにログイン後、Lambdaにアクセスし、サイドバーの「関数」をクリックします。

![Cursor_と_Lambda-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/fdffa3c0-feba-536c-9a5d-7297e2f991cb.png)

関数名をクリックします。

![Cursor_と_関数_-

元記事を表示

Bedrockのストリーミングレスポンスをストリームのまま返却するLambdaの作り方(LangChainも対応)

Bedrockを使ったアプリをLambdaで動作させたい!
レスポンスはストリームで返したい!!

と思って調べたところ、結構条件があることがわかりました。

https://aws.amazon.com/jp/blogs/news/introducing-aws-lambda-response-streaming/

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-response-streaming.html

## ストリーミングレスポンスを返却するための条件

ストリーミングレスポンスを返却するためにはいくつか条件があります。

### Lambdaの実装方法の条件

Lambdaの実装方法が、以下の方法である必要があります。

* Node.jsのマネージドランタイム
* カスタムランタイム([参考](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes-custom.html#runtimes-custom-response-s

元記事を表示

[過去記事]AWS Lambdaを使ってみよう!(文字列返却編)

## 今回作るもの

冒頭でも触れましたが、今回は「Hello from Lambda!」という文字列をJSONで返すだけのAPIをLambdaで作って見ようと思います!

前述した目的を達成することだけを考え細かい設定は省き進めようと思います。返却文字列の変更などは別記事で紹介しようと思っています。

なお、言語はPythonを用います。

## 準備

### Lambdaの準備

AWSにログインしてLambdaのホーム画面に移動します。「関数の作成」をクリックします。

![Cursor_と_Lambda-1024×292.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/cfa38c72-033b-6347-cb18-369a80b9ee9f.png)

次の画面にて下記の様に設定・選択します。設定後、内容を確認して「関数を作成」をクリックします。

– 関数のプリセット:一から作成
– 関数名:任意の内容でOK(今回はtest_functionとする)
– ランタイム:Python

元記事を表示

【AWS】Lambdaで登録した関数をREST APIで呼び出す方法

# Lambdaに関数を登録する
1.「関数の作成」ボタンを押下する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639599/7f573744-c384-6ad4-5b4d-a3a2ece70b0c.png)
2.関数を作成する(※本稿では、関数名とランタイム以外はデフォルトで設定する)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639599/fa2efaa8-296c-59b1-4e9c-cab9f2fa93f9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639599/44223c68-7d65-8721-9d44-5f9e24fbe0e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

【AWS】EC2経由でパトライトとの連携について②

【AWS】EC2経由でパトライトとの連携について①の続きです。
###### ■Lambda関数
:::note warn
SSM RunCommand実行が必要ですので、「AmazonSSMFullAccess」ポリシーのアタッチが必要。
@aws-sdk/client-ssm、mailparserのnode.jsライブラリはLambdaレイヤーに事前導入済み。
:::
“`ruby:qiita.rb

import { SendCommandCommand } from “@aws-sdk/client-ssm”;
import { ssmClient } from “./ssmClient.mjs”;
import { simpleParser } from “mailparser”;

export const handler = async (event) => {

console.log(“request:”, JSON.stringify(event, undefined, 2));
let res = “0”
l

元記事を表示

グラフ画像を含むPDFをLambdaで動的に生成する

## はじめに

以前も[こちらの記事](https://qiita.com/taisuke-j/items/047bebb3d85b48e5fddb)でTypescript(サーバーサイド)を使ったPDFの生成に関して書いたのですが、今回はグラフ画像を埋め込んだPDFを動的に生成するエンドポイントを実装した際のメモです。「グラフ画像をサーバーサイドで動的に作りたい」、というだけの場合も役に立つかもしれません。

## PDF生成までの流れ

元々は[chartjs-node-canvas](https://www.npmjs.com/package/chartjs-node-canvas)を使ってのグラフ画像の生成を考えていたのですが、node v18で動かず、代わりに[Puppeteer](https://pptr.dev/)でheadles chromeを起動しスクリーンショットを撮る形にしました。ブラウザでのグラフ描画には[echarts](https://echarts.apache.org/en/index.html)を使用しました。以下、生成までの流れとなります。

1.

元記事を表示

HEIC(HEIF)画像をJPEGに一括変換する

# はじめに
 iOS(11以降)では写真を撮影したときに、特に設定をしていなければHEIFと呼ばれる方式で画像を保存します。拡張子はHEICです。この方式は高画質かつファイルサイズが小さいので便利そうなのですが、Apple系のOS以外ではまだサポートが充実していません。今回はHEIC画像を一括(バッチ)でJPEGに変換する方法をいくつか試してみます。

# Windows版ImageMagickを使う
 ImageMagickは様々なフォーマットに対応したツールで、最近HEICを読み込めるようになりました。Windowsバッチで次のように書くと、batファイルを設置した場所と同じ階層のHEICファイルを全てJEPGに変換できます。PATHを通すことができない場合はImageMagickの場所をフルパスで書くことで実行できます。

“`bat
for %%f in (*.HEIC) do (
start convert.exe “%%~nf”.HEIC “%%~nf”.JPEG
)
“`
この例はマルチプロセスで、処理するファイル数と同じ数のプロセスが実行されま

元記事を表示

Step Functionsを使ってみた

# Step Functions使ってみた
仕事でStep Functionsを利用することになり、既に別サービスが稼働しているため私用パソコン・個人AWSアカウントを用いて動作の確認をしてみました。

## ソースコード一式
私のGitHubの下記リポジトリに保存しております。
設定や事前準備は`src/README.md`を確認してください。
(AWS認証情報などは消しております)
[aws-step_functions](https://github.com/k-genki0913/aws-step_functions)

作成したStep Functionsのワークフローは以下になります。

### Step Functionsに関して調べたこと
※全体のソースコードはリポジトリを見て下さい。

#### ▪️sam te

元記事を表示

【AWS】Lambdaで「StartQuery へのリクエスト中にエラーが発生しました」と表示された場合

# 概要

AWS LambdaをCloudformationで作成した際、
「StartQuery へのリクエスト中にエラーが発生しました」
というエラーに遭遇しました。

原因と解決法を紹介します。

# エラー概要

以下でCF実行。

“`yaml
LambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: ‘2012-10-17’
Statement:

Effect: Allow
Principal:
Service:
– sns.amazonaws.com
– lambda.amazonaws.com
Action:
– sts:AssumeRole
Path: “/”
R

元記事を表示

ローカルのAWS Lambda開発環境を整える(hot reload)

ローカルでLambdaの開発をやるために環境を整備したのでやったことを残しておきます。

zenn にも全く同じ内容を書いています。

https://zenn.dev/imishinist/articles/8ff24429f0eb41

今回作成したサンプルの全体コードはこちらのリポジトリです。

https://github.com/imishinist/lambda-sample

## できること
1. ローカルに立ち上げたDockerでAWS Lambdaを動かす
2. 手元からcurlでLambdaを呼び出す
3. ビルド時に自動でLambdaを更新する(hot-reload)

### 動かし方

Goのコード(Lambdaのハンドラ)をビルドしたいときは以下の `make` を実行する。

“`bash
make build-lambda
“`

Lambdaを立ち上げたいときは `docker-compose` で起動する。

“`bash
docker compose up -d –build
“`

## 仕組み

### AWS Lambda を

元記事を表示

OTHERカテゴリの最新記事