- 1. 【AWS Lambda関数作成】APIGatewayの作成手順(状態維持API編)
- 2. Amazon Bedrockで画像生成&S3保存するPythonコードを書く
- 3. 多数のEC2上で動作するアプリケーションの構成情報をAPIで取得できる様にした話 (boto3を使ったS3ファイルの並列ダウンロード)
- 4. 【AWS Lambda関数作成】APIGatewayの作成手順(発火API編)
- 5. EC2とDiscordコマンドを活用したマイクラ鯖構築
- 6. 【AWS】APIGatewayでLambda関数を呼び出す設定手順【APIGateway】
- 7. Agents for Amazon Bedrock のプロンプトを追いかけてみる
- 8. 【AWS Lambda関数作成】IAMでの権限設定
- 9. たった10分で始める!AWS における最速のアプリ開発方法
- 10. GBFSのデータを使って、新しくできたシェアモビリティのステーション情報をXに自動ポストするよ。
- 11. 【AWS Lambda関数作成】Lambda関数の開発とデバッグ
- 12. AWS Lambdaの超基本的なTips
- 13. Python3.11 x Flaskで開発環境を構築する。
- 14. AWS_Lambdaを用いた集計_前編
- 15. 【AWS Lambda関数作成】Python(local環境)の開発
- 16. TerraformでAWSサービスの情報をコード化する方法
- 17. Cognito idTokenをAPIGW&Lambdaで受け取ってデコードする
- 18. 会社のデータ分析環境をAWSで整えた話
- 19. VPC有効化の時Lambda関数のIPアドレス消費数
- 20. 【AWS】Connectを利用して自動電話通知機能実現
【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鯖仲間の誰かがふと思った『マイクラで遊びたいな……』**
というわけで身内用マイクラ鯖を構築するために模索する機会が発生しました。
せっかくなのでその記録をここに残します。AWS EC2上で動くマイクラ鯖が完成~
起動してる時間に応じて課金されるのでDiscordのコマンドを作って起動・停止できるようにする神対応 pic.twitter.com/wqD8kcRRdp— りゃま (@RyumaRyama) 【AWS】APIGatewayでLambda関数を呼び出す設定手順【APIGateway】
## はじめに
簡単な処理を行うWebアプリケーションでは処理をLambda関数に実装してそれをWebアプリケーションから呼び出すいわゆるサーバレスアプリケーションを構築することがあります。
今回の記事ではサーバアレスアプリケーションの基本的な構成であるAmazonAPIGatewayを利用したLambda関数呼び出しの実装例を投稿しました。## アーキテクチャ図
![アーキ図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/4531270f-c4f0-d178-4006-79adf84de1e6.png)
## 構築手順
### 1.Lambda関数の実装
#### ①Lambda関数を作成します
※特にAPIGateway用の設定等はなく、必要に応じた処理を実装してください
※ここでは呼び出された後でメッセージを返すだけの処理を書いています
![Lambda作成1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonawAgents 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 mainimport (
“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
Cognito idTokenをAPIGW&Lambdaで受け取ってデコードする
Cognito idTokenをAPI GW&Lambdaで受け取ってデコードする手順についてのメモ書きです。
# やりたいこと
1. Cognitoでログインし、idToken(jwt)を払い出す。
1. 手順1のidTokenを利用し、APIGWで作成された認証必要なAPIを呼び出す。
1. Cognito Authorizerでユーザー認証を行い、バックエンドのLambdaを起動する。
1. Lambdaで手順1のidTokenを受け取り、デコードする(emailなどのユーザー情報を取得する)。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2954734/050e7c0f-7fe5-dc09-8773-9ae8bb98a333.png)
# Cognito Userpool
– Userpoolの作成手順は割愛します。
– idTokenの払い出しについて、SDKなどを使うことも可能ですが、今回はホストされたUIを使います。(コールバックURLはいったんlocalhostと
会社のデータ分析環境をAWSで整えた話
この記事は[Wano Group Advent Calendar 2023](https://qiita.com/advent-calendar/2023/wano-group)の15日目の記事となります。
## 経緯
私は2023年2月に[TuneCore Japan](https://www.tunecore.co.jp/features)1人目のData Analyticsチームメンバーとして株式会社WANOに入社しました。
当時は、開発チームがMySQLのテーブルデータをS3へ格納したものを見たいメンバーがTableauで見るという状態で、適切な分析の為のテーブル環境が整っていませんでした。
そこで、みんながデータ活用できるような環境をAWSで作っています。
現時点でまだ足らない箇所もありますが、現時点の内容を紹介したいと思います。### 構成図
#### 旧
![Tableau利用環境(旧).drawio (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635079/
VPC有効化の時Lambda関数のIPアドレス消費数
Lambda関数のVPC設定を有効化する場合、Hyperplane ENIが必要なので、プライベートIPアドレスが1つ消費されます。
ただし、必要なHyperplane ENIが既に存在する場合、Hyperplane ENIが再利用されるので、プライベートIPアドレスは消費されません。
Lambda関数作成時にVPCを有効化すると、通信に使用されるHyperplane ENIが作成されます。指定されたサブネットのIPアドレス範囲から、Hyperplane ENIにIPアドレスが割り振られるので、IPアドレスが消費されます。
一意のサブネットとセキュリティグループの組み合わせを定義してHyperplane ENIが作成されるので、組み合わせが既に存在する場合は、Lambda関数は既存のHyperplane ENIを再利用します。
Lambda関数実行時は、Hyperplane ENIを介して通信が実施されます。
Hyperplane ENIの制限としては、1つHyperplane ENIで最大65000接続を行うことが可能です。そのため、例えば110000個VPC有効化Lamb
【AWS】Connectを利用して自動電話通知機能実現
従来、業務サーバーは障害発生時、CloudWatchLogsにログを溜めてメールにて監視担当者に通知する仕組みかと思いますが、データセンター等大規模障害は発生したら、メールサーバーも使えなくなり、従来の障害検知時の通知仕方では、通知できなくなる課題がありました。
メールサーバーの不調や大規模障害発生時も、監視担当へ支障なく通知できるよう監視仕組みを見直しました。メールではなく、AWS Connect機能を利用して自動電話通知できるよう対応をしました。
■構成図(サーバー等の記載は割愛とします)
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600067/39fce7b2-849d-0221-6f4e-8a0391e01ab1.png)■設計ポイント
AWS Connectでの自動電話通知は、後で履歴を追跡できるようDynamoDBで電話履歴を残す。
AWS Connectで予め取得した発信者電話番号は、業務上使いませんので、もし電話が来る場合、業務用の電話番号を自動的に案内する。■AW