Lambda関連のことを調べてみた2022年10月24日

Lambda関連のことを調べてみた2022年10月24日
目次

[AWS Lambda Powertools Python]パラメータ機能のtransform動作を確認

# 概要

[AWS Lambda Powertools Python](https://awslabs.github.io/aws-lambda-powertools-python/latest/) [^1] の機能のうち、[パラメータ機能(Parameters)](https://awslabs.github.io/aws-lambda-powertools-python/latest/utilities/parameters/) [^2] にはJSONとbase64を変換してくれる機能が含まれています。
簡単なサンプルで動作を確認します。

[^1]: [AWS Lambda Powertools Python](https://awslabs.github.io/aws-lambda-powertools-python/latest/)
[^2]: [Parameters](https://awslabs.github.io/aws-lambda-powertools-python/latest/utilities/parameters/)

# 確認手順

対象はSSM P

元記事を表示

[AWS Lambda Powertools Python]パラメータ機能のキャッシュ動作を確認

# 概要

## パラメータ機能

[AWS Lambda Powertools Python](https://awslabs.github.io/aws-lambda-powertools-python/latest/) [^1] の機能のうち、[パラメータ機能(Parameters)](https://awslabs.github.io/aws-lambda-powertools-python/latest/utilities/parameters/) [^2] はAWSの下記を利用したアプリケーションパラメータ読み取り機能を提供してくれます。

[^1]: [AWS Lambda Powertools Python](https://awslabs.github.io/aws-lambda-powertools-python/latest/)
[^2]: [Parameters](https://awslabs.github.io/aws-lambda-powertools-python/latest/utilities/parameters/)

– AWS Systems

元記事を表示

処理を続けるLambdaを中断させる方法とか

JAWS-UG 朝会にてLTをやった内容をもうちょい深掘りしてみました。
Lambda の処理が止まらなくなったので、やったことをまとめてみます。

## やろうとしていたこと
KinesisからのストリーミングデータをLambdaで受け取り、よしなに処理したあとに別サービスへとAPI連携をしていこうとするつもりでした。

## CloudWatch にずっと出てくるログを見て・・・
メッセージを見るために何度かみているのですが、どうもずっと動いているようでした。
最初は継続しているのかな?と思いながら見ていたのですが、1分で出ている量がおかしいと思い、対処していくことにしました。

## まずは止めにかかる
### Lambda を一時停止させる
兎にも角にも Lambda は停止しないと無限課金されるので一旦処理を止めます。
止める方法は対象の関数から「同時実行」→「編集」から「同時実行の予約」の数を 0 に設定します。

これで処理は一旦止められたのでそこから見ていきます。
同時実行の設定を戻すと当然処理が再開されますので、一時しのぎです。

### Lamb

元記事を表示

NAT Gawatewayを使ったLambdaのIPアドレスの固定化方法

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556658/6ec16fbf-ad49-b975-cf6a-642ab0476747.png)

## はじめに
株式会社マイスター・ギルド新規事業部のヒツジーです。
弊社新規事業部では、新規サービスの立ち上げを目指して
日々、アイディアの検証やプロトタイプの作成などを行っています!

技術の進歩は目覚ましいので、置いてかれないように新しい技術のキャッチアップにもいそしんでいます!
本記事は、以前書いた[FastAPI with Lambda + API Gatewayでサーバレスアプリケーションを作成する方法](https://qiita.com/drafts/cedd1825e5437663d3ce)の続編として、AWSのサービスであるNAT Gawatewayの使い方についてご紹介します。

アクセス制限がかかっている外部サーバーのDBにAWS Lambdaからアクセスするには、IPアドレスを固定化しないといけませんが、NAT Gat

元記事を表示

Notion へ瞬時にメモできるLINEbotをつくってみた

# はじめに
スマホから瞬時にメモをしてNotionでも確認できるbotを作りました。参考にしたソースコード、サイトを部分的に紹介します。

# 作ったもの
できることはシンプルで2つだけです。
### 1. LINEのトークルームで入力した内容をNotionテーブルにも記録する。

### 2. webページもコメント付きで記録できる。


元記事を表示

aws lambda numpy importエラー

aws lambdaでDBにinsertする処理を作成していたのですが、その際pandasが必要でimportしたところ、

“`
Function Logs
START RequestId: 00d85ae0-ce8e-4472-91f5-413f21e3bea3 Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module ‘lambda_function’: Unable to import required dependencies:
numpy:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have

元記事を表示

CloudFormationでLambda(Python) + RDS Proxy + Auroraを構築する

# 本記事の内容

– AWSが提供するCloudFormationサービスを利用し、Lambda(Python)、RDS Proxy、Auroraを建てる方法を記載した記事です。
– これまでに以下の記事でAurora関連をCloudFormationで実施していました。その続編です。
 - [検証目的のためにCloudFormationでシングルインスタンスのAuroraを建てようとしたら手こずった話](https://qiita.com/kanamekun/items/4db938d52712b1165c37)
 - [CloudFormationでAuroraとLambdaを構築。LambdaでLOAD DATA FROM S3コマンドを実行しS3のCSVファイルをAuroraにインポートする。](https://qiita.com/kanamekun/items/53da2f73bcc2e5d68dc2)

本記事の手順で以下のような構成のクラウド環境を作成します。
![aws_lambda_rdsproxy_aurora.png](https://qiita-image-

元記事を表示

TradingViewのアラート機能から自動売買botを作る その1

# 目的
* できる限り簡単にシステムトレードを行いたい
* できる限り安くシステムトレードを行いたい
 GMOコインのAPIを使用して発注する、APIKey等は事前に用意が必要です。

# 技術選定
【TradingView】
TradingView ではストラテジーテスターを使用することで
バックテストを簡単に行うことができる。
またアラート機能でWebhookを使用することができる。
**※現状は有料プランしかWebhookは使用できない**

【AWS APIGateway,lambda】
Webhook(アラート発生)➡APIGateway➡lambda 
という流れで自動売買が可能になる。
Zapier( https://zapier.com/ )というWebhookを受け取れるサービスの使用も考えたが、
料金が円安で地味に高いので、一番料金のかからなさそうなAWSを使用することとした。

## lambdaの作成
まずlambdaの作成を行います。
今回はpython3.7で作成を行いました。
![image.png](https://qiita-image-store.

元記事を表示

AWS Parameters and Secrets Lambda Extension つかってみた

## はじめに
2022/10/18 に AWS Parameters and Secrets Lambda Extension が利用できるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-parameters-secrets-lambda-extension/

AWS から提供される Lambda Extensions を使用して AWS Systems Manager Parameter Store からパラメーターを取得したり、AWS Secrets Manager からシークレットを取得したりできるようになります。

## 何が嬉しいのか
これまでは Lambda 関数の処理内で AWS SDK 等を使用してパラメーターやシークレットを取得していました。今回の拡張機能を使用することでこれらの値をキャッシュし、Lambda 関数のライフサイクル内で再利用できるようになります。これによりパラメーターやシークレットを取得するためのレイテンシーとコストが削減されます。

## 基本的な使い方

元記事を表示

AWS LambdaでPython向けLayerを作ろうとしたらはまった話

AWS Lambda(Python)を使ってGoogle APIにアクセスしようとしたらライブラリではまった話です。
(Python初心者なので誤った記述があるかもしれません)

# 環境
– 開発環境用にEC2 Amazon Linux2 + Python 3.7
– Google APIにはサービスアカウントでアクセスする
– Google API利用に必要なPythonパッケージ用にLambda Layerを作成する

# 参考にした記事
– メインのコード自体は「補足:サービスアカウントを使ったやり方」を
ほぼそのまま活用させていただきました。

https://www.coppla-note.net/posts/tutorial/google-calendar-api/

– 必要なパッケージについてはGoogleの「[Python quickstart](https://developers.google.com/docs/api/quickstart/python)」を参照しています。

# 事象
`pip -t`でインストールしたディレクトリを圧縮・Layer化したのに

元記事を表示

SAMを使ってAPI-Gateway経由でAWS::Serverless::Functionから画像をダウンロードする

# はじめに

AWSのSAMでASP.NET Core WebApiプロジェクトを作りPDFなどをダウンロードする場合、APIGatewayに設定を行わないとBase64でエンコードされたファイルがダウンロードされてしまいます。
これ自体は[API Gateway REST API を使用したバイナリサポートの有効化](https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-payload-encodings.html)の記載に従い、マネジメントコンソールで操作をすれば解決はできるのですが、SAMのテンプレートでこれを指定すにはどうすればよいでしょうか?

# 前準備

AWS関連のプロジェクトテンプレートと、Lambda関連のデプロイサブコマンドをインストールしていない場合はインストールしておいてください。

“`sh
❯ dotnet new –install Amazon.Lambda.Templates
❯ dotnet tool install -g Amazon.La

元記事を表示

AWS EC2 インスタンスタイプの自動更新

# TODO
* EC2のイベント対応で夜間に自動停止・起動
* インスタンスタイプを夜間に自動更新

# 内容

## tag
* Key=Schedule, Value= [1:スケジュールあり, 0:スケジュールなし]
* オプション
Key=InstanceType, Value= 例)t3.micro

## EventBridge
* 例)毎週木曜日0時に処理
cron(0 15 ? * WED *)

## Lambda

“`python:lambda_handler Python3.9
import boto3
import json
import pprint

def lambda_handler(event, context):
cnt = 0
log_msg = []
task_tag = ‘Schedule’

client = boto3.client(‘ec2’)
reservations = client.describe_instances(
Filters=[{

元記事を表示

AWS Lambdaのnodejsランタイムでsharpを使うと”Something went wrong installing the \”sharp\” module”でエラーになる場合の解決法

# 結論

“`bash
$ npm install
$ rm -r node_modules/sharp/
$ npm rebuild –arch=x64 –platform=linux sharp
“`

# sharp

画像リサイズやフォーマット変換してくれる。
しかし、そのまま`npm install`しても AWS Lambda でエラーになる。

https://sharp.pixelplumbing.com/

# エラー内容
## Lambdaのエラーメッセージ

“`log
Something went wrong installing the “sharp” module

Cannot find module ‘../build/Release/sharp-linux-x64.node’
Require stack:
– /var/task/node_modules/sharp/lib/sharp.js
– /var/task/node_modules/sharp/lib/constructor.js
– /var/task/node_modules/

元記事を表示

画像を任意のフォーマット&サイズに変換するLambda関数を作成する

任意のBase64にエンコードされた画像をリクエストで送るだけで、フォーマットとサイズを変換してレスポンスで返してくれるLambda関数を作成する方法です。

こういう汎用的なAPIが欲しくなる場面って割とあると思うので、すぐに作成できるように手順を残します。

## 例

変換前
![3ce943ff-a81f-45bd-ab74-6560e0d33faf.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227791/dada9250-3380-4a0f-315a-85dc1e4efd58.jpeg)

変換後(100×100に収まるように設定)
![4f3654ed-8706-4854-8d5d-255548a126b3.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227791/2131673c-0a38-04fd-de63-34da1e831f50.jpeg)

## ユースケース

– 画像形式もサイズも

元記事を表示

JavaプロジェクトからSQSにキューを送信してlambdaをキックする

# 前提
業務でこんな処理を実装する気がするので、簡単に予習してみます。
今回は動くか検証のみなので、ローカルで起動したJavaアプリケーション(Spring Boot)からSQSにメッセージを送信してみます。

本当はlambdaからrdsへ登録・更新する処理を実装したかったのですが、それはまた別の機会に。(なのでSQSやlambdaの名前がmergeXXXXみたいになってます。)

![lambda-sqs.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2433961/3a229f2f-f2b9-d425-1c1e-6ec78dd46b8e.png)

# 環境
– macOS: 12.6
– IntelliJ IDEA: 2022.2.3 (Community Edition)
– Gradle: 7.5
– Java: temurin 17.0.3

# 手順

## プロジェクトの作成

#### spring initializrでプロジェクト作成
[https://start

元記事を表示

Lambda (Node.js) から SNS 経由で IOSデバイス にプッシュ通知

# はじめに
LambdaからSNS経由でアプリをインストールしたIOSデバイスにプッシュ通知する方法についてまとめました。

# 事前構築
– プッシュ通知用証明書(p12)は、発行済とする
– IOSデバイスのデバイストークンは、取得済みとする
– 参考記事
– https://kahoo.blog/howto-aws-sns-ios-push-notification/

# SNS作成
SNSでプッシュ通知の設定をします。
## プラットフォームアプリケーションの作成
`プラットフォームアプリケーションの作成`をクリックします。
![スクリーンショット 2022-10-14 16.00.24.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

then-request モジュールを用いて、Lambdaで HTTPリクエスト を同期処理

# はじめに
Lambdaが同期処理でAPIを叩くために、モジュールを探すと、sync-requestがありましたが、商用では非推奨で、then-requesを推奨されておりました。

`then-request`は、非同期処理ですが、`await`を使えば、同期処理できますので、Lambdaで`then-request`を使い、同期処理でAPIを叩き、結果を返す方法をまとめます。

同期的に WebページやAPIの取得をしたい場合に参考になるかと思います。

# then-requestモジュール

`then-request`モジュールを使用するため、ローカルで`then-request`モジュールをインストールします。
“`terminal
$ mkdir nodejs
$ cd nodejs
$ npm init -y
$ ls
package.json

$ npm install then-request

$ touch index.js

$ tree
.nodejs
├── index.js
├── node_modules
├── package-lock.jso

元記事を表示

CloudFormationでAuroraとLambdaを構築。LambdaでLOAD DATA FROM S3コマンドを実行しS3のCSVファイルをAuroraにインポートする。

# 本記事の内容

– AWSが提供するCloudFormationサービスを利用し、以下を行う。
– データベースの一つであるAurora(MySQLエンジンタイプ)をシングルインスタンスで建てる。
– サーバレスアプリケーションであるLambdaを建てる。
– 構築したAuroraに対してテーブル作成とデータ投入(LOAD DATA FROM S3)をLambdaを使って実行する。

本記事の手順で以下のような構成のクラウド環境を作成します。
![aws_lambda_direct_aurora.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2017667/d835cb9c-b08e-58b3-8afa-c6d0a769980e.png)
※AWSの操作画面はサービスリリースと共に更新されていくため、本記事をご覧いただくタイミングによっては、現在の画面と異なる場合があります。ご了承ください。本記事内の画面キャプチャーは2022年10月時点。

DBへのテーブル作成・データ投入の方法

元記事を表示

AWS Lambdaで動かすStable Diffusion(ネガティブプロンプト対応 Diffusers v0.4.2)

# はじめに
先日(2022/10/7)、Diffusers v0.4.0がリリースされました。
9月にリリースされたv0.3.0ではONNXがサポートされてCPUでの実行がやりやすくなり、今回のv0.4.0ではポジティブプロンプトとネガティブプロンプトの両方を指定できるようになるなどの機能が追加されています。
これまでCPUでStable Diffusionを使用する場合はopenvino版を使用していましたが、本記事ではこれらの追加された機能を活用し、openvinoを使わずにAWS Lambdaにて動作確認をしてみたいと思います。

:::note alert
費用に関する注意、および、免責事項
– 注意事項
本記事ではLambda関数に設定可能なメモリ上限の割り当てを行います。
また、画像の作成には1枚に数分程度かかるなど費用が高額になる可能性があるため内容を検証する場合は十分ご注意ください。
– 免責事項
当方はこの記事を使用して生成されたコンテンツについて責任を負うものではなく、また、このプロジェクトを違法、有害、攻撃的なコンテンツの作成に使用しないでください。
:::

元記事を表示

kintone Webhook用のAPI をLambdaオーソライザーで保護する方法について

API GatewayとLambdaを利用する時のAPIの保護の方法についての記事です。
kintone Webhookの利用に限ると、リクエストベースのLambdaオーソライザー(リクエストオーソライザー)が良かったので紹介します。

# リクエストオーソライザーを選択する理由

2022-10現在、kintone Webhookではヘッダーを付けることができない。
使えるとすればリクエストパラメーターだけ。
なのでリクエストオーソライザーが合っている。(と個人的に思います)

# 環境

* macOS
* AWS SAM CLI, version 1.58.0
* Node v16.13.1
* kintone

# API Gateway と Lambdaを作成する

SAMを利用してテンプレートから環境を作ります。

“`bash
$ sam init
Which template source would you like to use?
1 – AWS Quick Start Templates
What package type would you like to

元記事を表示

OTHERカテゴリの最新記事