- 1. AWS Lambdaで日本時間を扱う
- 2. コスト効率向上!「WakeOnLambda」CDK Constructが登場
- 3. Step FunctionでのループをCDKで試したメモ
- 4. Amazon bedrockのSample serverless-pdf-chatを日本リージョンで動かしてみた
- 5. go-awslambda
- 6. AWS LambdaとEventbridgeを使って毎朝7時に気象庁天気予報をLINEに通知
- 7. 【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part5
- 8. 【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part4
- 9. Serverless FrameworkとTerraformの責任分界点
- 10. AWS Lambda Web Adapterを使ってAgents for Amazon Bedrockを高速開発
- 11. Firehoseのレコード出力の設定をCDKで構築する(改行の区切り文字/動的パーティショニング)
- 12. Windowsで作成したLambdaレイヤーで”Unable to import module”エラーが発生した場合の対処(の一つ)
- 13. 【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3
- 14. 【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2
- 15. 【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1
- 16. 【AWS】CloudWatchLogs→Lambda→SQS連携方法
- 17. AWSLambdaを使用してRDSからCSVを取得してメール送信
- 18. 【AWS CDK / SQS+Lambda】SQSからのLambda呼び出しについて検証してみた
- 19. AWS Lambda(Python)からOpenAIのGPT4のAPIを呼び出してみた
- 20. 【AWS CDK入門】AWS CDKでAPI Gateway + Lambdaを構築してみた
AWS Lambdaで日本時間を扱う
AWS Lambdaの関数内で、日本時間をUNIX時間に変換する処理を実装した時に、9時間足されたUNIX時間に変換されてしまいました。
コードは下記の感じ。
“`csharp
if (DateTimeOffset.TryParse(input, out DateTimeOffset dateTimeOffset))
{
DateTime dateTime = dateTimeOffset.DateTime;long unixTimestamp = ((DateTimeOffset)dateTime).ToUnixTimeSeconds();
return unixTimestamp.ToString();
}
else
{
return string.Empty;
}
“`
`input`に日本時間(フォーマット:`2024-01-01T00:00:00+09:00`)の文字列が入ります。
上にコードを示しましたが、このコードには特に問題はありません。# 解決方法
Lambdaの環境変数を追加する。
– キー:`TZ`
– 値:`Asia/
コスト効率向上!「WakeOnLambda」CDK Constructが登場
## 背景
Amazon EC2インスタンスの常時起動にはコストがかかります。サービスが必要ない時間帯でもインスタンスが動いていると、無駄なコストが発生してしまいます。今回は、WebサービスにアクセスするだけでEC2インスタンスを起動できる「WakeOnLambda」CDK Constructを開発し、その利点について紹介します。
## コンストラクトの概要
「WakeOnLambda」は、AWS CDKを使用して、特定のURLにアクセスすることでEC2インスタンスを起動するLambda関数を簡単に構築できるConstructです。これにより、ユーザーは手動での操作なしに、Webサービスへのアクセスを通じてインスタンスをスタートできます。Construct Hub のリンクはこちら
[![View on Construct Hub](https://constructs.dev/badge?package=wake-on-lambda)](https://constructs.dev/packages/wake-on-lambda)
Construct Hubへの登録は以下の
Step FunctionでのループをCDKで試したメモ
## 概要
Step Functionの理解を深める。
[Lambda を使用してループを反復する](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/tutorial-create-iterate-pattern-section.html)をCDKで書いてみた。## callbackとreturnの書き換え
例では戻り値をcallbackに渡しているが、冗長なのでreturnで返す形に書き換えた。
([Node.js の AWS Lambda 関数ハンドラー](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/nodejs-handler.html))[ソースコード](https://github.com/hibohiboo/aws-cdk-v2/blob/2046e79638a2000e1f791b8aaf98c669379be79e/cdk/lib/step-functions-stack.ts)
以下の2つのソースは等価となる。
“`js
exp
Amazon bedrockのSample serverless-pdf-chatを日本リージョンで動かしてみた
## はじめに
部内のナレッジをRAGで活用しようと思い、まずはRAGの理解深耕とBedrockがGAされたこともありaws sampleから試してみました。
今回は下記を用いて実施しています。
https://github.com/aws-samples/serverless-pdf-chatFrontendはClientPCで動作させるので下記のようなイメージになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922657/dd716d4a-7f82-30be-85e0-e90789a7d84f.png)## リージョンをap-northeast-1にする
GitのREADMEに以下のように記載があるので、従って修正します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922657/552f96db-75f0-76ff-389f-fe9d345aca84.png)
go-awslambda
“`text
— FAIL: TestSlogtest (0.03s)
\zapslog\logger.go:130: message
\zapslog\logger.go:130: INFO message {“k”: “v”}
\zapslog\logger.go:130: msg {“a”: “b”, “c”: “d”}
\zapslog\logger.go:130: INFO msg {“k”: “v”}
\zapslog\logger.go:130: msg {“a”: “b”, “k”: “v”}
\zapslog\logger.go:130: msg {“a”: “b”, “G”: {“c”: “d”}, “e”: “f”}
\zapslog\logger.go:130: msg {“a”: “b”, “e”: “f”}
\zapslog\logger.go:130: msg {“a”: “b”, “c”: “d”, “e”: “f”}
\zapslog\logger.go:130
AWS LambdaとEventbridgeを使って毎朝7時に気象庁天気予報をLINEに通知
## 概要
気象庁から天気予報データを取得、必要情報を抽出してLINEに通知するLambdaを作成して、Eventbridgeで毎朝7時に起動するよう設定しました。## 準備
– 事前にLINE Notifyのアクセストークンを取得
– エリアコードの確認
https://www.jma.go.jp/bosai/common/const/area.json
東京地方は130000です。## 作成
– Lambda作成
Lambda作成方法は他の有志の方の記事または公式を参照ください。
なお、PythonのRequestsモジュールをLambdaで使用するためにはLayerの追加の必要があります。
– エリアコードは東京地方の天気を対象としています
– 抽出データは、時間、天気、6時間ごとの降水確率と最高気温です
– 【LINE Notifyアクセストークン】を取得したアクセストークンに置き換えてください“`python.py
import requests
import json
import iodef lambda_ha
【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part5
# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2](https://qiita.com/mcen/items/7d978203ef22412309f2)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3](https://qiita.com/mcen/items/e66e77743963084a3d7b)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part4](https://qiita.com/mcen/items/802a43a28358303125f6)# 今回の実施内容
前回Part4の内容を行いました。今回は
【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part4
# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2](https://qiita.com/mcen/items/7d978203ef22412309f2)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3](https://qiita.com/mcen/items/e66e77743963084a3d7b)# 今回の実施内容
前回Part3の内容を行いました。今回はAthenaの設定を行います。
* Part1
* JSONのダミーデータの作成
* S3バケットの作成
* Part2
* Lambda作成
* S3イベントとLam
Serverless FrameworkとTerraformの責任分界点
# 概要
Lambdaアプリケーションを構築する上では、Terraform以外に [Serverless Framework](https://www.serverless.com/) や [AWS SAM](https://aws.amazon.com/serverless/sam/) といったフレームワークを使うことがあります。
メタップスホールディングスではLambdaのアプリケーション開発にServerless Frameworkを使うことが多いのですが、インフラを構築する上で、Terraformとの使い分けはどうするべきか、という課題が度々発生します。
今回は弊社のプロダクト開発におけるフレームワークの使い分けについて、一例を紹介したいと思います。# Terraformの利点
TerraformはInfrastructure as Code (IaC) の中でもとりわけ人気が高く、多数のクラウドプロバイダーに対応しており、デプロイメントやプロビジョニングを自動化できる利点があります。
弊社のSREチームもAWSを始め、DatadogやGitHub、PagerDuty
AWS Lambda Web Adapterを使ってAgents for Amazon Bedrockを高速開発
Amazon Bedrockでエージェントを構築できるAgents for Amazon Bedrockという機能があります。この機能はLambdaで構築するのですが、構築に際して次のものが必要です。
* エージェントが実行するアクションのビジネスロジックを含んだLambda関数
* APIの説明、構造、パラメーターを含むOpenAPIスキーマまた、イベントのJSONが専用フォーマットなので、どういったイベントが来るのか気にしながら開発する必要があります。
AWS謹製のAWS Lambda Web AdapterがAgents for Amazon Bedrockに対応しましたので、使用方法を紹介します。
## AWS Lambda Web Adapterとは
AWS Lambda 上で Web アプリケーションを実行するツールです。
AWS Lambda Web Adaptor を使用すると、開発者は使い慣れたフレームワーク (Express.js、Next.js、Flask、SpringBoot、ASP.NET、Laravel など、HTTP 1.1/1.0 を使用
Firehoseのレコード出力の設定をCDKで構築する(改行の区切り文字/動的パーティショニング)
# 背景
Firehoseでは、1行1レコードとして出力したり、Lambdaで1レコードごとに処理するためには、追加での設定が必要です。
画面からだと簡単に設定できますが、CloudFormationおよびCDKでは、設定方法が直感的とは言い難いです。この記事では、CDKのみを使用して、こちらの画像の状態にする方法を紹介します。
![スクリーンショット 2024-01-18 8.52.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468968/31379ea2-7606-ab85-f8e2-dc3593f89f88.png)
## 設定項目解説
### New line delimiter/改行の区切り文字
設定することで、各レコードが1行ごとに出力されます。“`json
{“id”:1}
{“id”:2}
“`
JSONL形式になるため、後続の処理でS3から取り出した時に処理しやすくなります。#### 設定しない場合に困ること
これを設定しないと、いわゆるJSONL形式では
Windowsで作成したLambdaレイヤーで”Unable to import module”エラーが発生した場合の対処(の一つ)
LambdaでAPI等を作っていると外部ライブラリをLambdaレイヤーに追加するシーンが多々発生しますが、ローカルのWindows環境で外部ライブラリの動作確認をした後に、`pip install -t`してLambdaレイヤーを作成したらLambdaで以下のエラーが発生した際の調査メモ。
※他の原因(循環参照)でも同じエラーが発生するようなのでどちらが原因かは適宜判断`[ERROR] Runtime.ImportModuleError: Unable to import module’lambda_function’: cannot import name ‘xxx’ from partially initialized module ‘xxx’ (most likely due to a circular import)
`# 環境
– ローカル環境:Windows
– Lambda:Python# 原因
そのまま書いてありました。
要はライブラリにバイナリを含む場合は、インストール時の環境(Windows)とLambda実行環境(Amazon Linux)の差異でエ
【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part3
# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2](https://qiita.com/mcen/items/7d978203ef22412309f2)# 今回の実施内容
前回Part2の内容を行いました。今回はGlueの設定を行います。
* Part1
* JSONのダミーデータの作成
* S3バケットの作成
* Part2
* Lambda作成
* S3イベントとLambdaの連動
* Part3
* Glueの設定
* Part4
* Athenaの設定
* Part5
* Quicksightでの可視化## AWS Glueとは?
AW
【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part2
# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。
前回までの内容は以下をご覧ください!
[【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1](https://qiita.com/mcen/items/24f20be7a3094dfef6a0)# 今回の実施内容
前回Part1の内容を行いました。今回はLambda関連の設定を行います。
* Part1
* JSONのダミーデータの作成
* S3バケットの作成
* Part2
* Lambda作成
* S3イベントとLambdaの連動
* Part3
* Glueの設定
* Part4
* Athenaの設定
* Part5
* Quicksightでの可視化## Lambda作成
S3バケット「**transbucket-2024**」のinputフォルダにアップロードしたjsonファイルを
csvファイルに加工後、outputフォルダに格納するLambdaを作成していきます。
【AWS DAS】S3上のデータをQuicksightで可視化するまでやってみた Part1
# 概要
この記事ではAWS認定DASに出題されるリソースを使った構成をシリーズ化して紹介します。# はじめまして!
AWS認定DASの資格学習として出題サービスを使用した構成を組んでみようと思い
初投稿をしてみました。
私自身の経歴はインフラエンジニアとして2年半設計構築に携わってます。
SAAの資格学習時(昨年取得出来ました!)に実際に携わったことのあるサービスに関しては理解度が格段に上がることを実感したためこのような取り組みを行っております。# 実現したい構成
早速ですが実現したい構成は以下です。
作成リージョンはap-northeast-1とします。
>①JSONファイルをS3(inputフォルダ)にアップロード
②S3にJSONファイルがアップロードされたことをトリガーにLamb
【AWS】CloudWatchLogs→Lambda→SQS連携方法
## はじめに
本記事は Lambda を使ったことが無い自分の備忘として、
Lambda 構築までの流れをメモした記事となります。## 構成
「CloudwatchLogs」→「Lambda」→「SQS」のシンプルな構成とします。
■処理フロー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1764568/e8d2b446-752d-f000-6fe7-d478245d3f19.png)## 実装してみた
### Amazon SQS 作成
今回の構成で SQS は Lambda からのメッセージをキューに保持するだけなので、
以下 CLI コマンドで簡易的に作成。“`bash
aws sqs create-queue –queue-name
# 例:aws sqs create-queue –queue-name testqueue
“`### AWS Lambda 作成
今回は AWSCLI を利用して Lambda の作成を行う。
AWSLambdaを使用してRDSからCSVを取得してメール送信
# 1.はじめに
はじめまして!株式会社TechoesインフラチームのYです!
今年の4月で2年目を迎える初心者のクラウドエンジニアです。
今回からTechoesの採用強化、学習内容のアウトプットを目的としてQiitaで技術ブログを書いていこうと思います。
第1回目として最近学習したAWSLambdaを使ってRDSからCSVを取得してメール送信する手順を投稿します。# 2.前提
– 言語:Python 3.10
– ライブラリ:pymysql
※layerとしてS3に保管
– RDS:Aurora MySQL
– RDSの認証情報はSecretManagerから取得
– メール送信にはSESを使用
# 3. CFNテンプレート
Lambda関数を作成・管理するテンプレートです。レイヤーはあらかじめS3に保管しておいたものを使用します。
“`yaml:lambda.yaml
Resources:
LambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
【AWS CDK / SQS+Lambda】SQSからのLambda呼び出しについて検証してみた
# はじめに
SQSトリガーのLambda実行について、色々と検証してみたくなったので試してみた。## 対象とする読者
* SQSの基本は知ってるけど、細かい動作まで知りたい人
* SQSトリガーのLambda実行環境をcdkで構築したい人# 結論)わかったこと
* SQSのキューがFIFOの場合、紐づくデッドレターキュー(DLQ)も強制FIFO
* LambdaのOnSuccess/OnFailureに紐づけるキューはFIFO不可
* LambdaのDLQもFIFO不可
* 最大受信回数到達時、Lambdaエラー→可視性タイムアウト→DLQへ送信の順番
* SQSからのLambda実行は非同期呼び出しではない
→ LambdaのOnSuccess/OnFailure送信先やDLQは効かない# 検証環境構築
以下の環境を構築する。
AWS Lambda(Python)からOpenAIのGPT4のAPIを呼び出してみた
[Supership](https://supership.jp/)の名畑です。[スナックバス江](https://snackbasue.com/)は肩の力を抜いて見られるのでいいですね。年齢を重ねる毎にこういう作品が好きになっていきます。
## はじめに
[AWS(Amazon Web Services)](https://aws.amazon.com/jp/)でWebアプリを作ることがあるのですが、その過程で触れてきたものについて、せっかくなので要点だけを抽出して残しておくことにしました。
特に目新しい内容はありませんが、**AWS**や**OpenAI**のアカウント作成も含めて一通りの流れを残すので、いい具合の備忘になればと。
今回は[Lambda](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)を経由して[OpenAI](https://openai.com/)の**API**を叩くまでをまとめます。
## Lambdaとは
> AWS Lambda は、サーバーをプロビジョニングま
【AWS CDK入門】AWS CDKでAPI Gateway + Lambdaを構築してみた
# はじめに
AWS CDKってドキュメント見てもよくわからん…ってなったので、実際に動かしてみた。
すると、CDKすげええええぇってなったので、その感動を共有したくて記事を書いてみた。### 対象とする読者
* AWS CDKとはなんぞやって人
* AWS CDKをお金をかけずに動かしてみたい人# AWS CDK のこれだけ知っておけばOK
AWSのIaC (コードでインフラを管理)といえば、CloudFormation!
→ しかし、以下の課題が・・・
* YAML/JSONなので、ループや条件分岐などを用いたリソース定義が書けない
* 大規模なインフラだと、一から十まで書くの大変これらを解決するのが、AWS CDK!
→ CloudFormation用のテンプレートをプログラム言語から生成しちゃおう:::note
* TypeScriptやPythonなどでリソースを定義するのでループなど自由自在
* ライブラリでリソースが抽象化されているので記述量が大幅減
(抽象化 = REST APIを作るといったパターンが用意されている)
:::# AWS CD