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

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

乗換案内を自然言語で問い合わせ出来るBedockエージェント

Agents for Amazon Bedrockに対して自然言語で乗換案内を問い合わせ出来るようにします。
内部的には、あるLambda関数(Action group)の実行結果を次のLambda関数(Action group)に引き継いで処理を行っています。

AWS Lambdaでpython-gnupgを使用可能にする実装方法

# はじめに
PGP暗号化をLambdaで実装する際に、layerにLambdaのバージョンに対応するライブラリ(python-gnupg)を設定するだけではエラーが発生し使用できなかった。
どうやらライブラリが不足しているようなエラー内容だった。
その際にどういう手順で実装したかを記述する。

# 前提
– Lambdaのランタイムはpython3.9
– Lambdaのバージョンに対応するlayer(python-gnupg)は作成済みであること。
(今回はpython3.9に対応するライブラリpython-gnupg0.5.2をpipでinstallし、zipファイル固めてLambdaのlayerにアップロードした。)
– EC2インスタンスはAmazon Linux2
– { }でくくられている部分は変数名なので適宜変更すること。

# 今回使用するAWSサービス
– Lambda
– S3
– EC2

# 実装手順
## 1. EC2インスタンスを起動しログインをする
① EC2インスタンスでLambdaをパッケージ(zip)化した上でLambdaに反映させ

元記事を表示

SQS+DynamoDBでスケーラブルでフルサーバーレスなポイント管理システムを作る

こんにちは。
株式会社Fusicで技術共創部門の部門長/プリンシパルエンジニアをしている[吉野](https://fusic.co.jp/members/54)です。

Fusic Advent Calendar 2023 の20日目です! 昨日は、[ゆっきーさん](https://fusic.co.jp/members/35)の[ゆるっとスタディ:【マーケ】ひとりマーケターがまずやることとは!?](https://fusic-no.notion.site/9c235686bf4d4ffdb41a1ac0a00f53d3)でした!

ひとりマーケターの悩みややるべきことについて、詳細に書いてあってとっても勉強になる記事ですね。是非読んでみてください!

# 今回つくるもの

お仕事でスケーラブルなサーバーレスシステムを担当することになりそうだったので、勉強がてらつくってみました。

構成図は以下。

![Untitled (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205370/c056

元記事を表示

【Go】DBのnullをJSONのundefinedで返す

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

はじめまして。2023年10月にディップ株式会社に新卒で入社した[@Taro000](https://qiita.com/Taro000)です!
社内向けアプリのバックエンド開発をしているチームに所属しています。

# この記事について
Go言語におけるJSONのundefinedの扱いと、DBのnullの扱いについて学びがあったので共有できればと思います。

### 作るもの
この記事では、クエリパラメータperson_idを使ってpersonテーブルから人物情報を取得できるWebAPIを作ってみます。
APIGatewayとLambdaを使い、Goで実装します。(Goの実装に焦点を当てます)
– golang:1.15
– mysql:8.0.23

### 条件
– DBにNULL許容のカラムが存在する
– レスポンスのJSONとして、値がNULLのカラムはキーごと無し(un

元記事を表示

【SAM】APIGatewayのオーソライザーによる認証をAPIごとに個別設定する

# やりたいこと
APIGatewayでオーソライザーを設定しているが、一部のAPIでは認証が不要なのでオーソライザーを通さずに処理を実行できるようにしたい。

# 最終的なコード

“`yaml
Api:
Type: AWS::Serverless::Api
Properties:
Auth:
DefaultAuthorizer: CognitoAuthorizer
Authorizers:
CognitoAuthorizer:
UserPoolArn:
Fn::GetAtt:
– CognitoUserPool
– Arn
Identity:
Header: Authorization
(中略)
SigninFunction:
Type: AWS::Serverless::Function

元記事を表示

Soracom LTE-M Buttonを押して、Slackにメッセージを送るのを作ってみた(今後の布石)

こちらは [SORACOM Advent Calendar 2023](https://qiita.com/advent-calendar/2023/soracom) 19日目の記事です。

今回もSoracom LTE-M Buttonの話です。
そして、SORACOM UGのカレンダーなのにSORACOM成分薄めです。

# 前回までのお話

https://qiita.com/keni_w/items/8d96802761af33e5b2e8

https://qiita.com/keni_w/items/e8fbd576e006a60691b2

開封の儀まで行なって、その後、SORACOM DiscoveryのナイトイベントでLTまでしたんですが・・・

色々やっていて、連携とかしてなかったので、LT内でハンズオンコンテンツ作るぜー!とぶち上げたこともあり、
まずは、初級ということで、通知をしてみようと思った次第。

# 通知先どうしようか?

日本

元記事を表示

AWS CodePipelineを用いてLamdba関数を更新するCI/CDの実装

## はじめに
本記事は[PERSOL PROCESS & TECHNOLOGY Advent Calendar 2023](https://qiita.com/advent-calendar/2023/ppt)の記事です。
前記事([公式LINEアカウントへのログイン処理をAWS Lambda経由で実装してみた](https://qiita.com/inacyc_k/items/8337489e3e148db1f9e5))を実装する開発環境にて、自動でLambda関数を更新するCI/CD環境を作成してみました。開発フェーズを素早く実施するための環境整備のお話になります。とっても簡単便利なのでぜひ。

## 構成図

各AWSサービスの役割は以下になります。

・Amazon ECR
  →DockerImageレポジトリ

元記事を表示

5xx台のStatusCodeを返すApplication Load BalancerのバックエンドをLambdaで作る

:::note info

この記事は[AWS Community Builders Advent Calendar 2023](https://qiita.com/advent-calendar/2023/aws-community-builders)、の13日目の記事をあとから埋めています。

:::

NTTテクノクロス株式会社の渡邉 洋平です。コミュニティ活動ではwatany名義で活動することも多いです。

AWS Community BuilderのCloud Operationsとして2022年から選出されておりますが、専門分野詐欺になっているのが最近の悩みです。

## 発端

旧TwitterことX(以下Twitter)でこういった書き込みがありました。

Twitterリンク参照できない場合の引用

> ALBのヘルスチェックには合格するけど、5xxエラーを返すWebサーバーを意図

元記事を表示

middyを使ってDiscord BotのInteractionsの制御処理とメインロジックを分離する!

## 🛠️作るもの

– AWS LambdaでDiscordのボットのスラッシュコマンド(Application Commands)をWebhookで受け取り、処理を行うサーバレスアプリケーション
– TypeScriptとAWS CDKを用いて実装
– **`middy`を使って、後述するDiscord特有の処理とビジネスロジックを分けて簡潔に書く**

:::note
– **middyを使ってDiscord APIのInteractionsを制御する部分**の説明がメインなので、それ以外の部分は端折って書いています
– CDKの使い方やDiscordのApplicationの作り方については記載していません
:::

ディレクトリ構成などの詳細は、この記事の検証用に実装した以下のリポジトリを確認してください。

https://github.com/Ry0xi/discord-interactions-middlewares

## ℹ️Discord APIのInteractionsとは

Discordボットのスラッシュコマンド(`Application Commands`

元記事を表示

Lambda Layersを使用して共通ライブラリを作成してみた

## はじめに

この記事は、[ミロゴス Advent Calendar 2023](https://qiita.com/advent-calendar/2023/milogos) 18日目の投稿です。
AWS Lambdaは、サーバーレスコンピューティングを実現するための重要なコンポーネントです。
この記事では、Pythonを使用してAWS Cloud Development Kit (CDK) を活用し、Lambda Layerを作成し、Lambda関数から共通処理を呼び出す方法を簡単に紹介します。

## Lambda Layersとは
Lambda Layersは、AWS Lambdaで提供されている機能の一つです。
共通のコードやリソースを複数のLambda関数で共有し、アプリケーションの効率性と保守性を向上させるための有用なツールです。
特に、多くのLambda関数で同じコードやライブラリを使用する場合や、コードサイズの制約に直面する場合に役立ちます。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/chapter-l

元記事を表示

【AWS Lambda関数作成】APIGatewayの作成手順(状態維持API編)

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

## 🦁**結論**🦁

:::note info
押さえておくべき点
* AWSではAPI Gatewayは必須ツール。
* API Gatewayは「情報の出し入れの管理」「セキュリティ」「様々なデバイスに対応」「データの変換」などを行うことができる。
* CORS(Cross-Origin Resource Sharing)は、ウェブブラウザーのセキュリティポリシーの一部で、異なるウェブサイト(オリジン)間でデータを共有するためのルールや仕組み。
* オリジンとは、ウェブサイトやウェブアプリケーションがホストされているドメイン(サイトのアドレス)のこと。
:::
***

:::note alert
注意点
* テストではステータスが「200」が返ってきたとしてもエラーメッセージがある場合がある。
:::

***

##

元記事を表示

Amazon Bedrockで画像生成&S3保存するPythonコードを書く

## はじめに
画像生成AIで絵を作成するのが好きなので、Amazon Bedrock(以下Bedrock)でStable Diffusion XL 1.0を使ってみました。

作りたいイメージは頭の中にあるのですが、それをちゃんと出力できるプロンプト考えるのが結構大変なので、チャット形式でざっくりイメージを伝える -> よしなにプロンプト組み立て -> 画像生成して返してくれる
といったアプリを作れればいいなあと思ってます。

今回はAWS Lambda(以下Lambda)からStable Diffusion XL 1.0のAPIを叩いて、作成された画像をS3に格納する部分を作りました。

Bedrockは、Meta、Stability AI、Amazonなどが提供する基盤モデル(生成AIの一種)を利用できるフルマネージド型サービスです。マネジメントコンソール上のPlaygroundsで提供されているモデルを試してみることもできます。

https://aws.amazon.com/jp/bedrock/

## 1. 構成

完成系はこんなイメージです。
Amazon API Ga

元記事を表示

多数のEC2上で動作するアプリケーションの構成情報をAPIで取得できる様にした話 (boto3を使ったS3ファイルの並列ダウンロード)

# こんな人向けの話です

* EC2上のアプリケーション等の設定を一覧する仕組みがほしい
* lambdaでS3上の多數のファイルを並列ダウンロードしたい
* 他の話はさておき上記だけさくっと知りたい方は以下で実装例に飛んでください
* [情報取得lambda](#情報取得-lambda-1)
# はじめに

こんにちは、@mitonoです。みらい翻訳でインフラ周りを担当しています。

私の担当しているシステムではGPU搭載のEC2を使い、その上でサービスの中核となるアプリケーションを動作させています。
このアプリケーションはいくつかモジュールを組み合わせてプロセスとして立ち上げ、機能を実現する物です。モジュールにはバリエーションがありEC2上には複数のプロセスが起動可能、という事でややこしいのですが目的に応じて多様な組み合わせのEC2を動作させています。

簡単に表現すると以下の様な感じです。(組み合わせるモジュールの種別をA,B,C, バリエーションを色で表しています)
* EC2#1
* プロセス#1
* モジュールA_red

元記事を表示

【AWS Lambda関数作成】APIGatewayの作成手順(発火API編)

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

## 🦁**結論**🦁

:::note info
押さえておくべき点
* AWSではAPI Gatewayは必須ツール。
* API Gatewayは「情報の出し入れの管理」「セキュリティ」「様々なデバイスに対応」「データの変換」などを行うことができる。
* CORS(Cross-Origin Resource Sharing)は、ウェブブラウザーのセキュリティポリシーの一部で、異なるウェブサイト(オリジン)間でデータを共有するためのルールや仕組み。
* オリジンとは、ウェブサイトやウェブアプリケーションがホストされているドメイン(サイトのアドレス)のこと。
:::
***

:::note alert
注意点
* テストではステータスが「200」が返ってきたとしてもエラーメッセージがある場合がある。
:::

***

##

元記事を表示

EC2とDiscordコマンドを活用したマイクラ鯖構築

この記事は [ドワンゴ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/dwango) 18日目の記事です。

## なにこれ

**Discord鯖仲間の誰かがふと思った『マイクラで遊びたいな……』**

というわけで身内用マイクラ鯖を構築するために模索する機会が発生しました。
せっかくなのでその記録をここに残します。

Agents for Amazon Bedrock のプロンプトを追いかけてみる

前回作成した以下のAgentに対して、実行時のプロンプトの動きを見てみます。

https://qiita.com/cyberBOSE/items/e8c2d0207d03b6934a1c

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/136f7d06-550f-19ec-0608-6a0c624f8b71.png)

# Step1

まずはLambdaを1回だけ実行すれば事足りる質問をしてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/bc2e6851-76f5-87a3-bb28-c49cf320c796.png)

Traceを見てみます。

“`JSON:
“text”: “\n\nHuman: You are a classifying agent that filters user inputs into categori

元記事を表示

【AWS Lambda関数作成】IAMでの権限設定

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

## 🦁**結論**🦁
IAMを使って適切な権限を利用する。
今回、必要な権限は下記の6つになります。

1. AmazonAPIGatewayAdministrator:「 APIGatewayへのフルアクセス」
2. AWSLambda_FullAccess:「 Lambdaへのフルアクセス」
3. AWSLambdaBasicExecutionRole:「 Lambda関数が cloudWatchへのログを書き込める」
4. lambdaInvokeFunction Policy:「作成した Lambda関数を呼び出せる」(Step functionsからの Lambdaアクセス権限)※自身でポリシーを作成
5. StartExecution Policy:「Step functionsのステートマシンから Lambda関数を実行を開始する」(

元記事を表示

たった10分で始める!AWS における最速のアプリ開発方法

## はじめに
こちらは AWS for Games Advent Calendar 2023 18 日目の記事となります。

迅速なアイデアの実装と検証は、あらゆるソフトウェア開発において重要です。このブログでは、AWS における最速の開発手法を [lambda-container-deploy](https://github.com/axot/lambda-container-deploy
) を利用し解説します。あなたのアイデアを速やかに実現しましょう!

このブログで学べること:

1. Go言語を用いた hello world のウェブアプリの作り方
2. 10 分以内で aws にホスティングする手法
3. IP 制限の実装
4. AWS における分散トレーシング、ロギングの実現
5. ローカル環境の構築

## Go ウェブアプリケーションの準備

最初に、Go言語で hello world のプログラムを書きます。ポート 8000 番で Listen します。

“`go:main.go
package main

import (
“fmt”
“io”
“ne

元記事を表示

GBFSのデータを使って、新しくできたシェアモビリティのステーション情報をXに自動ポストするよ。

:::note warn
注意
ほぼ実装できているのですが、少し上手く行かないところがあるので、
ひとまずできているところまで、記載したいと思います。
:::

:::note info
この記事は [シェアモビリティの標準的なデータフォーマット GBFS Advent Calendar 2023](https://qiita.com/advent-calendar/2023/gbfs) 14日目の記事です。
:::

# 課題

シェアモビリティのステーションは、日々増加しておりキャッチアップするのが大変。
気が付かないうちに、ステーションが新しくできていたといったことがある。

# やりたいこと

シェアモビリティデータの定時取得と新設ステーションを特定。そしてXに自動ポストする。

こちらのXのアカウントでツイートする予定です。

:::note info
インフォメーション

XはBotの一掃を掲げていますが、きちんと申告すれば大丈夫なようで、このアカウントも「自動アカウント」である申告を行いまし

元記事を表示

OTHERカテゴリの最新記事