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

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

AWS Lambdaで簡単な運勢占いAPIを作ってみた

最近、AWS Lambdaを使って簡単なAPIを作成する方法を学んだので、アウトプットとして運勢占いAPIを作ってみました。サーバーレスで動作するため、コストを抑えつつ簡易的なAPIを作りたいときに便利です。

## どんなAPIか?
このAPIは、リクエストを送るとランダムに次の情報を返してくれる運勢占いです。

https://bx7pag052e.execute-api.us-east-1.amazonaws.com/default/fotuneFunction

– 今日の運勢: 「大吉」「中吉」「凶」など
– ラッキーカラー: 「赤」「青」「緑」などのランダムな色
– ラッキーアイテム: 「使い古した靴下」「かたつむりの置物」「賞味期限切れの大福」など、ユニークで面白いアイテム

## 使用技術
– AWS Lambda: サーバーレスでPython関数を実行
– API Gateway: Lambda関数をHTTPリクエストで呼び出すためのインターフェース
– Python: ランダムな運勢やアイテムを生成するためのスクリプト

## APIの動作サンプル
実際にAPIを叩

元記事を表示

Docker+AWS Lambda+Python(Flask)で簡単にサーバーレスAPIを実装する

# 🛢️ はじめに
ローカルの Docker 環境で AWS Lambda(Serverless Framework)と Python(Flask)でサーバーレス API を実装,デプロイします.非常に簡単にAPIを実装できるので便利です.皆さんも試してはいかがでしょうか.

# 🛢️ 自己紹介
初めまして.趣味でweb開発を勉強している273*(ツナサンド) / Kei.と申します.関西の大学生です.最近はフルスタック開発やツール制作を行なっています.まだまだ初心者です.

# 🛢️ 完成品
以下のリポジトリにテンプレートを用意しましたので,お好きに使ってください!

https://github.com/273Do/Sls-Python-Docker-TPL

# 🛢️ 実装
### 使用ツール
– [Docker](https://www.docker.com/ja-jp/):PCの中に仮想環境を作れるツール.他のプロセスと遮断できるため環境の差をなくすことができる.
– [AWS Lambda](https://aws.amazon.com/jp/lambda/):AWSが提

元記事を表示

Lambdaのエラーログを分別する方法

## AWS LambdaのログをCloudWatch Logs Insightsでエラータイプ別に分析する方法

AWS Lambda関数のログデータを効率的に分析し、エラーをタイプ別にカウントした事があったので備忘に残します。
このような場合に役立つツールが**CloudWatch Logs Insights**です。
Lambda関数が出力するログデータをCloudWatch Logs Insightsを使って分析し、エラーをタイプ別に集計する方法について記載します。

### CloudWatch Logs Insightsとは?

**CloudWatch Logs Insights**は、Amazon CloudWatchのログデータに対してクエリを実行し、迅速に必要な情報を抽出・分析するための強力なツールです。
SQLに似た構文を使い、ログメッセージをフィルタリングしたり、メトリクスを集計したりすることができます。これにより、AWS Lambdaをはじめとするさまざまなサービスのログを効果的に活用できるようになります。

### Lambdaから出るエ

元記事を表示

Amazon EventBridgeを使用したEC2上のApache監視/停止検知から自動再起動までの設定手順

## はじめに
AWS EC2インスタンス内でApache(httpd)のサービスを実行している場合、Apacheが停止することを検知する仕組みを導入することは、システムの可用性を確保する上で重要です。

この記事では、Amazon EventBridgeを活用してApacheのサービス停止を監視する方法について解説します。

Apacheサービスの停止を監視し、迅速な対応を可能にするための設定手順を紹介します。

## 前提条件
:::note
この記事では以下のものが前提となります。

**・EC2インスタンスが稼働中で、Apache(httpd)がインストールされていること。**
**・EC2インスタンスにCloudWatchエージェントがインストールされていること。**
**・AWS CLIが設定されていること。**
:::

## 手順1: CloudWatchエージェントのインストールと設定
まず、EC2インスタンスにCloudWatchエージェントをインストールし、Apacheプロセスを監視できるように設定します。

### CloudWatchエージェントのインストー

元記事を表示

AWS LambdaからAmazon Translateを呼び出してみた

## はじめに
本記事は以下の記事の続編です。

https://qiita.com/uccy/items/aaa0d9931095f6e05ba2

前回はLambdaを単体で動かすところまで実施しましたので、今回は**LambdaからTranslateを呼び出してみます**。

今回のゴール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/0feb7194-d67b-1fd3-63f5-16103f1c76dc.png)

参考にしたハンズオンはこちら。

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-confirmation_422.html

## やってみた
マネジメントコンソールにアクセスし、前回作成したLambda関数(translate-function)のページに行きます。
![image.png](https://qiita-image

元記事を表示

PythonでLINEチャットボットを作る

過去に作ったLINEチャットボットを今風にリメイクしたものを投稿します。

### 環境:
 ローカル、Linux(Ubuntu)、python3.12.6

### 1.LINE Developersアカウントの作成:
https://developers.line.biz/ja/ にアクセスしてアカウントを作成する。
(今回はビジネスアカウントを作成)

### 2.プロバイダーの作成
コンソールにログインし、「新規プロバイダー作成」を選択。

### 3.チャットボット(LINEチャネル)の作成
チャネル設定から MessageAPI を選択して各種設定する
※執筆時点でLINE公式アカウントの作成が必要になっているため、画面の指示に従う。

### 4.Message API設定
LINE公式アカウントを作成して、MessageAPIを有効にする。詳しくは以下を参照。
https://developers.line.biz/ja/docs/messaging-api/getting-started/
有効にしたら、URLとアクセストークンを取得する。
また、Webhookを使う

元記事を表示

AWSのlambdaにデプロイされたイメージをローカルで編集する方法

## 概要
最近途中から参画した案件でawsのlambdaを使うことがあったのですが、今まで経験がなかったため備忘録としてまとめます。
ざっくりした内容としては表題の通り、lambda関数にイメージがデプロイされていた場合、どのような手順で内容を編集し、更新するのかについてとなります。

## 前提
– Dockerの環境構築済み
– AWS CLIの環境構築済み
– 既存のlambda関数、イメージが存在する
– 既存リソースの更新であり、新規作成ではない

## 手順

### ECR, docker のログイン
AWSにおいてイメージはECR(Elastic Container Registry)で管理されます。そのため、外部からイメージを取得するには、ログインしておく必要があります。

“`
aws ecr get-login-password –region YOUR_REGION | docker login –username AWS –password-stdin YOUR_ACCOUNT_ID.dkr.ecr.YOUR_REGION.amazonaws.com

元記事を表示

SecretManagerからSecretを取得して外部APIを実行させるLambda関数サンプル

# 概要
・OAuth2.0のクライアント認証で使うトークンを取得する。
・SecretManagerにClientSecretとClientIdを保持している
・confidentialを作成してAPI Gateway経由で外部APIを実行し、取得したトークンをAPI Gatewayのステージ変数へ格納する。

“`
import json
import ast
import boto3
import urllib.request
import urllib.parse
import base64
import os
import logging
from botocore.exceptions import ClientError

logging.basicConfig(
format=’%(asctime)-15s %(levelname)s %(message)s’,
level=logging.INFO
)

# AWSクライアント
apigw_client = boto3.client(“apigateway”)

# リージョン取得
region_n

元記事を表示

Pythonで学ぶAWS Lambdaを活用したEC2インスタンス監視とNLBターゲットルールの自動切り替え

## はじめに
AWS Lambda関数を用いて、特定のEC2インスタンスの状態を監視し、両方のインスタンスが停止した際にNLBのリスナーをメンテナンスモードに変更する方法について解説します。

AWS SDK for Python(boto3)を活用して、EC2インスタンスの状態確認とNLBのターゲットグループの変更を行います。

本記事では、各コードの部品を順を追って説明し、全体の流れを把握できるようにします。

## コードの部品紹介
AWS Lambda関数を使用して特定のEC2インスタンスの状態を監視し、両方のインスタンスが停止している場合にNLB(Network Load Balancer)のリスナーをメンテナンスモードに変更する処理を行います。各部分を解説します。

### 1. インポートとクライアントの初期化
“`python
import boto3

def lambda_handler(event, context):
ec2_client = boto3.client(‘ec2’)
elb_client = boto3.client(‘elb

元記事を表示

Pythonで学ぶAWS Lambdaを活用したEC2インスタンス監視とALBルールの自動切り替え

## はじめに
本記事では、AWS Lambda関数を用いたEC2インスタンスの監視と、ALB(Application Load Balancer)のルール切り替えについて解説します。

EC2インスタンスが停止した場合に、ALBをSorryページに切り替える仕組みをコードと共に紹介します。

## コードの部品紹介
Lambda関数のコードを大きなまとまりごとに解説していきます。

### 1. 必要なライブラリとクライアントの準備

“`python
import boto3

def lambda_handler(event, context):
ec2_client = boto3.client(‘ec2’)
elbv2_client = boto3.client(‘elbv2’)
“`

**解説:**
まず、AWS SDK for Python(boto3)をインポートし、EC2とELBv2(Elastic Load Balancing v2)のクライアントオブジェクトを作成します。これにより、Lambda関数内でEC2インスタンスとALBのルール設定

元記事を表示

Error: You must sign in or use a license key with Serverless Framework V.4 and later versions. Please use “serverless login”.の解決方法

Serverless Frameworkをv3系からv4系にアップグレードしたところ、デプロイワークフローで以下のエラーが出たので、解消時の手順を記載します。

“`
$ nest build && sls deploy

✖ Error: You must sign in or use a license key with Serverless Framework V.4 and later versions. Please use “serverless login”.
at Authentication.getAuthenticatedData (file:///home/runner/.serverless/releases/4.4.3/package/dist/sf-core.js:647:10535)
at async Authentication.resolverAuthenticate (file:///home/runner/.serverless/releases/4.4.3/package/dist/sf-core.js:649:20575)

元記事を表示

AWS_LAMBDA_SECURITY_NOTIFICATION への対応

# はじめに

もう少し皆さんも興味が湧くような内容を紹介していきたいと日々考えている [@\_\_\_nix___](https://twitter.com/___nix___) です。

今回もAWSからの通知でお悩みの方向けの記事です。

# 背景

AWSからの通知例

これは、2024 年 7 月 4 日の Lambda GetFunction API 認可の変更についてのご連絡のフォローアップで、お客様の対応が必要となる場合があります。この変更の実施は、以前にお知らせした 2024 年 7 月 27 日から 2024 年 10 月 2 日に延期されました。また、お客様に確認と必要な変更の時間を設けるため、お客様のアカウントを 2024 年 XX 月 XX 日まで例外リストに追加しました。 以前は、ListTags API を明示的に使用する場合にのみ ListTags に対する権限が必要でした。しかし、GetFunction API 権限を持つプリンシパルは、ListTags API が明示的に拒否されている場合でも、G

元記事を表示

【AWS】localhost:3000とAPI Gatewayでやりとりするために必要な設定

どうもこんにちは。

今回は、ローカル環境で動かしているアプリケーションとAPI Gatewayでやりとりするための方法をメモとして残しておきたいと思います。

# 環境

今回使用する環境はこちらです。

– ローカル環境
– Next.js([`Vercel V0`](https://qiita.com/PDC-Kurashinak/items/bc25e63ba406c0e24eef)で作成したアプリケーションを元にしています。)
– AWSサービス
– API Gateway
– Lambda(python3.12)

`Vercel V0`については、以下の記事で紹介しています。

https://qiita.com/PDC-Kurashinak/items/bc25e63ba406c0e24eef

# 前提

今回は、ローカル環境のアプリケーションと`Lambda`関数の作成は省略します。

# API GatewayでAPIを作成

## 1. APIの作成

## 1-1. 作成画面へ

API一覧画面の右上にある「APIの作成」ボタンをクリッ

元記事を表示

ExcelのLAMBDA関数を極める:独自の関数を作成するための完全ガイド

## はじめに

Excelの新機能「LAMBDA関数」について、詳しく解説していきます。この革新的な機能により、Excelの数式言語がより強力になり、ユーザーが独自の関数を定義できるようになりました。以下、15章に分けて、LAMBDAの基礎から応用まで、コード例を交えながら丁寧に説明していきます。

## 第1章:LAMBDA関数の基本

LAMBDA関数は、Excelユーザーが独自の関数を作成できる画期的な機能です。これにより、複雑な計算や繰り返しの多い作業を簡単に行えるようになりました。LAMBDA関数の基本的な構文は以下の通りです:

“`
=LAMBDA(パラメータ1, パラメータ2, …, 計算式)
“`

例えば、2つの数値を足し算する簡単な関数を作成してみましょう:

“`
=LAMBDA(x, y, x + y)
“`

この関数を使用するには、セルに直接入力するか、名前付き関数として定義します。LAMBDA関数を使うことで、Excelの標準関数では実現できなかった複雑な計算も可能になり、作業効率が大幅に向上します。

## 第2章:名前付き関数の作成

元記事を表示

特定のLambdaを指定した時刻に実行する(Node.js)

Lambdaで、自分自身を1分後に呼び出せるようにしてみました。

## 要約
– EventBridge Schedulerを使用
– 2種類のロールを用意する必要がある
1. 実行ロール
1. EventBridgeのスケジュールに付与するロール
– 作成しようとしているスケジュールと同名のスケジュールがあるとエラーになるので、先に削除が必要

## IAMロールの用意
### 1. 実行ロール
Lambdaで実行する場合、Lambdaの実行ロールに下記を含める
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Statement1”,
“Effect”: “Allow”,
“Action”: [
“scheduler:CreateSchedule”,
“scheduler:DeleteSchedule”,

元記事を表示

「Lambda GetFunction API 認証の変更に関するフォローアップ」に慌てて調べたら原因はAWS管理ポリシーだった

今回は時事ネタというか。。

# Problem

2024/09/29にAWSから次のようなタイトルの警告メールが届きました:

> __[要対応] Lambda GetFunction API 認証の変更__ に関するフォローアップ | [Action Required] Follow up on changes to Lambda GetFunction API authorization [AWS Account: XXXX] [XX-XXXX-X]

本文には以下のようにあって・・・

> ListTags API を明示的に使用する場合にのみ ListTags に対する権限が必要でした。しかし、GetFunction API 権限を持つプリンシパルは、ListTags API が明示的に拒否されている場合でも、GetFunction 呼び出しによって出力されたタグ情報にアクセスできました。 __2024 年 10 月 2 日以降、Lambda は GetFunction API を呼び出すプリンシパルに ListTags API に対する明示的な許可権限が設定されたポリシー

元記事を表示

Pythonで湧き水APIを触ってみる+LambdaでAPIを自作してみる

# はじめに
インターネット上でデータをやり取りする際、APIは非常に便利なツールです。
APIを利用することで、さまざまなデータにアクセスしたり、サービスを実行したりすることができます。
しかし、「APIを自分で使うにはどうすればいいの?」と疑問を持つ方も多いかもしれません。

本記事では、APIの基本的な概念から始め、自分でAPIを実行し、その応答を確認する方法を紹介します。

前半でAPIとは何かを説明した上で、Pythonを使って実際にAPIを呼び出し、データを取得する体験をしてみましょう。
そして後半では、AWS Lambdaを使用して自分で関数(API)を作成しLambda上でのテストとVScodeを使用してPythonで自作API呼び出しまでを行います。

この記事は以下のような人におすすめです。

– APIを実行する方法が知りたい
– AWS Lambdaを使用した関数作成の方法が知りたい

# 記事の構成

**【前半】**
APIとは何か?というところから湧き水APIを呼び出して応答を確認するところまでを行います。
1. APIって何?
1. 湧き水A

元記事を表示

LambdaからLex インテントのサンプル発話を更新しビルドする

# はじめに
本記事では、AWS Lambda のスクリプトからLex Bot のサンプル発話を更新し、DRAFTバージョンをビルドする処理を実装していきます。

# 環境
– Python:3.12
– Lex:v2

# ゴール
Lambda関数から下記の2点を実行する
– Lex Botのサンプル発話の内容を更新する
– Lex BotのDRAFTバージョンをビルドする

LambdaからLexのビルドについては下記の記事に実装しています。

https://qiita.com/enumura1/items/2e1564871f861f2578ac

# Lex
本記事では下記のように6つのインテントのあるLex Botを想定しています。
“`:インテント(初期)
・intent0001(サンプル発話:あああ)
・intent0002(サンプル発話:いいい)
・intent0003(サンプル発話:ううう)
・intent0004(サンプル発話:えええ)
・intent0005(サンプル発話:おおお)
・FallbackIntent
“`
これらLex インテント 6つのう

元記事を表示

「AWS Hands-on for Beginners Serverless #3 AWS Lambda と AWS AI Services を組み合わせて作る音声文字起こし & 感情分析パイプライン」をAWS CLIでやってみる

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-3-2022-reg-event.html?trk=aws_introduction_page

上記、「AWS Hands-on for Beginners Serverless #3 AWS Lambda と AWS AI Services を組み合わせて作る音声文字起こし & 感情分析パイプライン」 をAWS CLIでやってみる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/de799de6-3293-eb51-4710-8764f7f12825.png)
ハンズオンから引用

# 03 S3 トリガーで Lambda ファンクションを起動する
## S3バケット作成
### 変数
“`bash:コマンド
# バケット名
date_var=$(date +%Y%m%d) \
&& echo ${date_var}

元記事を表示

AWS Lambdaを単体で動かしてみた

## 参考にしたハンズオン
公式で公開されている以下のハンズオンを見ながら自分でやってみました。

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-confirmation_422.html

このハンズオンのゴールは以下の構成ですが、本記事ではAWS Lambdaを単体で動かしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/a0ef753a-a545-9764-d3df-99f68a0ec025.png)

## やってみる
マネジメントコンソールにアクセスし、Lambdaのページにアクセスします。
「関数の作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3848705/c905d830-ab7f-25c1-710e-f2

元記事を表示

OTHERカテゴリの最新記事