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

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

GitHub ActionsでDockerイメージのECRプッシュにキャッシュ適用(&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

元記事を表示

Custom Actionの門を叩いてみた

# 取り組んだきっかけ
先月末から今月の上旬にかけて、Github Actionsに浸かっています。
色々触っている中で、**Custom Action**が気になり始めました。

あるworkflowを作成時、AWS Lambda更新のため、以下を利用しました。

https://github.com/int128/deploy-lambda-action

どんなことをしているか、大雑把にはわかりましたが、
まずは、**一通りリリースまでやってみよう!**
ということで、より初歩的なCustom Actionを探しました。

### Custom Actionとは?
`Custom Action`は、workflow内の`uses:`で記述したアクションのことです。

https://docs.github.com/ja/actions/creating-actions/about-custom-actions

`actions/checkout`がその一例です。
“`yaml
steps:
– uses: actions/checkout@v4
“`
https://g

元記事を表示

はじめての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

元記事を表示

Agents for Amazon Bedrock から複数のLambda関数を呼び分ける

Agents for Amazon BedrockからLambda関数を呼び出します。
自然言語の問い合わせを元に、複数のLambda関数の中から適したものを選択し引数を考えて実行、実行結果をLLMで整形して応答します。

# そもそもAgents for Amazon Bedrockとは何なのか
– 自然言語で呼び出せるAPI(Lambda)のオーケストレーターです
– API(Lambda)の呼び分けルール、順序性や関連性も自然言語(とOpenAPIスキーマ)で定義できます
– ベクトルデータストアとしてKnowledge baseもオーケストレーションできます
– オーケストレーターなので、Agentだけで何か処理が出来るわけではありません(これ重要)

# 今回作ったもの
今回作ったものは、以下の3サイトに対応したLambda関数を作成しておき、それをAgentから呼び出しています。
– Yahoo天気(手抜きで東京限定)
– Yahoo乗換案内(手抜きで今すぐ出発)
– Wikipedia

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

元記事を表示

【AWS】Boto3のよく使うメソッドのチートシート(S3編)【覚え書き】

## はじめに
AWSのLambdaやGlueでコードを書くときによくBoto3というライブラリを使用します。
Boto3には多くのメソッドがありますがその中で個人的に比較的使用頻度の高いメソッドとその利用例のコードをこの記事でまとめました。
※今後必要に応じてアップデート予定です
※ここではS3の”オブジェクト”を”ファイル”と表現しています
この記事で紹介しているメソッド一覧
|*メソッド名* |*利用シーン* |
|———-|————————–|
|head_bucket |バケットの存在確認 |
|head_object |ファイルの存在確認、アップロード日時などの情報の取得 |
|list_objects_v2 |フォルダ内のファイル一覧取得 |
|get_object |ファイルの取得 |
|put_object |ファイルのアップロード |
|delete_object |ファイルの削除 |

## S3のバケットやファイルの存在確認
### バケットの存在確認
####

元記事を表示

CloudFormationを使わないLambdaのCICDについて

## はじめに
この記事は[ディップ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/dip-dev)の10日目の投稿です。

この記事では、あるシステムで導入したLambdaのCICDについて紹介をしたいと思います。

## LambdaのCICDについて
LambdaのCICDは現在(2023/12時点)でCloudFormationを使用したものがメジャーかと思いますが、
今回はそちらを使わず、以下の内容で構成しました。
CloudFormationを使用しなかった背景などは後ほど説明させていただきます。

### 使用したもの
– GithubEnterprise(GHE)
– AWS CodePipeline
– AWS CodeBuild
– AWS CodeDeploy
– AWS S3
– AWS Lambda
– AWS SQS(テスト実行用)

![lambda_ci_cd_v1.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

特級呪物と化したAWS IoT Enterprise Buttonを勤怠ボタンとして活用する

この記事はHRBrain Advent Calendar 2023 9日目の記事です。

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

## [はじめに](#header1)
初めまして。11月からHRBrainで業務委託として関わっている [yakiniku0220](https://twitter.com/yakiniku040220)です。
12月になり、いよいよ年末感が少しずつ出てきましたね。
年末といえば大掃除ですが、一気にやるのは億劫なので私は週末に細かくやっています。
そこで久々にあるものを発見しました。

 ![IMG_0369.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271450/145e701b-867a-81e7-4b9d-a31c9581d60f.jpeg)

そうですAWS IoT Enterprise Buttonです。

HRBrainでは各々がtimesのチャンネルを作っており、そこで作業の開始と終了を投稿してい

元記事を表示

Lambda go1.xランタイムからprovided.al2に変更時の備忘

## 変更に至った経緯
>Lambda 用の Go 1.x マネージドランタイムは Amazon Linux AMI (AL1) に基づいています。Amazon Linux AMI のメンテナンスサポートが 2023 年 12 月 31 日に終了するまで、Lambda は引き続き Go 1.x マネージドランタイムをサポートします。Go 1.x ランタイムを使用している場合は、関数を provided.al2 に移行する必要があります。この移行ではコードの変更は必要ありません。必要な変更は、デプロイパッケージの構築方法と、関数の作成に使用するランタイムに関するもののみです。

Lambdaのgo1.xランタイムのサポートが2023/12/31で終了になるとの話を受け、急遽go1.xランタイムからprovided.al2に変更する必要が出たため、変更に至りました。

## 環境について
まず、当方の環境はDEV、STG、検証、本番環境と4つあり、DEV環境以外はすべてCIでビルドして
CloudFormationを用いてLambdaの更新を行なっている。goのbuildコマンドで実行ファ

元記事を表示

スマートロック sesame を line から開閉してみた

## この記事について
この記事は Akatsuki Games Advent Calendar 2023 の8日目の記事です。
Advent Calendar の7日目はなかひこくんの
[Terraform で CloudRun + Identity-Aware Proxy をやっていく 2023](https://hackerslab.aktsk.jp/2023/12/07/105429) でした。
記事内にある基盤は本当にお世話になっていて、自分もクライアントの立場から貢献をしていきたいところです…!

## 作るきっかけ

自分は 自宅のドア と アパートのエントランスドア(この規模では珍しい気がする)を開ける解錠ボタン にスマートロックのsesameを使用しています。
また、wifiモジュールを使用してbluetooth圏外からも操作できるようにしています。
ただ操作はsesame公式のアプリを使用していたのですが、wifi経由だと反応しない場合が何回かあり家に入りたいのに入れない!という状況があったためより使いやすい手段を探す事にしました。

## 使用するもの

– l

元記事を表示

Lambdaの管理をCDKに移行している話

# はじめに

今回の話は、筆者の私が SRE として Lambda、DynamoDB、API-Gateway 等を用いた、よくある構成の自社内のサーバレスなアプリケーションを、より開発・管理しやすい形への変更を目指している、という話になります。

## 対象となるアプリについて

– 「通知系の基盤」「ある一機能で用いられている処理基盤」を Lambda、DynamoDB、API-Gateway 等を用いて構築しているアプリが、自社内に複数個ある状態です。(事前検証やインフラの構築はSREチームが担当し、Lambda コードの開発は開発チームが担当)
– ただ、どのアプリケーションも、一度構築してからは予期しないエラーやランタイムのバージョンアップ対応を除いては、基本的に「作ってそのまま」な状態でした。

### 運用について

Lambda 関連の運用フローは元々以下の状態でした。

– Lambda の開発方法は、アプリによっては開発用 Lambda のコードをそのまま編集し、動作確認
– ステージング環境や本番環境への展開は、開発用 Lambda のコードをそのままコピペし張り

元記事を表示

New RelicでQOL爆上げした陰でLambdaがタイムアウトしていた話

# はじめに
この記事は[ディップ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/dip-dev)の8日目の投稿です。

皆さんはNew Relicを使っていますか?
ディップでは各プロダクトへのNew Relic導入を進めています。
New Relicは開発から運用、またセキュリティといったアプリケーションに関わる各種メトリクスやパフォーマンスを確認することができる非常に便利なプラットフォームです。
特にダッシュボードは以下のように高い自由度で作り込めるので ~~気がついたら半日過ぎているなんてこともザラ~~ QOLが爆上がりします。

“`plantuml
@startuml

footer 1リクエストあたりの処理時間や、SQSからのメッセージ受信数、モード毎の処理件数などいろいろ作り込める。楽しい。
title

元記事を表示

Terraformを使用したAWS SQSとLambdaの統合

この記事では、AWSのSimple Queue Service(SQS)とLambdaをTerraformを使用して統合する方法について説明します。具体的には、SQSキューからLambda関数をトリガーする設定と、Lambda関数からSQSキューにメッセージを送信する設定に焦点を当てます。

## SQSキューからLambdaをトリガーする

### 必要なリソース

– SQSキュー
– Lambda関数
– IAMロール
– VPC設定(VPC内でLambdaを実行する場合)

### ステップバイステップ

1.SQSキューの作成

“`hcl
resource “aws_sqs_queue” “example_queue” {
name = “example-queue”
}
“`

2.Lambda関数の作成

“`hcl
resource “aws_lambda_function” “example_lambda” {
function_name = “example_lambda_function”

// VPC設定
vpc_config {

元記事を表示

PHP でも AWS Lambda って実行できるんやで 〜 lambroll を添えて 〜

# はじめに

この記事は NE Advent Calendar 2023 7日目の記事です。

# どうして PHP なのか

弊社は PHP をメインに開発を進めております。
Lambda が標準でサポートしている Golang や Python を日常的に使用している人はおらず、Lambda のためだけに新しい言語を導入するのは今後このコードをメンテ出来る人が減ってしまう。

なんとかして PHP で書けないものか…

# 救世主

https://bref.sh/

Bref は PHP を Lambda で実行するための環境を提供してくれるライブラリです。

# 早速使ってみる

### インストール

以下のような composer.json を作って、`composer install` を実行します。

“`composer.json
{
“require”: {
“bref/bref”: “^2.1”
}
}
“`

### 中身を書く

あとは思い思いにプログラムを書いてゆく。

他のライブラリを使う必要がないのであれば c

元記事を表示

AWSで月額ほぼ0円のWebアプリ構築を考える

この記事は、[Supershipグループ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/supership) の7日目の記事になります。

## 番宣
[Supership](https://supership.jp/)ではプロダクト開発やサービス開発に関わる人を絶賛募集しております。
ご興味がある方は以下リンクよりご確認ください。
[Supership株式会社 採用サイト](https://supership.jp/recruit/)
是非ともよろしくお願いいたします。

## はじめに
Supership株式会社の @masahito-suzuki です。
去年の[Advent Calendar](https://qiita.com/masahito-suzuki/items/c2c2f5cb81cbce03f738)で記載した内容に引き続き、今回もAWS Lambdaでの関数URLに関しての記載をしたいと思います。

昨今、AWSなどのクラウドインフラ環境で、1ドル150円(2023/11現在)と、これま

元記事を表示

GitHub ProjectsのデータをGitHub APIを使って取得し、Redashに入れて分析した

この記事は 「CCoEクリスマス!クラウド技術を活用して組織をカイゼンした事例を投稿しよう! by KINTOテクノロジーズ Advent Calendar 2023」 の7日目の記事になります

https://qiita.com/advent-calendar/2023/kinto-technlogies

# Github Projectsとは

https://docs.github.com/ja/issues/planning-and-tracking-with-projects/learning-about-projects/quickstart-for-projects

GitHub ProjectsはGitHubのIssue管理やPull Requestなどとも透過的に管理ができるカンバン形式でのタスク管理をすることができます。

GitHub Projectsには2つのバージョンが有り、以前のバージョンのclassic と 最新のバージョンのProjectV2があります。

新しいProjectsは大幅に刷新されていて、多機能でありながら非常に使いやすくなってい

元記事を表示

Infrastructure from Codeに入門してみた

Infrastructure from Code(IfC)とAmptについて少し学習したので、整理して書きたいと思います。

# きっかけ
ServerlessDays Tokyo2023のAWS Eric JohnsonのセッションでIfCという単語を初めて聞いたのですが、中身について触れなかったので何なのか分からなかったのとIaCと何が違うのか気になったためです。

https://tokyo.serverlessdays.io/

# Infrastructure from Codeとは何か
アプリケーションコードから必要なクラウドリソースを推測して、自動でアプリケーションの基盤となるインフラストラクチャをクラウドにプロビジョニングするアプリケーション構築のプロセス。

例えば、アプリケーションコード内にAPIのGETやPOSTが書かれていれば、CDNにAPIサーバが必要だと推測して、AWSならCloudFrontにAPI Gateway、Lambdaのリソースを自動でプロビジョニングしてくれるようです。

# 背景
サーバーレスアーキテクチャの開発ではクラウドリソースのプロビジ

元記事を表示

OTHERカテゴリの最新記事