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

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

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の一掃を掲げていますが、きちんと申告すれば大丈夫なようで、このアカウントも「自動アカウント」である申告を行いまし

元記事を表示

【AWS Lambda関数作成】Lambda関数の開発とデバッグ

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

## 🦁**結論**🦁
## 作成手順
1. 関数の作成
2. エディタにて関数作成(AWS Lambdaに直接でも可能)
3. Lambdaにアップロード
4. デバック(テスト)の実施

:::note info
押さえておくべき点
* lambdaはサーバーレスコンピューティング
* サーバーレスコンピューティングはユーザーインターフェイスを持ってないためヘッドレスブラウザが必要になる。
* loggerを使ってログを残すことを行う
* **headlessのWindowサイズは1200×1000**
* サーバーのデータのやり取りは基本は「json形式」
* 関数の最後にレスポンスの定義をする。

:::
***

:::note alert
注意点
* ほとんどのコードを関数の中に書き込む必要がある(変数定義、空の

元記事を表示

AWS Lambdaの超基本的なTips

## この記事について

この記事は [SUPER STUDIO Advent Calendar 2023](https://qiita.com/advent-calendar/2023/superstudio) の16日目の記事になります。

## 前提

最近、業務でLambdaをゴリゴリに扱うプロジェクトに配属されており、ちょっとしたコツとか意識しなくてはいけないポイントが見えてきたので備忘録的に書いていきます。

超基本的な内容ばかりで恥ずかしいですが、意識しないと抜けることもあるので。

## 15分の限界を超えないようにする

これはもはや意識するまでもないLambdaの最も基本的な制約ですね。
1回のLambdaで処理できるプロセスは15分を超えることができません。15分を超えるとTimeOutします。

“`
Task timed out after 3.00 seconds(TimeOut3秒の場合)
“`

これはそもそもLambda自体が長期間の稼働を前提とする重い処理を想定していないからですね。すぐ終わる軽量な処理を(インフラの面倒を見る必要なく)簡単にたく

元記事を表示

Python3.11 x Flaskで開発環境を構築する。

本投稿はMIXI DEVELOPERS Advent Calendar 2023の16日目の記事です。
他の記事も面白いものが多いのでぜひ見てください!

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

## 目的
LambdaでちょっとしたAPIを作りたいって時ありますよね?
私はPythonを選択する時が多いのですが、ここではPythonとAPI作成でよく使用するFlaskの開発環境を構築していきます。

## 前提条件
– macユーザ
– Homebrewがインストール済

## 手順
## pyenv
Pythonのバージョンを管理するpyenvをインストールする。
“`
$ brew install pyenv
“`

## Python
pyenvを使用してPythonをインストールする。
今回はlambdaに使用したいので、[こちらのページ](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html)から利用できる最新版をインストールする

元記事を表示

AWS_Lambdaを用いた集計_前編

## 【はじめに】
本記事は、AWS LamdaおよびQuickSightを用いた、Qiita投稿記事投稿状況の可視化例をご紹介します。
記事内容に関しては前編と後編に分けてご紹介予定です。
※投稿状況の集計対象となるQiita投稿者アカウントのトークンを知っていることが前提となります。
※投稿状況の集計は、Qiitaが公開しているAPIを用います。

## 【実装内容】
今回の記事においては
・Lambda
・S3
・EventBridge
・QuickSight
・Glue
・Athena
上記AWSサービスを用いる。

最終的な実装イメージ図は以下の通り、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/1c7273bf-5a51-662d-3585-bd9b2e9bd285.png)

## 【前編での実装の流れ】
①S3バケットの作成
②Lambda関数の作成
③ETL確認作業
④EventBridgeの設定
前編の実装イメージ図は以下の通り、
![image

元記事を表示

【AWS Lambda関数作成】Python(local環境)の開発

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

## 🦁**結論**🦁
まずは全体図を作成していくこと

:::note info
押さえておくべき点
* APIGateway は最大30秒でタイムアウトしてしまうため対策が必要。「Lambda発火API」と「Lambda状態取得API」のAPIが必要になる。(このサイトに全てが書かれてる)
* 「Lambda発火API」は30秒タイムアウトを回避するためにリクエストする
* 「Lambda状態取得API」に実際の処理をリクエストする
* リクエスト、レスポンスは基本json形式
* インターバルの設定により、実際の処理経過を確認してる。
* インターバルにて’status’を確認してる(RUNNINGが読み込み中、SUCCEEDEDが成功)
* ArnはAWSの各機能のアドレス
* Local環境に必要なのは「各APIのロールにあるURL」
:::
***

::

元記事を表示

TerraformでAWSサービスの情報をコード化する方法

# できること

– AWSサービスの情報をコード化(文書ファイル)にすることができる
– terraformerでコード化できないものに対応できる
– Lambda、S3が該当する

# 前提条件

– VSCodeが使えること
– AWS CLIが使えること
– Windows端末であること

# Terraformのインストール方法

1. 下記URL内から「Windows」を押下し、「AMD64」の方をダウンロードする。
– https://developer.hashicorp.com/terraform/downloads
2. ダウンロードしたzipファイルを解凍する。その中の「terraform」アプリを、コード化したファイルを置きたいディレクトリにコピーする。
3. コード化したファイルを置くディレクトリで、「main.tf」ファイルを用意する。ファイルの中身は以下の入力をする。awsに対応するversionは下記URLから抽出する。
– https://registry.terraform.io/providers/hashicorp/aws

元記事を表示

OTHERカテゴリの最新記事