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

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

【無料で】クラロワAPIをlambdaから叩いてLINEに送る

以前、[クラロワAPIをlambdaから叩いてLINEに送る](https://qiita.com/meihei/items/98a21ac0b41fe7193e40) という記事を書きました

システム自体はこちらで完成なのですが、結構お金がかかるという問題がありました

この問題の原因はクラロワAPI([Clash Royale API](https://developer.clashroyale.com/#))がアクセス可能なIPを制限しているため生じていました
今回、RoyaleAPIが提供している公開Proxyを使うことで、**無料でクラロワAPIをlambdaから叩いてLINEに送る**ことが出来たので記事にしていきます

## 概要
### 完成したもの

以前の記事と全く同じで、`プレイヤー名`と`放置している期間`がLINEに届きます

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280373/4b15322a-6fb8-75ae-bced-bf6e5a91c59c.png)

###

元記事を表示

Lambda de Selenium

# はじめに

Python を用いてスクレイピングをするにあたり、認証周りで躓き手っ取り早く解決するために Selenium を用いて実装したものの、Lambda で実行しようとしたときに躓いたので、メモとして残します(書きっぷりが雑になっているかもしれません…)
※ この記事は SAM を使わずに実装してます:bow:

# 作業環境

* Windows 10
* python 3.7 が望ましいけど、3.8 でも大抵はどうにでもなった
* (使い方にもよるので、バージョン管理で切り替えられるようになっているとよい)

# ハマりポイントその1

Q. Selenium を使うにあたって、headless-chromium と chromedriver を使えばいいの?
A. この2つを圧縮して、レイヤーに登録する

## 詳細

AWS Lambda で使用できるヘッドレスブラウザとして以下が提供されています
この、chrome と chromedriver のバージョンを合わせて1つのファイルとして圧縮します
https://github.com/adieuadie

元記事を表示

API GatewayとLambda(Python)でLINE BOT(Messaging API)開発 [後編]

# API GatewayとLambda(Python)でLINE BOT(Messaging API)開発 [後編]

## はじめに
[前編](https://qiita.com/w2or3w/items/1b80bfbae59fe19e2015)では主に環境構築と、「こんにちは!」と返すだけの簡単なサンプルを載せました。
後編となる本記事では、line-bot-sdkを利用して以下のことを実装してみたいと思います。
・文字列の応答
・ユーザー情報の取得
・選択肢の提示、選ばれたものの取得
・位置情報の受信、位置情報の送信

## line-bot-sdkのインストール
Lambdaでデプロイする前提ですので、lambda_function.pyと同じ場所にインストールする必要があります。
インストールしたライブラリ類をまとめてzip圧縮できるよう、適当なフォルダ(ここではsource)の中で行いましょう。

“`
|- source
|- lambda_function.py
“`

ライブラリはpipでインストールします。

“`bash
$ cd source
$

元記事を表示

API GatewayとLambda(Python)でLINE BOT(Messaging API)開発 [前編]

# API GatewayとLambda(Python)でLINE BOT(Messaging API)開発 [前編]

## はじめに
先日、以前より興味のあったLINE BOT(Messaging API)を初めて作ってみました。
思っていたより簡単だったので、今後も気軽に作ってけたらなと思ってます。
せっかく作れるようになったので、このフレッシュな気持ちがなくなる前に記事を書いておきます。

前編と後編と、2つに分けて書こうと思います。
前編では主に環境構築。何か話しかけると「こんにちは!」とだけ返すBOTを作成します。
後編ではline-bot-sdkというライブラリを利用して、メッセージ以外のやり取りをする実装についても書こうと思ってます。

## LINE Developpersでプロバイダーとチャンネルの作成
まずはLINE Developpersで作業します。
[LINE Developpers](https://developers.line.biz/ja/)にアカウントが必要ですが、登録手順については割愛。
[LINE Developpers の コンソール](ht

元記事を表示

AWS AmplifyでLambdaを使うwith Go

Amplifyはちょくちょく使う機会があるのですが、Amplifyを介したLambdaってほぼ使った事ないぞ、と思ったので使ってみようと思い立ちました。
そしてLambdaでGoが使えるけど、ちゃんと使った事なかった気がするので使ってみたいなとついでに。

# Functionが使えるらしい
FUNCTIONS – Overview
https://docs.amplify.aws/cli/function

## 環境

– win10 Home(surface go) + WSL2 + ubuntu18.04
– node v14.1.0
– npm 6.14.5
– go version go1.10.4 linux/amd64

# 使ってみる

## 前置き

vueを使う設定にてamplifyをsetupしておきます。
詳しくはこのあたりから。
https://docs.amplify.aws/start/getting-started/installation/q/integration/vue

“` bash
$ vue create myamplifyprojec

元記事を表示

Serverless FrameworkとAWS Lambda with Rubyの環境にgemインストール

gemインストールが必要なAWS LambdaのRubyスクリプトをServerless Frameworkでデプロイする方法です。

# 手順概要

プラグインを入れれば簡単にできます。

1. `serverless plugin install -n serverless-ruby-layer`
2. `Gemfile` 作成
3. あとは普通にデプロイすると勝手にいろいろやってくれる

# 手順詳細

## Serverless Frameworkのサービス作成

“`console
$ serverless create –template aws-ruby
Serverless: Generating boilerplate…
_______ __
| _ .—–.—-.–.–.—–.—-| .—–.—–.—–.
| |___| -__| _| | | -__| _| | -__|__ –|__ –|
|____ |___

元記事を表示

AWS LambdaがコンテナイメージをサポートしたのでPuppeteerしてみた

あけましておめでとうございます。

AWS Lambdaがコンテナイメージをサポートしたので、Puppeteerでキャプチャを取るLambdaをつくてみました。

クラスメソッドさんの以下の記事の通りで、ローカルでの実行はうまくいきましたが、Lambdaへのデプロイするとうまく動作しませんでした。(Chromeの起動タイミングでエラー?)

Lambda コンテナイメージで Puppeteer を使ってみた | Developers.IO
https://dev.classmethod.jp/articles/try-using-puppeteer-with-a-lambda-container-image/

試行錯誤の結果が、こちらとなります。

# ソース

全体はこちらにアップロード済みです。
https://github.com/moritalous/m5core2-yweather/tree/master/lambda

## Dockerfile

クラスメソッドさんはGoogle Chromeとpuppeteer-coreの組み合わせでしたが、puppeteer単体で

元記事を表示

個人的に気になる最近のサーバーレス事情(2021/01)

# 思い
EC2の管理~~なんて~~したくない。
個人開発の金銭的ハードルが高い。
バーストアクセスでダウン…?まじかよ。。。

**サーバーレス** って素敵なワード… :star2:

# 気になったお話
それぞれわかりやすそうな記事を貼り付けていますが公式のものは各記事からリンクで飛んでください :pray:
– [Lambdaの実行時間の課金単位が1ミリ秒に短縮されました](https://dev.classmethod.jp/articles/lambda-billed-duration-1ms/)
– [RDS ProxyがGAされました!!](https://dev.classmethod.jp/articles/rds-proxy-ga/)
– [Lambda 関数が VPC 環境で改善されます](https://aws.amazon.com/jp/blogs/news/announcing-improved-vpc-networking-for-aws-lambda-functions/)
– [Lambdaのメモリ割り当てを自動で最適化!!AWS Lam

元記事を表示

Jets触ってみた(ruby serverless)

# Jetsとは?
rubyをサーバーレスで動かせ、なおかつRailsライクにコードがかけるフレームワークです。
DBとしてRDBとDynamoDBの両方に対応されている。(今回はRDSと組み合わせました)
=> RDBはORマッパーとしてActiveRecordが採用されているので本当にRailsのようにかけました
https://rubyonjets.com/

# 背景
Railsは使い慣れているけどEC2なりFargateなどの料金を地味に取られ続ける。。
=> 個人開発ではなるべく金額下げたいなぁというお気持ち

Serverless Frameworkを利用してlambda x rubyを試してみる
=> lambdaとRDSの相性が悪いがDynamoよくわからん…(個人開発としてはこれも頑張って勉強したい :muscle: )

ちょっとした個人開発用にRailsをサーバーレスで動かせないかなぁ。。。。
そんな時に二つの記事に初めまして
[「Lambda-RDS」パターンももう怖くない!?フェイルオーバーももっと早くなるよ! RDS Proxyがプレビュー公開されまし

元記事を表示

`chromedriver’ executable may have wrong permissions. を解決する

先日seleniumをlambdaで運用しよとしたときに遭遇しました。

permissionなんて設定したっけな?と思いましたどうやらosに対応していないバージョンを使用するとこのエラーが出てきてしまうようです。

### 解決法

lambdaのOSはLinuxなのでLinuxに対応したバージョンをインストールしてからレイヤーにアップロードする。

こちらに関してはLinux環境を用意する必要があるのでaws cloud9を使用すると簡単です。

[>>Lambdaでseleniumを使ってスクレイピング](https://qiita.com/ichihara-development/items/5e61c3424b3176bc6096)

元記事を表示

‘lambda_function’: No module named ‘selenium’ が出るとき

## seleniumのPATHが間違っている
pythonの場合lambdaレイヤーは
・python
・python/lib/python3.x/site-packages

配下を自動で読み込むため、アップロードしたseleniumzipファイルが上記のディレクトリ構造になっているかをもう一度確認してみてください。

## zipファイルを解凍していない

外部からダウンロードしてきたseleiumをzipのままで保存し、親ディレクトリごと圧縮してしまうとlambdaでseleniumを使用することができません。

![スクリーンショット (146).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/46f56de0-83cc-22f3-7ebf-ac8c815b696e.png)

一度解凍してから再びフォルダを圧縮しアップロードしなおすと上手くいきます。

元記事を表示

AmplifyをLambdaを使って動的に動かす

# Amplifyが動的に動かせると思っていた

Amplifyでは以下のようにpythonファイルを指定しても呼べなかった。

– 修正前

“`html