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

Lambda関連のことを調べてみた2020年05月23日
目次

AWS IoTボタンを押すと動物の鳴き声をgoogle homeで再生する2歳児向けおもちゃを作ってみた

AWS IoTボタンを押すと動物の鳴き声を再生する2歳児向けおもちゃを作ってみました。
きっかけは動物好きな子どもが親の真似をして 「おけーぐるぐる ぞうの声」 とgoogle homeに向かって何度もしゃべっても認識できない
→親に「おけーぐるぐる ぞうの声 っていって」と何度も言われるような状況がうまれ、しんどい。。。
そこでボタン押すだけなら操作なら2歳児でもできるでしょ!と思い作成しました。

構成

構成はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294965/6c115d8c-e0ae-593a-6814-f430f6223b56.png)
1.Amazon IoTボタンを押す
2.ラムダ関数が起動(ただGETメソッドを実行するだけ)
3.ローカルのサーバーが起動(ngrokを使うことでインターネット上に公開)
4.google homeがしゃべる!

作成手順

作成手順はこんな感じです。
1.LAN環境でgoogl

元記事を表示

CloudWatch Synthetics & Puppeteer ことはじめ

今さらながらCloudWatch SyntheticsでWebサイトの監視をしたのでまとめます。

# この記事の内容
* CloudWatch Syntheticsのために手動でS3バケットとIAM Roleを作る
* ローカル環境にPuppeteerをインストールしてNode.jsのコードを書く
* Googleのトップページに「猫 wikipedia」を入力して検索する
* トップにWikipediaの[記事](https://ja.wikipedia.org/wiki/%E3%83%8D%E3%82%B3)が出てこなかったら異常事態なのでスクショを撮ってCloudWatchでアラートを上げることにする
* このコードをCloudWatch Syntheticsに持って行ってCanaryを作成する

きちんとした環境構築などはしていません。非常に意識の低い内容となっています。。

# まず最初に:勝手にバケットやIAMを作ってほしくない
最初のセットアップで `s3://cw-syn-results-999999999999-ap-northeast-1` というS3バケ

元記事を表示

AWS SAM CLI で Lambda Layers が ビルドできるようになったよ

**Building Layers**
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-layers.html

“`shell-session
$ sam build layer-logical-id
“`

SMA CLI のバージョンが 0.50.0 以上である必要があります。

“`shell-session
$ sam –version
SAM CLI, version 0.50.0
“`

SAM CLI の基本的な使い方については、以前 Qiita にあげたのでこちらも参照いただければと思います。

**AWS SAM CLI 再入門 2019.12**
https://qiita.com/hayao_k/items/7827c3778a23c514e196

## 簡単な例
sam init で作成できる Python 3.8 の Hello World Example を例に考えます。

“`shell-session
$ sa

元記事を表示

Lambdaとは

#AWS Lambda とは
> AWS Lambda はサーバーをプロビジョニングしたり管理する必要なくコードを実行できるコンピューティングサービスです。

##関数の AWS Lambda 管理
> AWS Lambda API またはコンソールを使用して Lambda 関数の設定を行います。「基本的な関数設定」には、Lambda コンソールで関数を作成するときに指定する説明、ロール、およびランタイムが含まれています。関数の作成後にその他の設定を行ったり、API を使用してハンドラー名、メモリ割り当て、セキュリティグループなどの内容を作成時に設定したりすることができます。

> 関数コードの外でシークレットを保持するには、関数の設定にシークレットを保存し、初期化時に実行環境から読み取ることができます。環境変数は、保管時に必ず暗号化されます。また、クライアント側でも暗号化できます。外部リソースの接続文字列、パスワード、エンドポイントを削除することにより、環境変数を使用して、関数コードを移植可能にすることができます。

> バージョンとエイリアスは、関数のデプロイおよび呼び出しを管理す

元記事を表示

HTTP APIでLambda関数にPOSTしたbodyの値が ‘[object Object]’ になる時の解決法

AWS Lambdaの関数にHTTP APIで値をPOSTする際につまづいたのでメモ。

# 環境
– macOS
– AWS Cloud9
– Node.js 12

# 問題

Node.jsのfetch()メソッドで、自作したLambda関数にPOSTで値を送信しました。
Lambdaの呼び出しはAPI GatewayのHTTP APIを用いています。

## Lambda関数のコード

デバックするために、Lambda関数では一旦eventを返すようにしています。
console.logで出力してCloudWacth Logsで確認しても良いと思います。

“`Javascript
exports.handler = async(event, context) => {
console.log(event)

return event
};
“`

## 実行コード

“`Javascript
require(‘dotenv’).config()
const env = process.env

var fetch = require(“

元記事を表示

初めてのAWS Lambda〜Hello World

## AWS Lambdaとは
サーバレスでコードを実行でき、Java、Go、PowerShell、Node.js、C#、Python、Rubyをサポートしている
https://aws.amazon.com/jp/lambda/faqs/

## 実際に使ってみる
AWSのチュートリアルを参考に。
https://aws.amazon.com/jp/getting-started/hands-on/run-serverless-code/

– コンソールを起動
「コンピューティング」→「Lambda」
スクリーンショット 2020-05-18 19.08.51.png

– 設計図を選択
設計図=テンプレートのようなものかな?
「Hello」で検索すると、node.jsとpythonの「Hello Wo

元記事を表示

AWS Kendra使ってドキュメント検索(API Gateway+Lambda)

# Kendra
##AWS Kendraとは
https://aws.amazon.com/jp/kendra/

>Amazon Kendra は、機械学習を原動力とする高精度で使いやすいエンタープライズ検索サービスです。Kendra は、ウェブサイトおよびアプリケーションに強力な自然言語検索機能を提供するため、エンドユーザーは企業全体に散在する膨大な量のコンテンツ内で必要な情報をより簡単に見つけることができます。

https://dev.classmethod.jp/articles/kendra-reinvent2019/

re:Invent 2019で発表された。
エンタープライズ検索って言って社内ドキュメントの中から、欲しい情報を簡単に探せるよっていうサービスっぽい。日本語はまだ未対応。

簡単にデータソースの設定ができて、深層学習モデルをアクティブに再訓練して、検索の正確性がどんどん上がっていく、と。

## S3にファイルアップロード
今回はデータソースはS3を使うので、適当にネットから拾ってきたデジカメの取扱説明書を置いておく。英語しか対応していないので英語版。

元記事を表示

お気に入りpythonモジュール達やバイナリを1つのLambda Layerにまとめるスクリプト

LambdaとLayersは便利ですが、1つの関数につき上限は5つまでと制限があります。
Layersは=1モジュールとして運用しているケースが多いかと思いますが、意外と足りなくなったり1つずつ追加するのは手間です。
お気に入りのモジュールたちはお馴染みの`requirement.txt`で管理し、1つのレイヤーにまとめてしまいましょう。

テストで6つのモジュールをインポートする[requirement.txt](https://github.com/umihico/fav-py-modules/blob/master/requirements.txt)を作成します。

“`bash:requirement.txt
selenium
requests
Pillow
lxml
numpy
Flask
“`

そして同階層にて以下の[スクリプト](https://github.com/umihico/fav-py-modules/blob/master/publish_layer.sh)を実行します。dockerの
pythonのバージョンや、awsコマンドの引数は必要に応じて編集し

元記事を表示

aws-serverless-expressのサンプル動かないんだけど

# 動かないやつ
https://github.com/awslabs/aws-serverless-express/tree/master/examples/basic-starter
`npm run setup`

# 出てたエラー
“`
An error occurred (ValidationError) when calling the CreateChangeSet operation: Stack:arn:aws:cloudformation:ap-northeast-1:363880502757:stack/AwsServerlessExpressStack/aaaaaaaaaaaaaaaaaaa is in ROLLBACK_COMPLETE state and can not be updated.
npm ERR! code ELIFECYCLE
npm ERR! errno 255
npm ERR! aws-serverless-express-example@2.1.1 deploy: `aws cloudformation deploy –templa

元記事を表示

遠隔押印マシーン『InCaaaan(インカーン)簡易版』の作り方

新型コロナ禍でテレワークが急速に普及しています。
しかしながら、押印が必要なため、テレワークができず、出社を余儀なくされてる人がたくさんいます。

そんな方々のために、出社しなくても押印ができるマシーン「InCaaaan(インカーン)」の作り方をご紹介します。
(本当は自分用の備忘録ですが)