Lambda関連のことを調べてみた2021年07月13日

Lambda関連のことを調べてみた2021年07月13日

TerraformでLambdaコンテナイメージを自動構築する

# はじめに
昨年末にGAされたLambdaのコンテナイメージ機能。
プラットフォームとしてのデプロイ方法が増えて、ますますLambdaの使い勝手が良くなってきている。

今回は、通常のZipによるデプロイではなくて、コンテナイメージでのデプロイをTerraformで自動化してみよう。

前提知識としては以下だ。

– TerraformによるLambdaのデプロイ経験がある
– SAMによるLambdaのデプロイ経験がある([参考記事](https://qiita.com/neruneruo/items/1ef52f908e4497103a59))
– Dockerの基本のキは理解している([参考記事](https://qiita.com/neruneruo/items/82c9daf90d5782f150d2))

# ソースコード
今回は動けば何でもよいので、AWSリソースとも接続しない、テキトーにJSONを返すだけのコードにしよう。
クエリからidを受け取り、それに応じた名前を返すような機能(getemployee)とする。

“`main.go
package main

元記事を表示

API Gatewayを使ってLambda関数を使ったREST APIを作成する

# はじめに
こんにちは。東京五輪のサッカー準決勝のチケット持ってましたが、無観客になっちゃいましたね :innocent: いやー、もし再抽選で当たってたら行く行かないで迷っていたと思うので、自分はこれでよかったと思います。

さて、今回は先日作成した**Lambda関数**を**API Gateway**を通してAPIとして使えるようにしようと思います。

# 先日作成したLambda巻子はこちら

https://qiita.com/akitkat/items/d7d3f41449a58fdb38ae

# API Gatewayを使ってLambda関数を実行する
## 1. APIの作成
`APIの作成`からAPIを作成します。
`API名`はお好みで大丈夫です。URLに含まれたりはしません。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86984/3a0b3a0d-5777-40da-46e0-cb49d0eea4d4.png)

## 2. リソースの作成
`アクション`プルダウ

元記事を表示

ElixirでAWS Lambdaの.zipファイルとコンテナイメージの速度比較

# はじめに

ElixirでAWS Lambdaのアプリケーションを書く場合、これまではカスタムランタイムを含めたアプリケーションを.zipファイルで固めてアップロードする方式一択でしたが、2020年末に、AWS Lambdaがコンテナイメージをサポートしたことで、カスタムランタイムを含めたアプリケーションをDockerイメージにし、ECRに登録して利用するという方式も選択できるようになりました。

今回、それぞれのアプリケーションをデプロイしてみて、コールドスタートからの実行速度や、通常の実行速度等を比較してみたいと思います。

# 比較してみる

## アプリケーションの作成

今回は、リクエストされた小文字を大文字に変換して返す簡単なLambdaを作成して速度比較を行います。

アプリケーション作成については、AWS LambdaやAzure Functions、IBM Cloud Functionsのアプリケーションを簡単に作成できる謹製ライブラリがあるのでそちらを使います。

ライブラリはこちらで公開
→ https://github.com/imahiro-t/faas_

元記事を表示

AWS Lambda で画像AIを動かす

## はじめに

AWS Lambda で Pytorch の画像AIを動かしてみました

SAM CLI で簡単に構築できるので、ちょっとした AIサービスなら低コストで実現できそうです

## 実行環境

– macOS Big Sur 11.4
– SAM CLI 1.24.1
– Docker 20.10.6

## 参考にしたもの

2021/2/12 のブログです

こちらは自然言語処理のAIを動かしています

https://aws.amazon.com/jp/blogs/machine-learning/using-container-images-to-run-pytorch-models-in-aws-lambda/

## AWS Lambda とは

AWS Lambda はサーバレスコンピューティングサービスです

https://aws.amazon.com/jp/lambda/

開発したコードをアップロードすると、呼び出されたときだけマシンが起動し、コードを実行して、自動的に終了してくれます

何が嬉しいかというと

– サーバーがないので、サーバー構築

元記事を表示

Lambda関数でPythonとSelenium使ってサーバレスでスクレイピングする

# はじめに
こんにちは。先日、とある企業のとあるリードテックの方とお話しする機会がありました。今までにない切り口で質問いただいたり、すごく勉強にも気づきにもなって楽しくて、あの話もしたかったなとか、今までにない感情がわきました 🙂

あぁいうのって、**話術**っていうんですかね :thinking: すごかったです 🙂

さて、今回は**Lambda**を使って**Selenium**によるスクレイピングを行っていこうと思います。
私は、**GoogleAppsScript**をよく使うので、簡単はものはそれでいいのですが、ちゃんとした**テスト**をするには、**Selenium**等使うべきだとは思います :pray:

**Heroku**に**Laravel**入れて**Selenium**使おうとかも思ったのですが、せっかくなので、今まで触ったことないものに挑戦しようと、今回の運びになりました。

**Lambda**も**Python**も使ったことないので、同じく初心者の方にやさしい記事になると思います。
参考になれば幸いです :b

元記事を表示

レプリケーションインスタンスをオートスケールさせる

## はじめに
AWS DMSの継続レプリケーションするタスクのインスタンスのスペックの調整をするのに、コンソール上でポチポチするのが面倒になったので、必要に応じてレプリケーションインスタンスを自動的にスケールして、より高い負荷 (スケールアップ) を処理し、負荷が低いときにコストを削減 (スケールダウン) する方法を模索しました。

##やりたいこと
対象のレプリケーションインスタンスのCPU使用率が閾値を超えた際は、スケールアップし、Eメール通知をもってトリガーを確認できるようにします。閾値を下回った際は、スケールダウンし、Eメール通知を行う。

## セットアップ
### **構成図**
![DMS AutoScaring.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192019/5cea3c9f-1d4d-0aea-3423-5fa02bda5c35.png)

### **必要リソース**
– インスタンスタイプの変更通知(SNS)
– Lambda関数を呼び出す通知(SNS)
– CPU

元記事を表示

Amazon Cognito の Lambda トリガーに、エイリアス付きで Lambda を設定してみる

# ■ はじめに

![963f9ca9395c096c234f891ad8877b28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/d838a89d-5dc1-d693-0517-add60ca2ce07.png)

Amazon Cognito の Lambda トリガーに、エイリアス付きで Lambda を設定してみたかったので、やってみました。

参考にさせて頂いた記事は、コチラ ♪♪♪

– [aws lambda \- Cant set AWS cognito triggers using CLI \- Stack Overflow](https://stackoverflow.com/questions/60351508/cant-set-aws-cognito-triggers-using-cli)
– [update\-user\-pool — AWS CLI 1\.19\.105 Command Reference](https://docs.aws.amazon.c

元記事を表示

TerraformでLambdaを作成したときにログがでない

TerraformでLambdaを作成したときにログがでない(ロググループがない)

TerraformでLambda作成するときに以下を参考にして権限をつけると大丈夫なようです。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/lambda-cloudwatch-log-streams-error/

今までTerraformでロググループを作っていましたが、権限つければいいじゃんということで備忘です。

CloudWatch にログを書き込む Lambda 関数に必要なアクセス許可を含む JSON ポリシーの例

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “logs:CreateLogGroup”,
“Resource”: “arn:aws:logs:region:accountId:*”

元記事を表示

AWSのサービスを活用して低コストでradikoをPodcast化するアプリケーションを作った話

# TL;DR

– AWSのサービスを活用してradikoをPodcast化するアプリケーションを作りました
– [l3msh0/radicaster](https://github.com/l3msh0/radicaster)
– 低コストで運用可能で、番組の連結などヘビーリスナーに嬉しい機能もあります
– 気に入ったらGitHubで star :star2: してね

# この記事のターゲット

ラジオが好きで、ある程度AWSの知識があるエンジニアの方

# 前置き

皆さん、ラジオ :radio: 聴いてますか?

私は10年ほど前にラジオに出会って以来、移動中や家事をしながら、時にはお風呂やお布団の中など、日常のあらゆるシーンでラジオが欠かせない存在になっています。

ラジオの聴取手段と言えばradikoですよね。かく言う私もradikoプレミアムの会員で、タイムフリーやエリアフリーなどの便利な機能のおかげでラジオをより楽しめています。

ただ、ヘビーに利用していくと痒いところも出てくるわけで…。再生開始から24時間以内・合計3時間の聴取時間の制限や、シークのしづらい

元記事を表示

LambdaでS3からHTMLファイルを取得して返す

色々と応用できそうなので残しておきます。

##環境

Python3.7
API Gateway プロキシ統合あり

##処理

“` Python3
import boto3
import os

# バケット名は環境変数から取得
BUCKET_NAME = os.environ[‘BUCKET_NAME’]
s3 = boto3.resource(‘s3’)
filepath = ‘/tmp/hogehoge.html’

def main(event, context):

bucket = s3.Bucket(BUCKET_NAME)
bucket.download_file(‘hogehoge.html’, filepath)

with open(filepath , encoding=’utf-8′) as f:
html = f.read()

return {
“statusCode”: 200,
“headers”: {“Content-Type”: “tex

元記事を表示

【LambdaでOpenCVを利用】AWSとOpenCVを利用してポケモン画像でアスキーアート風に変換するAPIを作った

こんにちは、[Yui](https://twitter.com/yui_active)です。

引き続き週イチ発信をしていきます。
今週はAWSとOpenCVを使って、画像処理を行ったのでそのことについて書きます。

以下の件です。