- 1. AWS Lambdaでrequestsを使うためのセットアップ
- 2. コンテナから作成したLambdaで、「Phase: init Status: timeout」になったことと解決方法
- 3. REST APIを作成してみる
- 4. CloudFrontのキャッシュ削除を自動化してみる
- 5. LambdaのGETリクエストとNode.js Expressでのレスポンス
- 6. Lambda 関数 URL で OAC で CloudFront 経由の実行のみを許可する
- 7. AWS SQS/Lambda/SNSにS3を連携し、メール通知を行ってみる[03]
- 8. AWS Lambda/SNSにSQSを連携し、メール通知を行ってみる[02]
- 9. Amplify functionでLayerのバージョンを上げようとしたらハマった話
- 10. Flutterでスマホアプリから任意の内容をDynamoDBに保存
- 11. 21日目 Lambdaについてまとめてみる社畜S
- 12. AWS Lambda/SNSを連携し、メール通知を行ってみる[01]
- 13. API Gateway経由でLambda呼び出すときのマッピングテンプレート
- 14. LINEWORKS BOT とAmazon Bedrock(Claude 3)を接続してみた
- 15. 【AWS】Lambda⇒DynamoDBへデータを書き込んでみるハンズオン
- 16. AWS Instance Schedulerを使ってEC2インスタンスを自動起動・自動停止する
- 17. GPTsのデータ集計能力を検証してみる
- 18. CloudWatchMetricsの基本的な操作とアラーム設定方法
- 19. スマホアプリでChatGPTの口調を指定し、Alexaに喋らせる
- 20. s3へのアップロードをトリガーにECSタスクを起動する流れ
AWS Lambdaでrequestsを使うためのセットアップ
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。Python環境のAWS Lambdaを使うにあたってrequestsを使いたかったのですが、デフォルトのLambdaでは外部モジュールとなるrequestsは使えないようで。
これに気が付く前に、Lambdaを実行した結果が以下です。
“errorMessage”: “Unable to import module ‘lambda_function’: No module named ‘requests'”,と出ていますね。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/f775b7c7-2d24-a18c-d0de-2bc7fc29af2c.png)
これを解消するために、レイヤーというものを作ってLambdaに追加する必要があるようで、その手順の備忘録です。
※Cloud9で用意するのが簡単という記事を拝見したのですが、私はうまくいかずでした・・・# 手順
レイヤーを作るにあたり必
コンテナから作成したLambdaで、「Phase: init Status: timeout」になったことと解決方法
# 0. はじめに
こんにちは、yuzu_juiceです🥂
最近、Lambdaをコンテナで動かせることを知り、いろいろ遊んでいました。# 1. 発生した事象
コンテナからデプロイしたLambdaを実行したところ、CloudWatchのログに以下のエラーが出ました。
“`
INIT_REPORT Init Duration: 10028.26 ms Phase: init Status: timeout
“`
# 2. 正しかった対応方法
Lambdaのコンソールから、環境変数を設定しました。
ローカルでテストしていた際はコードがDockerfileに設定した環境変数を参照していたため、Lambdaにデプロイ後もDockerfileに書いた環境変数が参照されるだろう、と思っていました。
実際は、コンテナからデプロイされたLambda関数は、Dockerfileの環境変数を読まず、Lambda側の環境変数を読み込むようです。# 3. 試したけどうまくいかなかったこと
## Lambdaタイムアウト値の変更
Lambdaがタイムアウトしているのだと思い、「Lambda関数→設定→
REST APIを作成してみる
# 概要
本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの5回目の記事です。
前回の記事は [こちら](https://qiita.com/ti_and6id/items/d329ce5e9dc838563d7f)。# REST APIを作成してみる
## 1. Lambda 関数の作成
1. マネジメントコンソールからLambdaを開き、「関数の作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/f4702244-d306-223c-c187-e1469e992aac.png)
1. 「一から作成」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/ebbab1b5-1cab-6815-
CloudFrontのキャッシュ削除を自動化してみる
# 概要
本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの4回目の記事です。
前回の記事は[こちら](https://qiita.com/ti_and6id/items/e9ef9da23b3e33116f6b)。
今回は番外編として、CloudFrontのキャッシュ削除を自動化してみます。# キャッシュ削除を自動化する理由
開発しているときに、サイトを更新したのにCloudFrontのキャッシュにより内容が反映されるまで時間がかかってしまったり、手動でキャッシュを削除したりすることが手間に感じることがありました。
この問題を解消するためにCloudFrontのキャッシュ削除を自動化し、それにより開発効率の向上を狙います。# CloudFrontのキャッシュ削除を自動化してみる
## 1. CloudFrontでキャッシュ削除を作成
1. [静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる](https://qiita.
LambdaのGETリクエストとNode.js Expressでのレスポンス
LambdaでのGETリクエストの自分用の覚書です。
LamdaでGETリクエストをすると、Node.jsで書かれたサーバーから「hello world」という文字を返すということをやります。
### レスポンス側 (Node.js)
フレームワークはexpressを使用
“` index.js
const express = require(‘express’);
const app = express();app.get(‘/hello’, function(req, res) {
res.send(‘hello world’)
}
)“`
### リクエスト側 (Python)
“` lambda_function.py
import urllib.requestdef lambda_handler(event, context):
hello = get_hello()
print(hello)def get_hello():
request = urllib.request.R
Lambda 関数 URL で OAC で CloudFront 経由の実行のみを許可する
# 概要
https://aws.amazon.com/jp/about-aws/whats-new/2024/04/amazon-cloudfront-oac-lambda-function-url-origins/
# 抑えておくべき用語
## Lambda 関数 URL
API Gateway 無しに Lambda のメニューから機能を ON にするだけ HTTPS 公開ができる。
https://qiita.com/leomaro7/items/f2142431e10cd7cc470d
## OAC
指定された CloudFront ディストリビューションからのアクセスのみにする。
https://qiita.com/leomaro7/items/b9deda523f0c94a494ca
# やってみる
## Lambda 1
Lambda 関数は単純に Hello World を返すもののため省略します。
関数 URL には「**AWS_IAM**」を指定。
![スクリーンショット 2024-05-01 15.46.43.png](https://qi
AWS SQS/Lambda/SNSにS3を連携し、メール通知を行ってみる[03]
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。今回はAWS SQS,Lambda,SNS環境にS3を追加して、S3に何らかのデータがアップロードされた際にメールが通知される環境を構築していきたいと思います。
今までの記事は以下となります。
https://qiita.com/ohtsuka-shota/items/e2b62e5ab61a90807264
https://qiita.com/ohtsuka-shota/items/4daaf14c03705ee0ad05
# 最終的な構築イメージ
以下環境を作っていきます。今回はS3を実装していきます。
![aws-django01-ページ6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/426843a2-5d28-7283-96dc-22fb1cbe3e34.png)# 構築
## S3の作成
バケットの作成を押下します。
![image.png](https://qiita-i
AWS Lambda/SNSにSQSを連携し、メール通知を行ってみる[02]
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
最近、とある事情でAWS関連のインプットをよくしています。今回はAWS LambdaとSNSで構築したメール通知環境にSQSを追加していきたいと思います。
前回の記事は以下となります。
https://qiita.com/ohtsuka-shota/items/e2b62e5ab61a90807264
# 最終的な構築イメージ
以下環境を作っていきます。今回はSQSを実装していきます。
![aws-django01-ページ6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/426843a2-5d28-7283-96dc-22fb1cbe3e34.png)# 構築
## SQSの作成
SQSの管理画面にアクセスします。キューを作成を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/
Amplify functionでLayerのバージョンを上げようとしたらハマった話
## はじめに
私が携わっているプロジェクトでは、AWS Amplifyを活用し、ランタイムがPython 3.8のLambda functionとLayerを使用しています。
Python 3.8のサポート終了が近いため、問題を未然に防ぐためにPython 3.12へのアップグレードを決意しました。
詳細はAWSの公式ドキュメントを参照してください。
[Lambda ランタイム](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html)## 環境
– Amplify: 12.11.1
– Python: 3.12.2
– Pipenv: 2023.12.1## 遭遇した問題
バージョンアップの過程で、以下のファイル内のruntimesやpython_versionを3.12に更新しました。
– amplify/backend/function/laynerName/parameters.json
– amplify/backend/function/laynerName/lib/pyt
Flutterでスマホアプリから任意の内容をDynamoDBに保存
# はじめに
https://qiita.com/parayan0429/items/06c5350788afe6655171上記で紹介したシステムのFlutter部分にフォーカスした記事です。
全体像が気になった方は上記を一読ください。
※開発背景や全体像のみの短い記事のためすぐに読み終わると思います。## 補足
本記事はスマホアプリの開発初心者が拙いながらもFlutterで作ったアプリ開発の一部始終を紹介する内容になっています。そのため、Flutterのベストプラクティスとかけ離れている箇所も多々あると思いますが、ご容赦ください🙇
## リポジトリ
プライベートで開発してましたが、公開しました:relaxed:
※機密情報は載せてないつもりですが、何かあれば教えてください:bow:https://github.com/yuhara-4113-ai/Alexa-To-AI_Flutter
# 本記事の紹介範囲
1. このアプリでやっていること
1. 開発環境の紹介
1. 環境構築の手順
1. 実際のコード
1. 困ったこと# このアプリでやっていること
1.
21日目 Lambdaについてまとめてみる社畜S
## 🎏はじめに
こんにちは、ローテが一巡して順番が回ってきました、三週間ぶりの社畜Sです。
現在、私たち社畜SMLの3人は
#### 「AWS Certified Solutions Architect – Associate(通称SAA)」
の合格を目指して勉強を続けています。
というわけで、今回のローテではSAAの学習成果のアウトプットも兼ねて
#### 「AWSのサービスを初心者目線でまとめてみた。」
をテーマに書いていこうと思います!
まずは私、社畜Sが初回を飾り **AWS Lambda** についてまとめていきます!
初心者の視点からの解説ですので、間違いなどがあればコメントで指摘していただけると幸いです。
それではやっていきましょう!—
## 🎏そもそもLambdaって何?
公式の開発者ガイドでは
>AWS Lambda はサーバーのプロビジョニングや管理をする必要がなく、コードを実行できるコンピューティングサービスです。
>>Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティン
AWS Lambda/SNSを連携し、メール通知を行ってみる[01]
こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。今回はAWS LambdaとSNS(Simple Notification Service)を使ってメール通知機能を実装してみたいと思います。
# 最終的に構築するイメージ
何回かに分けて、以下の環境をつくっていきたいと考えております。
Cloud9で作ったDjango環境でS3にアップロードするようなWebページを作成。
ユーザはそれを使ってS3にデータをアップロードすると、S3がイベント通知をSQSに行い、SQSがLambdaをキック。LambdaがSNSを呼び出して登録したメールアドレスにメールを送付します。
![aws-django01-ページ6.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/426843a2-5d28-7283-96dc-22fb1cbe3e34.png)この記事ではLambdaとSNSだけ環境を構築していきます。
# 構築
## SNS
AWS管理コンソールにロ
API Gateway経由でLambda呼び出すときのマッピングテンプレート
## はじめに
BedrockにAPIリクエスト投げるLambda書いたからフロントエンドも作りたいな…と言いつつ数か月経ってしまった。
API Gatewayにリクエスト投げるシンプルなhtml書いてS3+CloudFrontのベタな構成……と思ったらAPI Gatewayにリクエスト投げるところで詰まったので、とりあえずその部分を記事化。Lambda書いたときの記事
https://qiita.com/Pretzelisa/items/61c4d3838bb6ac7ff561
https://qiita.com/Pretzelisa/items/e9f873806ed40d853e71
## 1. ハマリポイント
Lambdaに引数keywordを渡す必要がある。マネコンのLambdaのエディタからテストしたときは以下のようにJSONを手打ちして問題なく動いていた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3458266/b3f56c84-2487-1393-ce1
LINEWORKS BOT とAmazon Bedrock(Claude 3)を接続してみた
## はじめに
LINEWORKSのBOTを利用して、Claude 3と会話してみたい!と思った人向け
以前、LINEで同様なことをしてます
今回は、LINEWORKS(企業向けLINE)の記事です
個人向けLINEで、利用する場合は、下記をご覧くださいhttps://qiita.com/UniKawazoe/items/25a5587512c322e96f59
## LINEWORKSとLINEってどう違うの?
LINEWORKSとLINEの違いについて
> 「LINE WORKS」は、情報や予定を共有しあって活動する、組織・チームのためのコミュニケーションツール。
> 企業や企業内プロジェクト、特定の活動をする団体などに最適です。LINE⇒個人向け
LINEWORKS⇒企業(組織・チーム)向け
の位置づけのようです企業にフォーカスしているため、
アカウント管理やトークの監査機能など、組織として必要な機能が実装されています
また、掲示板機能なども実装されています
プラン
【AWS】Lambda⇒DynamoDBへデータを書き込んでみるハンズオン
# はじめに
Lambda⇒DynamoDBへ書き込みについて学習したのでその振り返り記事となります。
本記事はLambda⇒DynamoDBへ書き込み処理部分を実装できるようになることを目的としたハンズオン形式の記事になります。# ゴール
lambdaからdynamoDBにデータの書き込みができるようになる。# 環境
– Lambda(Node.js 16.x)
– DynamoDB# DynamoDB側の準備
DynamoDBからリソースを作成していきます。### ◆テーブルの作成
DynamoDB > テーブル > テーブルの作成 からテーブル名とパーティションキーを入力します。
入力出来たらページ下部の「テーブルの作成」ボタンをクリック。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247619/2e8cb22d-37db-5f4d-5d2e-33d0797de2b7.png)
# Lambda側の準備
Lambdaを準備していきます。###
AWS Instance Schedulerを使ってEC2インスタンスを自動起動・自動停止する
# はじめに
AWS Instance Schedulerは、Amazon Elastic Compute Cloud (Amazon EC2) と Amazon Relational Database Service (Amazon RDS) のインスタンスの開始と停止を自動化するためのアーキテクチャです。本記事では、実際にInstance SchedulerをCloudFormationテンプレートから払い出して、最もシンプルな形でのEC2インスタンスの自動起動・自動停止を実践してみます。
# Instance Scheduler アーキテクチャ
AWSの公式からアナウンスされているInstance Schedulerのフル機能は、下記のようなアーキテクチャ図になります。![instance-scheduler-on-aws.6a76bdccb7ff3610934f86dba7d1d4678a0b9e4b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778694/eb8ba119-3
GPTsのデータ集計能力を検証してみる
GPTsに生データを取得できるAPIを呼び出させてその結果を集計し、回答をする仕組みを構築しようとしたところ、集計結果が不正確であることがあった。
そこで、今回はAPIから返されるデータ量が多いと集計結果の不正確さが増すのではないか、という推論を元に検証した結果を共有しようと思います。
# そもそも何をやろうとしていたのか
とある、Webサービスにおいてユーザーの行動分析データを収集しており、そのデータに基づいて回答をするGPTsを作成したかった。
データは下記のように定義されている(GPTsに設定したAPI定義)
“`json
{
“openapi”: “3.1.0”,
“info”: {
“title”: “行動データ取得”,
“description”: “記録された生の行動データを取得する”,
“version”: “v1.0.0”
},
“servers”: [
{
“url”: “https://xxx”
}
],
“paths”: {
“/api/action”: {
CloudWatchMetricsの基本的な操作とアラーム設定方法
# はじめに
CloudWatch MetricsとAlarmは運用を基礎から支える大事なサービスだと思います。
前から気になっていたので、基本的な操作を確認しました。各サービスの概念などはBlackBeltを参考にし、この記事ではマネコンでの操作をメモできればと思います。
## CloudWatch Metrics
早速CloudWatch Metricsを触ってみます。
今回はlambda関数を実行することで自動収集されるメトリクスを利用して、
関数のエラー率、処理時間のMAX,MIN,AVGなどをグラフ化してみようと思います。lambdaサンプル
“`index.js
exports.handler = async (event) => {
// 基本の2秒待機
await new Promise(resolve => setTimeout(resolve, 2500));// ランダムで最大1
スマホアプリでChatGPTの口調を指定し、Alexaに喋らせる
# はじめに
初めまして!Qiitaの記事初投稿です。
Alexa Skills、ChatGPT API、Flutterを組み合わせることで、ユーザーがAlexaに質問をするとスマホアプリで設定した「任意の口調」で回答するシステムを開発しました。
何番煎じだよ、と思う方も多いと思いますが、一つ違うのは「スマホアプリでオプション(口調)が指定可能」というところです。
## 本記事について
開発のふりかえりも兼ねた、一連のアプリ紹介となります。地味に登場人物が多く、1記事にまとめると公開するのがだいぶ先になってしまうと思ったので、3部作くらいに分けて公開させていただきます。
:::note warn
主要なコードの紹介はしますが、あくまで「紹介」です。
Flutter(Dart)やLambda(Python)は、その言語の初心者が書いた内容のため、「参考程度」に留めてください。
:::## 対象読者
– AlexaとChatGPTを連携させたい人
– Flutterの開発に興味がある人# 本記事の紹介範囲
1. 開発背景
1. デモ動画
1. 全体の構成図
1. 各種
s3へのアップロードをトリガーにECSタスクを起動する流れ
### はじめに
webアプリケーションを作っていると、高負荷が予想される処理の対応には工夫が必要となります。
今回、ECSを使用している場合にタスクに対する負荷を抑える手法の例を紹介します。### ケース例
こちら自分が実際に業務で遭遇したケースですが、phpコンテナとnginxコンテナを含んだECSのwebアプリケーションを開発していた際に、ユーザーが顧客データ(数万件)が入っているcsvファイルをアップロードする場面がありました。このデータをDBに格納する際、アプリケーションに対して高負荷が予想されます。実際のCPU使用率のメトリクス:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3474661/cc448614-bd35-8ac6-187a-88426a87a467.png)
csvファイルがアップロードされたタイミングでcpu使用率が急上昇しており、webサーバに対して負荷がかかっています。### 解決策の例
ECSでcsvファイルのデータをDBに格納する処理の