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

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

【AWS】Connectを利用して自動電話通知機能実現

従来、業務サーバーは障害発生時、CloudWatchLogsにログを溜めてメールにて監視担当者に通知する仕組みかと思いますが、データセンター等大規模障害は発生したら、メールサーバーも使えなくなり、従来の障害検知時の通知仕方では、通知できなくなる課題がありました。
メールサーバーの不調や大規模障害発生時も、監視担当へ支障なく通知できるよう監視仕組みを見直しました。メールではなく、AWS Connect機能を利用して自動電話通知できるよう対応をしました。
■構成図(サーバー等の記載は割愛とします)
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600067/39fce7b2-849d-0221-6f4e-8a0391e01ab1.png)

■設計ポイント
AWS Connectでの自動電話通知は、後で履歴を追跡できるようDynamoDBで電話履歴を残す。
AWS Connectで予め取得した発信者電話番号は、業務上使いませんので、もし電話が来る場合、業務用の電話番号を自動的に案内する。

■AW

元記事を表示

【初心者】AWS ELEMENTAL MEDIACONVERTでのスムーズな動画変換ガイド

この記事では、MediaConvertとLambdaを利用して動画ファイルをMP4形式に変換し、完了またはエラーのステータスに関する通知を電子メールで受け取る方法を共有します。開発フレームワークはAWS Amplifyです。

## 動画ファイルの変換と配信の効率化

動画ファイルのサイズを圧縮し、ストリーミング速度を向上させ、データ転送のコストを削減するためには、Amazon Elastic TranscoderまたはAWS Elemental MediaConvertなどの動画変換サービスを利用することができます。

## AWS Elemental MediaConvertの概要
### [AWS Elemental MediaConvert]​​って何?
AWS Elemental MediaConvertは、ファイルベースの動画変換サービスであり、放送レベルの機能を備えています。これにより、オンデマンド(VOD)の動画コンテンツを容易に作成し、大規模な多画面配信が可能となります。

### AWS Elemental MediaConvertの主な機能は、以下のとおりです

元記事を表示

AWS Lambdaでサーバーレスプログラミングをマスターする🚀

## 🌱 プロジェクトの背景: 「スマートガーデニングシステムの革新」

考えてみましょう。あなたは「スマートガーデニング」という革新的なプロジェクトに取り組んでいます。目標は、植物の成長を最適化するために、温度、湿度、土壌の状態をリアルタイムに監視する高度なシステムを開発することです。しかし、一つの大きな課題が立ちはだかります。これらのデータを効率的に処理し、適切なタイミングで植物に水や栄養を供給するためには、連続して稼働するサーバーが必要ですが、これは高い維持費と管理の複雑さを意味します。

## 🌟 AWS Lambdaの導入

AWS Lambdaは、このようなシチュエーションに最適なソリューションです。サーバーのプロビジョニング(実際の物理サーバーを準備し、使えるように設定すること)や管理の必要がなく、必要な時にのみコードを実行するリソースを提供します。センサーからのデータがLambda関数をトリガーし、必要な処理を行います。処理が完了すれば、Lambdaは自動的にシャットダウンし、リソースの無駄遣いを防ぎ、コストを削減します。
なんかAirbnbみたいですよね。

## ✅

元記事を表示

ソラカメで撮影した風景から GPT-4V で富士山を探す

:::note info
この記事は [SORACOM Advent Calendar 2023](https://qiita.com/advent-calendar/2023/soracom) の14日目の記事です。
前日の記事は「[ATコマンドを使って SORACOM に SMS を送信する](https://qiita.com/shozoo/items/2070681c034be9829404)」でした。
:::

## 作成のきっかけ

私が現在所属しているソラコムのオフィスからは、この時期富士山がきれいに見えることがあります。私はどちらかというと家で仕事したい派なのですが、「オフィスから富士山が見えるぞー」という情報があれば出社したくなるかもと思い、日次で富士山チェックをしてみようと思いました。

また、2023 年は生成 AI で非常に盛り上がった年だったので、何か作ってみたいなと思ったのが率直なきっかけです。Open AI は新機能を多くリリースしましたが、特に画像の扱いができそうだったので試してみることにしました。

https://openai.com/researc

元記事を表示

[13日目] 学校の食堂をIT化させる話 LINE Messaging APIで作る食堂IT化(後編)

こんにちは、なりかくんと申します。
この記事はなりかくん Advent Calender 2023の13日目の記事です。

この話は、1日目から始めた学校の食堂をIT化させる話の続きとなります。前回は、LINE Messaging APIとGASを使ったものについて紹介しました。今回は、LINE Messaging APIとPythonを使ってLINE Botを作りたいと思います。

# なぜPython?
まず最初に「なぜPythonになったのか。GASではだめなのか。」について簡単に説明します。前回の記事でも書きましたが、キャッシュレスシステムを導入する際にPayPay APIを利用します。そこで、PayPayのSDKを使いたいわけなんですけど、GASではSDKの導入をすることが出来ません。

そこで、数日前の記事で書いたPythonでPayPay APIを使えるSDKをそのまま流用したいと考え「じゃあLINE BotをPythonで作っちゃえばいいんだ」という結果に至りました。

# サーバーレス環境
前回から言っていますが、今回は「サーバーレス環境」を目指して作っていきたいと考

元記事を表示

selenium + AWS lambda開発環境の構築

## はじめに
AWSの開発環境の構築の備忘録です💁
初心者です😅
間違えてる部分多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇

環境構築はかなり苦労しました。
なので図にしてみました。
わかりづらい部分もあるかと思います。
ただ、図にするのは時間がかかってしまうのがデメリットですが、理解の落とし込みはかなりしやすいなと感じました。

## 🦁**結論**🦁
## 手順
1. Cloud Shellを開く
2. Pythonのバージョン確認
3. Seleniumのインストール(バージョン3.141.0)
4. CloudShell上で保存用ディレクトリを作成
5. chromedriverをダウンロードして展開
6. headless-chromiumをダウンロードして展開
7. いらなくなったzipファイルの削除
8. headlessディレクトリをzip化
9. S3のバケット作成
10. zipファイルをS3にコピーする
11. Seleniumレイヤーの作成
12. headlessレイヤーの作成
13. 関数の

元記事を表示

SQLサーバーに接続してSQLを実行するlambdaをTerraformで作成してみる

## はじめに
こんにちは![Fusic Advent Calendar 2023](https://qiita.com/advent-calendar/2023/fusic)の12日目を担当します@pensuke628です。
最近AWSのお仕事でLambdaを使い始めましたが、Lambdaって便利だな〜と感じる日々です(感想が薄い)
今回は、SQLサーバーに対してSQLを実行するlambdaをTerraformを作ってみたので、記事にしたいと思います。使用したterraformのバージョンは以下になります。

“`
$ terraform -v
Terraform v1.5.4
“`

また、最終的なフォルダの構造は以下のようになっています。
“`
.
├── lambda_function.py
├── lambda_function.zip
├── pyodbc.zip
└── terraform
├── backend.tf
├── main.tf
├── provider.tf
├── terraform.tfstate
├──

元記事を表示

CloudWatch のエラーログを Slack 通知

# はじめに

CloudWatch に出力されたエラーログを Slack 通知したいと思います。
CloudWatch の通知と言えば、以下の様なアラームの状態変更を通知するパターンもあるかと思います。

![2023-12-06_8.20.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125540/20e33385-5a10-9bf8-66a3-938217d4338e.png)

この場合、パッと見、エラーの内容が分からず、コンソールなどで詳細を確認しに行く必要があるため少し面倒です。

今回は、エラーの内容を Slack に通知できる様にします。

# 完成イメージ

![2023-12-05_20.47.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125540/9edea962-7ccd-405c-1c1e-c3ae1c37d24e.png)

エラーログやステータス、発生日時や該当

元記事を表示

公式LINEアカウントへのログイン処理をAWS Lambda経由で実装してみた

## はじめに
本記事は[PERSOL PROCESS & TECHNOLOGY Advent Calendar 2023](https://qiita.com/advent-calendar/2023/ppt)の記事です。
業務でLINEとAWS実装を経験することがあり、独学ながら実装したお話を書いてみようと思います。といってもLINEの公式ドキュメントがすごく丁寧に教えてくれているので、こんなふうに実装できるんだ〜便利〜とか思ってくれれば良きです。では

## 背景
今回日本で利用者数が多いSNSであるLINEと、サーバーレスであるAWS Lambdaを利用しています。
>LINEは、月間ユーザー数9,500万人(2023年6月末時点)と多くのユーザー数を抱えています。
参照:[LINEユーザー層](https://campus.line.biz/line-ads/courses/user/lessons/oada-1-2-2)

ともあり、年齢層に関係なく利用ユーザーも多いです。(個人的には思ったより高齢層というのも関係なく高いのに驚き)使いやすくて便利。ですね。

Lambda

元記事を表示

CloudFront + Cognito認証(cognito-at-edge)で、index.htmlを追加したい

## 概要

– CloudFrontでCognito認証したい場合は、Lambda@Edgeを使って[cognito-at-edge](https://github.com/awslabs/cognito-at-edge)を扱った記事は多い。
– 一方、CloudFrontでファイル名を含まないURLをリクエストした際にindex.htmlを追加する方法としてはCloudFront Functionsを使ったサンプルの記事が多い。([公式でも記載](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/example-function-add-index.html)されている)
– 問題点はcognito-at-edgeと同時に使いたい場合にビューワーリクエストで指定することになるため、どちらか片方しか設定できないこと。
– オリジンリクエストでCloudFront Functionsは指定できない。
– オリジンリクエストでLambda@Edgeは可能だが、認証系がキャッシュされてし

元記事を表示

AWS Lambdaで手軽にNode.jsコンテナ稼働

Node.jsなLambdaを、お手軽にコンテナ化して運用したい。

分かりやすいメリットとしては、以下のようなものがある。

* [Lambda Layers](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/chapter-layers.html)等で頑張って導入していた外部ライブラリを全てイメージ内に同梱できるため、取り回し易い
* [Lambda Runtime同梱のAWS-SDK](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html)と異なるバージョンのAWS-SDKを使いたい場合も、これに該当する
* [コードパッケージサイズ上限が10GiB](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-limits.html#function-configuration-deployment-and-execution)であるため、コードサイズに関して普

元記事を表示

【AWS】署名付きURLの生成&アップロード処理

## はじめに
AWS S3の署名付きURLを使用してファイルアップロード処理をする方法について紹介します。
背景としてはAPI Gateway→Lambdaを介してS3にファイルをアップロードする機能を作成していたのですが、API Gatewayでは10MBまでのファイルしか受け付けない仕様となっており10MB以上のファイルをアップロードするケースがでてきたためこの問題を解消する必要がありました。そこで、画面から直接S3にファイルをアップロードするよう、S3の署名付きURLを使うアップロード処理に変更しました。

## 処理の流れ
1.画面からAPI Gateway→Lambdaを経由して、S3から署名付きURLを取得する。
2.取得したURLを使用していアップロードを実施。

## ソースコード
### 署名付きURL取得処理
API Gatewayの設定は割愛して、Lambdaに設定するソースコードのみ紹介します:point_up_tone1:言語にはNode.jsを採用しています。

“`javascript
// 必要なnodeモジュールを読み込む
const { S3Cl

元記事を表示

pgauditを設定して特定カラムアクセス時にemail通知を投げるシステムの構築

# 要点

– テーブル中に記録された個人情報アクセスの監視。
– 開発者並びに特定ユーザが、テーブル中の特定カラムを参照した場合にemail通知を送信する。
AWSを用いて構成した。システム構成図は以下。

![pgaudit_infra_page-0001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367227/42df63a3-85d4-5b54-0fdb-37fc4b0efbaf.jpeg)

# 構築手順
[準備.pgAuditについて](#1-pgAuditについて)
[1.PostgreSQLの設定](#1-PostgreSQLの設定)
[2.CloudWatch Logsのサブスクリプションフィルター設定](#2-CloudWatchLogsのサブスクリプションフィルター設定)
[3.SNSトピック作成](#3-SNSトピック作成)
[4.Lambda関数でメッセージ構築](#4-Lambda関数でメッセージ構築)
[ex.TerraformによるIaC化](#5-Terraform

元記事を表示

EC2を自動起動停止させるLambdaをNode.js18に移植した

## はじめに

EC2を自動起動停止させるLambdaをたぶんNode.js v6かv8のころから使ってきました。
Node.js v14まではコードを修正せずに動いたのですが、v18に上げたらそのままでは動かなかったので、やったことを残しておきます。

## Node.js v14まで

### ソースコード

元々使っていたコードは下記です。

“`typescript:index.js
var aws = require(‘aws-sdk’);
var ec2 = new aws.EC2();

exports.handler = (event, context, callback) => {
‘use strict’;

let filter_status;
switch (event.type) {
case ‘start’:
filter_status = ‘stopped’;
break;
case ‘stop’:
filter_status

元記事を表示

GitHub Actions、キャッシュで時間短縮(とLambda更新で少し苦労)した話

# 取り組んだこと
以前投稿した[こちらの記事]()で、workflowを作成しました。
このときは、workflowはとりあえず動くものから、といった形で作業していました。

**作業前のworkflow**

https://github.com/eno-conan/githubaction-python-docker-cache/blob/main/.github/old-workflows/old.yaml

今回は、**キャッシュを利用して、実行時間短縮を図ろう**!
ということで作業を行っていました。

キャッシュは以下の2カ所に設定していきます。
– python関係のライブラリをインストール
– DockerイメージのPushまでの過程

## python関係のライブラリをインストール
`github actions pip cache`と検索すると、以下リポジトリが見つかりました。

https://github.com/actions/cache

関連する実装を色々確認して、以下の実装を使わせていただきました。
Pythonとpipのそれぞれのレイヤーでキャッシ

元記事を表示

AWS Lambda関数作成の流れ

AWS Lambda関数作成の流れ

## はじめに
自身で作成したAWS Lambda関数作成の流れの備忘録です💁
初心者です😅
間違えてる部分多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇

始めてAWS Lambdaに携わる方などの少しでも参考になればいいなと思います😆

また各詳細はこれから、作成していく予定です。

## 作成したもの
「janコード」をリクエストしたら商品名と価格をレスポンスしてくれるAWS Lambda関数を作成

![unknown.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3522630/95930371-9435-b41c-1552-6e715f21c1a0.png)


## 開発においての一連のプロセス
1. Pythonファイルで実行
2. CSVを読み込むデータを取得
3. API Gatewayを通してLambda関数へリクエスト
4. Lambda関数からリクエストあったものを処理
5. Lambda関数で処理した内容をPy

元記事を表示

はじめてのRubyバージョンアップ対応とCould not find net-pop-0.1.2, net-smtp-0.3.3, rake-13.0.6 in locally installed gems

# はじめに
今年のカレンダーはとある会社のとあるチームで活動した1年間を振り返っていきます

## 登場人物

### アーキテクチャ先生:
AWSが好きな新上司。Docker on Lambdaを利用したサーバーレスアプリケーションのアーキテクチャなどが得意。いつも忙しい。

### ちいかわトミカさん:
先輩で頼りになる方。疲れたらちいかわトミカで遊んでいる?よくダジャレを言う。得意なダジャレは「今日言う共有事項はないです」

# はじめてのバージョンアップ対応

私「そろそろRails6のサポートとlambdaランタイムRuby2.7のサポート期限が近いので対応しないといけないですね」

ちいかわトミカさん「調べたことなどはまとめておいてもらえると助かります」

アーキテクチャ先生「社内でも対応できているところは少ないと思うのでお願いします」

# はじめてのバージョンアップ対応
Railsの対応で遭遇したエラーは以下の2種類

“`
Failure/Error: require_relative ‘../config/environment’

NoMethodError:

元記事を表示

API Gateway+LambdaからECS Fargateへの移行

# はじめに
[Globee Advent Calendar](https://qiita.com/advent-calendar/2023/globee)11日目の記事です。
abceedのサーバーサイドの開発及びインフラを担当している清水が、abceedが現在抱えている課題とその改善案についてご紹介します。

# abceedインフラの現状
abceedのバックエンドには、APIサーバーが稼働しており、abceedの大半の機能が実装されています。
このAPIサーバーのインフラは、下図の通り、AWS API GatewayからLambdaを実行するシンプルな構成となっています。

現在のインフラ構成(一部抜粋)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165221/90423fa4-2170-2c5b-4b9a-4398d65a907b.png)

# 解決したい問題
API GatewayとLambdaを組み合わせた構成は、フルマネージドのサーバーレス環境のため、コストを抑え

元記事を表示

Agents for Amazon BedrockでWeb上のブログやニュースを要約する

# はじめに
生成系AIを活用して長い文章を要約したり、Web上の記事 (ブログやニュース等) に対する見解を得る方法として、これまではOpenAIのFunction Callingを使用する方法がメジャーでしたが、AWS re:Invent 2023で **「Agents for Amazon Bedrock」** がリリースされたことで、ほぼ同じ機能をAmazon Bedrockで完結して実現できるようになりました。

今回は、タイトルの通り「Agents for Amazon Bedrock」を活用してWeb上のブログやニュースを要約する仕組みを作る方法を解説します。

:::note warn
Web上の記事やファイルを取得 (スクレイピング) する際は、引用元の著作者の権利を侵害したり、規約に抵触しないようにご注意ください。

<参考> https://pig-data.jp/blog_news/blog/scraping-crawling/scrapinglaw/
:::

# Agents for Amazon Bedrockとは?
「Agents for Amazon

元記事を表示

Amazon Bedrock(Claude2.1) Excelの設計書をDocumentLoaderで読み込みAWSでAPIを作成

前回、Amazon Bedrockを試した流れで、Excelの設計書からAWSのAPIを作成する検証をしてみました。
以下の記事の続きになっているので、詳細は以下を参照してください。

https://qiita.com/dorcus-rectus/items/6e32cd15719790c9a13a

Cloud9を前提としています。
今回の内容を試すには、以下のパッケージをインストールする必要があります。

“`bash
$ pip install boto3
$ pip install langchain
$ pip install unstructured
$ pip install networkx
$ pip install pandas
$ pip install openpyxl
“`

Excelの設計書を読み込んでコードを作成するPythonスクリプトです。

“`python:test-document-loader
from langchain.document_loaders import UnstructuredExcelLoader
from lan

元記事を表示

OTHERカテゴリの最新記事