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

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

Lambda(python)でS3からファイルを取得し、ファイルのマジックナンバーとMIMEを判定する

# やりたいこと
Lambda(python)で事前にS3バケットへアップロードしたファイルを取得し、ファイルの各メタデータであるマジックナンバーとMIMEを取り、ファイル形式を判定したい

# 構築
・S3バケット
・Lambda
・IAMポリシー
・IAMロール

# やり方
Lambda→S3のポリシー
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“s3:*”
],
“Resource”: “arn:aws:s3:::*”
}
]
}
“`

Lambdaソース
“`
import boto3

def lambda_handler(event, context):
# S3バケットとファイルキーを指定

元記事を表示

Lex Bot の slots の値をLambdaで取得してみる

# はじめに
本記事では、Lexのslotに設定された値を `Code hooks` で呼ばれたLambdaで受け取る処理を実装していきます。

# 環境
– Python:3.12
– Lex:v2

# ゴール
Code hooksで呼ばれたLambdaでLexのslotに設定された値を受け取る

# Lex
本記事では下記のようにslotが1つあるLex Botを想定してます。
何でもよいですが今回は日付入力を想定して、Slot typeを`AMAZON.Date`にしておきます。

– SLots
– Name:get_date
– SLot type:AMAZON.Date
– Prompts:hoge

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247619/6334777b-8087-6fdf-18f3-0a2447610431.png)

– Sample utterances
– {get_date}

![image.

元記事を表示

AWSのインフラ構築におけるベストプラクティスと代表サービスのご紹介

## はじめに
クラウドコンピューティングが進化し、多くの企業や開発者がAWS(Amazon Web Services)を活用して効率的なインフラを構築しています。

しかし、AWSには無数のサービスや設定項目があり、適切な方法で利用しなければ、セキュリティのリスクやパフォーマンスの低下につながる可能性があります。

この記事ではAWSのベストプラクティスについて説明し、特にインフラ構築に役立つ有名なサービスを5つ紹介します。

AWSを使い始めたばかりの方や、さらなる最適化を目指す方にとって参考になる内容です。

## AWSとは
Amazon Web Services (AWS) は、Amazonが提供するクラウドプラットフォームで、スケーラブルなコンピューティングパワー、ストレージ、データベースサービスなどをオンデマンドで提供しています。

https://aws.amazon.com/jp/what-is-aws/

AWSは、企業が物理的なサーバーやインフラを管理する必要なく、柔軟かつ効率的にITリソースを利用できるように設計されています。

これにより、コストの削減やスピー

元記事を表示

AWS LambdaとAPI Gatewayを使用したGETリクエスト対応のサーバーレスアーキテクチャ構築

## はじめに
AWS LambdaとAPI Gatewayを組み合わせることで、インフラ管理を必要とせず、スケーラブルなWebアプリケーションやAPIを構築することができます。

このアプローチはサーバーレスアーキテクチャとして知られており、イベント駆動型の設計により、コスト効率が高く、管理の負担も軽減されます。

この記事では、Lambda関数とAPI Gatewayを使用して、GETリクエストを処理するシンプルなAPIを構築する手順を紹介します。

## 前提条件
この記事の内容を実施するには、以下の要件が揃っている必要があります。

:::note
**AWSアカウント:**
AWSアカウントを持っていることが前提です。

**AWS CLIの設定:**
ローカル環境からAWSにアクセスし操作できるよう、AWS CLIをセットアップし、認証情報を構成しておいてください。

**LambdaとAPI Gatewayの基本理解:**
両サービスの基本的な機能や操作方法についての理解が前提となります。公式ドキュメントや入門書を参考に、事前に学んでおくとスムーズです。
:::

htt

元記事を表示

AWS LambdaとAPI Gatewayを使用したPOSTリクエスト対応のサーバーレスアーキテクチャ構築

## はじめに
AWS LambdaとAPI Gatewayを組み合わせることで、インフラ管理が不要でスケーラブルなWebアプリケーションやAPIを簡単に構築できます。

イベント駆動型のアーキテクチャを採用することで、システムのスケーリング、コストの最適化、運用負担の軽減などのメリットを享受できます。

この記事では、Lambda関数をAPI Gatewayで公開し、シンプルなAPIを構築するための具体的な手順を解説します。

## 前提条件
この記事の内容を実施するには、以下の要件が揃っている必要があります。

:::note
**AWSアカウント:**
AWSアカウントを持っていることが前提となります。

**AWS CLIの設定:**
ローカル環境からAWSにアクセスし操作できるよう、AWS CLIをセットアップし、認証情報を構成しておいてください。

**LambdaとAPI Gatewayの基本理解:**
両サービスの基本的な機能や操作方法についての理解が前提となります。公式ドキュメントや入門書を参考に、事前に学んでおくとスムーズです。
:::

## 達成したいこと
**

元記事を表示

RDSに初期データを自動で投入する方法

# やりたいこと
アプリケーションの起動時に**自動的**にRDSに初期データを入れたい場合があると思います
やり方は複数あると思いますが、今回はLambdaで実装していきます
また、CloudFormation化して全自動で初期データを投入する方法です

# 構成や条件
## 構成
以下の構成と初期プロセスをCloudFormationで自動化
![構成.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1952885/933a782b-e2dd-ddff-fdc2-c7e1bab0326f.png)

## 条件
– Aurora MySQL
– Lambdaで初期データ投入
– RDSインスタンスの起動を条件にEventBridgeでデータ投入用のLambdaを起動
– Lambda LayerはS3のrds-initバケットにrds-layer.zipとして保存
– Lambdaのソースコードはrds-initバケットにlambda.zipとして保存
– 初期データはrds-initバ

元記事を表示

「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}

元記事を表示

サーバーレスCSV出力・ダウンロードの構成

こんにちは!
普段Web開発や保守をしており、
サーバーレス構成で開発を行ったので、その記事を記載します。

## はじめに
今回は、サーバーレスアーキテクチャを活用した出力システムの構成についてご紹介します。
サーバーレスアーキテクチャは、スケーラビリティとコスト効率が高いため、多くの企業で採用されています。
本記事では、AWSのStep Functions、Lambda、RDS、S3を使用して、データを取得し、CSV形式でS3に保存した後、CloudFrontの署名付きURLでメール送信するシステムの構築について詳しく解説します。

## 構成図
![【資料用】記事用_構成図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/415982/bb8a2fff-f6bf-7338-aeae-bdfe38eb87e7.png)

## 各サービスの役割
– Step Functions
– 一連の処理フローをオーケストレーションし、各サービス間の連携を管理します。
– 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

元記事を表示

OTHERカテゴリの最新記事