- 1. AWS Security Token Service(STS)を使ってIAM認証のLambda関数を突破する
- 2. LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる
- 3. API Gatewayで/{proxy+}メソッドを活用する方法
- 4. 【Kotlin】lambda関数の書き方
- 5. “The Five-Factor Serverless“ AWS Lambda の9年を振り返りつつ、これからを考える。
- 6. AlexaでBedrockに質問をするスキル開発
- 7. Self hosted AWS LambdaによるAlexaスキル開発
- 8. AWS Lambdaで自作RSSリーダー開発
- 9. Amazon Managed GrafanaからRDSの時系列データをリアルタイムに表示してみる
- 10. Alexa×BedrockでAWS最新ニュースキャッチアップアプリ開発
- 11. Lambdaでko!
- 12. Dockerイメージから作成したLambdaで画像リサイズ処理を行う
- 13. FastAPIのLambdaからAWS外のサービスでキャッシュとDB構築! + Github Actions
- 14. 【Security Hub】全開放インバウンドルールの自動削除の仕組みを検討する
- 15. AWS SESバウンスメール監視・通知仕組み
- 16. [AWS Lambda]Line bot作成でつまづいた、zip内のフォルダ構成
- 17. AWS CodeBuild でコンピューティングに AWS Lambda を利用
- 18. 【pytest】AWS IoT メッセージを Publish する Lambda 関数をローカルでテストしたい
- 19. Kinesis Lambdaにおける処理順序の保障
- 20. サーバーレスはなぜ人気なのか
AWS Security Token Service(STS)を使ってIAM認証のLambda関数を突破する
# はじめに
今回はLambda関数URLをIAM認証にして、Security Token Service(STS)で作成したIAMユーザーを利用して、Lambda関数を実行してます。この記事はTDCソフト株式会社Advent Calendarの2日目です。
https://qiita.com/advent-calendar/2023/tdc
# Lambda関数URLとは
> 関数 URL は、Lambda 関数のための専用 HTTP エンドポイントです。関数 URL の作成と設定には、Lambda コンソールまたは Lambda API を使用します。関数 URL を作成すると、一意の URL エンドポイントが Lambda により自動的に生成されます。関数 URL を作成した後に、その URL エンドポイントが変更されることはありません。関数 URL のエンドポイントでは、次の形式を使用します。
`https://.lambda-url. .on.aws` https://docs.aws.amazon.com/ja_jp/lambda/
LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる
# 挨拶
こんにちは、ソーシャル経済メディア「NewsPicks」のSREチームの中川です。
この記事は [NewsPicks アドベントカレンダー 2023](https://qiita.com/advent-calendar/2023/newspicks) の2日目の記事です。
# 概要
本記事の内容としては以下の通りです。
– 今年発表されたばかりの[Lambdaレスポンスストリーミング](https://aws.amazon.com/jp/blogs/news/introducing-aws-lambda-response-streaming/)を試した。
– 上記機能とAWS-SDK for Javascript V3、 Lambda (Node.js) を使ってリアルタイムに情報取得できた。
– その情報をSlackに投稿して進捗バーを表示させた。システム構成は以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322115/0d4ae386-cc
API Gatewayで/{proxy+}メソッドを活用する方法
## はじめに
こんにちは、開発部の天津炒飯です。CloudFormationのLambda Functionでパスごと、Eventsを一つずつ書くことで苦労した経験があるかもしれません。
API Gatewayの “ /{proxy+} “ メソッドを使用すると、異なるパスに対するルーティングを簡単に実現できますが、意外と日本語の情報が少ないです。
私はPythonのWebフレームワークであるFastAPIを使用したので、この記事ではFastAPIを使用してAPI Gatewayの “ /{proxy+} “ メソッドを活用する方法に焦点を当てます。## 1. /{proxy+}メソッドとは
“ /{proxy+} “ メソッドは、ワイルドカードパスを表すもので、異なるパス構造のリクエストを同じAPIエンドポイントにルーティングするのに役立ちます。
例えば、 “ /products/{proxy+} “ は “ /products/item1 “ や “ /products/category1/item2 “ など、様々なパスに対応できます。##
【Kotlin】lambda関数の書き方
こんにちは、GxPのチョウキです。
こちらはグロースエクスパートナーズ Advent Calendar 2023の3日目の記事です。現在、私はアプリ開発に携わっており、その過程でKotlinを使用しています。別のプロジェクトではJavaを用いていましたが、JavaからKotlinへの移行にはいくつか困難が伴います。JavaとKotlinは100%互換性があるとされていますが、一方で似ている部分と大きく異なる部分が存在します。特に、よく使われているLambda関数の観点から、Kotlinの書き方を紹介したいと思います。Lambda関数を使用する際、初見では意味が分かりにくいことがしばしばあり、それを難しく感じることがあります。そのため、この知識をまとめることにしました。
## JavaとKotlinにおけるLambda関数と高階関数の使用
Lambda関数に入る前に、高階関数から説明します。
高階関数とは、簡単に言うと、関数型をパラメータや戻り値に持つ関数を指します。
### Javaでのメソッドの扱い
Javaでは、一つのメソッド内で別のメソッドを呼び出すことは一般的です。`
“The Five-Factor Serverless“ AWS Lambda の9年を振り返りつつ、これからを考える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6088/f81e1bd0-69d0-8515-2533-345d23bbdaec.png)
re:Invent 2023の Werner Vogels のセッションスライドを振り返りつつ。
![IMG_1515.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6088/0b1e7504-e6d2-85fd-dc9f-39101c7618fb.jpeg)[AWS Lambda は、2014年にGAしました。](https://aws.amazon.com/jp/about-aws/whats-new/2014/11/13/introducing-aws-lambda/)
Lambda 以外にこの年は Auroraや Codeシリーズなども発表されており、大変盛り上がった re:Inventになったことを記憶している人も多いのではないでしょうか。
![IMG
AlexaでBedrockに質問をするスキル開発
# はじめに
こちらは
– [Alexa×BedrockでAWS最新ニュースキャッチアップアプリ コンセプト・設計](https://qiita.com/SawaShuya/private/a22645e54d75667c5148)
– [AWS Lambdaで自作RSSリーダー開発](https://qiita.com/SawaShuya/private/aa007d310bfd12c751af)
– [Self hosted AWS LambdaによるAlexaスキル開発](https://qiita.com/SawaShuya/private/2395a08f57c8988f3163)
– **AlexaでBedrockに質問をするスキル開発 (本記事)**の連載記事です。前段の項目が完了していることを前提として書かれております。
本記事では以下のアーキテクチャの作成を目指して解説をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/918398/59c74b9a-a
Self hosted AWS LambdaによるAlexaスキル開発
# はじめに
本記事は
– [Alexa×BedrockでAWS最新ニュースキャッチアップアプリ コンセプト・設計](https://qiita.com/SawaShuya/private/a22645e54d75667c5148)
– [AWS Lambdaで自作RSSリーダー開発](https://qiita.com/SawaShuya/private/aa007d310bfd12c751af)
– **Self hosted AWS LambdaによるAlexaスキル開発 (本記事)**
– [AlexaでBedrockに質問をするスキル開発](https://qiita.com/SawaShuya/private/46c47068dd2573359c8b)の連載記事です。前段の項目が完了していることを前提として書かれております。
本記事では以下のアーキテクチャの作成を目指して解説をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/918398/2062f960-3
AWS Lambdaで自作RSSリーダー開発
# はじめに
こちらは– [Alexa×BedrockでAWS最新ニュースキャッチアップアプリ コンセプト・設計](https://qiita.com/SawaShuya/private/a22645e54d75667c5148)
– **AWS Lambdaで自作RSSリーダー開発 (本記事)**
– [Self hosted AWS LambdaによるAlexaスキル開発](https://qiita.com/SawaShuya/private/2395a08f57c8988f3163)
– [AlexaでBedrockに質問をするスキル開発](https://qiita.com/SawaShuya/private/46c47068dd2573359c8b)の連載記事です。本記事では以下のアーキテクチャの作成を目指して解説をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/918398/bca51a92-e2aa-7dc0-f93f-f5daed47ba18.pn
Amazon Managed GrafanaからRDSの時系列データをリアルタイムに表示してみる
# はじめに
Amazon Managed Grafanaを使った時系列データのクエリの実装例が少なかったので記事を書いてみました。
– 以前、Grafanaは少しだけ記事にしました。
– https://qiita.com/jnit/items/49f4954f8a7667e4a440#%E6%89%80%E6%84%9F– 最近OpenSearchがニューラル検索に対応し、「リアルタイム可視化」という点でGrafanaとOpenSearchの棲み分けの方向性が明確になってきたように思います。
– https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-opensearch-neural-search/
– 個人的には単純なリアルタイム可視化であればGrafanaがよいのではと思います。## 構成
各サービスのデータ連携は、すべてVPC内でセキュアに通信するようにしてみます。
![image.png](https://qiita-image-store.s3.ap-northea
Alexa×BedrockでAWS最新ニュースキャッチアップアプリ開発
# はじめに
**2023 Japan AWS Jr. Championsアドベントカレンダー**:christmas_tree: 記念すべき1日目の投稿ですAlexaやBedrockを活用してAWS最新ニュースキャッチアップができないかと考え、アプリ開発をしてみました!
その時に使用した技術について以下の記事にまとめていきたいと思います。
アプリを作る中で、必要となる知識を適宜盛り込んで解説をしてます。– **コンセプト・設計 (本記事)**
– [AWS Lambdaで自作RSSリーダー開発](https://qiita.com/SawaShuya/private/aa007d310bfd12c751af)
– [Self hosted AWS LambdaによるAlexaスキル開発](https://qiita.com/SawaShuya/private/2395a08f57c8988f3163)
– [AlexaでBedrockに質問をするスキル開発](https://qiita.com/SawaShuya/privat
Lambdaでko!
## これは何?
これは [MEGAZONE 株式会社](https://www.megazonejapan.jp/) のテック陣「MEGAZONEのゆかいな仲間たち」がおくる、[Megazone Japan Advent Calendar 2023](https://qiita.com/advent-calendar/2023/megazonejapan) の一日目のエントリーです。
## はじめに
いやー、あっという間に12月ですね。今年は秋っぽい空気を楽しむチャンスがほとんどない天候のまま冬がやってきましたが、皆さんも「え?もう Advent Calendar の季節?どうしようエントリーしたけどまだ書いてないよ?まじやばいよー」なんて慌ててませんか?えぇ、私がまさにその状態です。
まともに Advent Calendar を書くなんて何年ぶりだろう?と記憶を掘り起してみると、実に6年ぶりぐらいのエントリーとなります。Private Cloud 界隈では 2012 年ごろから 2017 年ぐらいにかけて Advent Calendar が盛んでしたが、その後は Priva
Dockerイメージから作成したLambdaで画像リサイズ処理を行う
# やりたいこと
Lambda関数でlibvipsで画像をリサイズする
Lambda関数はRubyで動かす
画像はS3から取得する
ローカル環境で動作確認もしたい# Dockerfileの用意
libvipsを使う場合そもそもlibvips本体をインストールしないといけません。
今回は、libvipsをインストールしたDockerイメージからLambdaを作成することにしてみました。“`:Dockerfile
FROM amazon/aws-lambda-ruby:latest# EPELリポジトリを追加
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm# remiレポジトリを追加
RUN yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm# libvipsとlibvipsを使うために必要なパッケージをインストール
RUN yum install
FastAPIのLambdaからAWS外のサービスでキャッシュとDB構築! + Github Actions
# 概要
FastAPI、Pythonに詳しい方はご存じの方も多いかもしれません。
AWSのLambda関数と組み合わせるとどんな感じになるんだろう?と思って触り始めました。
色々学べたので、この機会に記事にしました!**こういったアーキテクチャが実現できるかな**?という部分に焦点をおいています。また、可能な範囲でコストも抑える方針で進めました!
### 主な目次
– パート1:アプリケーション作成
– インフラ構築(CDK Typescript)
– Lambda関数(FastAPIのアプリケーション)の作成
– DBやcacheの構築の前に
– supabaseによるDB構築
– upstashによるcache構築
– パート2:GitHub Actionsと各ツールの利用
– GitHub Actionsのworkflowは作ったが・・・
– Ruffの利用(Linterツール)
– actの利用(ローカルでGitHub Actions)
– stepciの利用(APIのテスト)
– ふりかえりとgi
【Security Hub】全開放インバウンドルールの自動削除の仕組みを検討する
# 記事の目的
この記事では、セキュリティグループ(SG)のインバウンドルールを適切に管理し、全開放のルールが設定された場合にそれを自動的に削除する仕組みを検討します。
セキュリティグループの管理はクラウドインフラストラクチャのセキュリティにおいて極めて重要であり、この仕組みを導入することでセキュリティの向上と誤った設定による問題の最小化を目指します。# 背景
近年、クラウド環境においてセキュリティの適切な管理がますます重要となっています。
ある日、私の配属先PJで、パブリックサブネットに配置されたプロキシ用EC2インスタンスを介して複数のシステムに接続する際、予期せぬ問題が発生しました。
システムへの接続ができなくなったため、問題の切り分けを行うために、プロキシ用EC2のセキュリティグループ(SG)のインバウンドルールを変更しました。
具体的には、全ポートからのアクセスを全ソースから許可する設定を行いました。問題はその後解決し、システムへの接続が復旧しましたが、セキュリティグループのインバウンドルールを元の設定に戻す作業が行われませんでした。
これにより、外部からのアクセスが
AWS SESバウンスメール監視・通知仕組み
最近は、AWSから「Amazon SES Bounce Review Period for AWS Account 」の通知が来ていますが、SESを使って送信するソースメールアドレスは、メーリングリストで未達のメールがあっても、通知が来ません。
従って、バウンスメールの閾値超えているか、そもそも未達のメールはどのメールアドレスか判断が付きにくい状況になっています。SESより送っているメールのメトリクスは二つがあります(Bounce RateとComplaint Rate)。前者はアドレスが実在しないか、メールのドメインが実在しないか、あるいは受信者のサーバーがメールを拒否した、などが原因となります。
Bounce Rateはある程度を超えたら、AWSより通知が送られて、対応依頼が来ていますが、ほっとくと、閾値を超えて送信は禁止されてしまいます。特にサーバー監視メール等は、送信できないことになってしまうと、運用に大きく影響があるので、そのようなことがないよう監視・通知・調査できる環境を作るのは実務となります。
■設計
以下のように考えています。
・調査ができるようにSESバウンス
[AWS Lambda]Line bot作成でつまづいた、zip内のフォルダ構成
# 概要
AWS Lambdaを使用したオウム返しline botをつくった。
するとオウム返しどころか、全く動作しなかった。
ログを見ていくと”lambda_function”が見つからないらしい。
zip直下に”lambda_function”などのファイルを置くことで解決した。# 参考にしていた手順
https://qiita.com/i3no29/items/6329f0e114dad1b6a525これの通りやったのに、できなかった
# エラーの内容
#### ① API endpointのURLを踏むと”Internal Server Error”![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1741372/9f7b5863-6c6e-8fe4-53db-5cc9b6501c07.png)
ここを踏むと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1741372
AWS CodeBuild でコンピューティングに AWS Lambda を利用
# 内容
従来は EC2 上でコンテナイメージが実行されていたが、CodeBuild でコンピューティングに Lambda を使用してビルドやテストを実行できるようになった。
Lambda はほぼ瞬時に起動するため、より高速なビルドが可能な点が利点かと思います。
Lambda でコンピューティングを実行すると、1 秒あたりの使用量に対して課金されるため、コストを最適化できる点もあげられていますが、個人的にはよっぽどな環境ではない限り、差ほどのコスト減はないのかと思っています。
https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-codebuild-lambda-compute/
# サポートされているツール、ランタイム
AWS CLI v2、AWS SAM CLI、git、go、Java、Node.js、Python、pip、Ruby、.NET
# 制限事項
– バッチビルド
– ビルド間のキャッシュ
– タイムアウトによるランタイムの分単位の制限
– ルートユーザーの許可を必要とするツールその他に
【pytest】AWS IoT メッセージを Publish する Lambda 関数をローカルでテストしたい
# 1. 前書き
AWS IoT メッセージを Publish をする Lambda 関数と関数を呼び出すための API Gateway を CDK で作成しました。
構成は以下のようになっています。“`
sample/
├ bin/
└ sample.ts
├ lib/
└ sample-stack.ts
├ iot/
└ publish.py
├
…以下略
“`CDK で使用した言語は TypeScript 、Lambda 関数で使用している言語は python です。
“`python: publish.py
# coding: utf-8
import os
import json
import logging
import boto3# 環境変数から取得
REGION = os.environ.get(‘REGION’)# AWS IoT Dataオブジェクトを取得
iot = boto3.client(‘iot-data’, region_name=REGION)# トピック名
TOPIC_NAME = ‘sa
Kinesis Lambdaにおける処理順序の保障
## Kinesisのシャード
Kinesis clientは挿入する各レコードに、partition keyを指定する。
Kinesisは、このpartition keyをハッシュ値を元に、どのシャードにレコードを入れるかを決定する。
シャード内では、レコードの読み取り順序が書き込み順序と同じになることが保証される。## kinesis Lambdaの並行性について
Pararellizatino Factor は、1 Kinesis shardあたりにいくつのLambdaが張り付くかを意味する。
以下で設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534442/15a7467d-c883-bb22-418d-9854730ec8e3.png)### デフォルトは、Parallelization Factor = 1
デフォルトで、1 Lambda per 1 Kineiss shard。
結果として、シャード内のレコードの処理順序は、書き込み時の順序と一致
サーバーレスはなぜ人気なのか
サーバーレスアーキテクチャが近年人気を集めているのには、いくつかの大きな理由があります。
## 管理の簡素化
サーバーレスは、サーバーやOS、ミドルウェアなどの提供や管理をクラウド提供事業者が行うため、開発者はコードの作成に集中できます。
これにより、アプリケーションの開発とデプロイのプロセスが簡素化されます## 課金方式の柔軟性
サーバーレスは利用単位で課金され、処理のリクエスト数と実行時間に応じて料金が決まります。
これにより、サービスの利用頻度に応じてコストを削減できる可能性があります## スケーラビリティ
サーバーレスアーキテクチャは需要に応じて自動的にリソースがスケールするため、トラフィックの急増にも迅速に対応できます
## 用途の多様性
サーバーレスは動的なWebサイトやモバイルアプリのバックエンド、簡単なデータ処理、新規サービスのスタートアップ、マイクロサービスアーキテクチャの実現など、さまざまな用途に適用可能です
## 注意点
ただし、サーバーレス単体ではプログラムの実行しかできず、データベースやストレージなどの他のサービスとの組み合わせが必