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

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

社内向けチャットボット作成

#目次
[1.はじめに](#1はじめに)
[2.全体スケジュール](#2全体スケジュール)
[3.全体学習](#3全体学習)
[4.Lexチーム作業内容](#4lexチーム作業内容)
[5.Lambdaチーム作業内容](#5lambdaチーム作業内容)
[6.完成したチャットボット](#6完成したチャットボット)
[7.まとめ](#7まとめ)

#1.はじめに
株式会社エニプラでは、社内のチームごとにテーマを決め、
毎月行われるチーム会でテーマに沿った活動を行っています。
チーム会で行った内容は、
年末に「エニプラアワード」という場で全社員や来期の新卒に向けて発表を行っています。
今年度私たちのチームでは
「Amazon lexとSlackを使った社内向けチャットボットの作成」をテーマに活動してきました。
テーマを検討、決定した背景として、4つの点があります。
1.近年、チャット式の質疑応答システムがWebサイトで使われている
2.社内向けの問い合わせ対応にチャットボットが使えそうである
3. Slackにあれば社内規則・ルール確認時に活用でき

元記事を表示

AWSで〇〇やってみた!に踏み出せないあなたへ

#はじめに

本記事は、NTTドコモ R&D Advent Calendar 2021の11日目の投稿です。

こんにちは。この記事は、

* AWSを実際に触ってみたいけど、どうすればいいか分からない人
* 参考書を読んだりはしているけど、手を動かしてみたい人
* 開発チームときちんと議論したいと思っているプロダクトオーナーの人

など、主にAWS初心者の方に向けて、お送りします。
持って帰れるものは、以下を想定しています。

* AWSを触る最初の一歩の始め方
* 何を作るかと、構成に落とし込む考え方
* 手を動かしてみた結果、見え方がどう変わったか

***

まず、私の所属する、サービスデザイン部第三クラウド推進を簡単に紹介いたします。
第三クラウド推進では、主にドコモ商用サービスのサーバ構築/アプリ開発・運用を担当しています。
私はアジャイル開発のプロダクトオーナーとして働いており、ここでは1年目2年目から若手の社員も多く活躍中です。

また、サービスデザイン部では、オンプレミスからAWSへの移行を進めており、
現在、第三クラウド推進が担当する準内製サービス45件の内、42

元記事を表示

アレクサ、助けて

この記事は[Hamee Advent Calendar 2021](https://qiita.com/advent-calendar/2021/hamee)の11日目の記事です。

# はじめに

この記事は「開発してみた」系の記事です。
あまり技術や思想的に「おおお!!!!」となる記事ではありません。
Goでアレクサスキルを作ってみたい。lambdaからDynamoDBに触りたいという人には向いているかもしれません。

# 課題

> 私「(この設計どうしようかな)」
私「アレクサーこの設計どうすればいい?」
アレクサ「わかりません」

そう。アレクサは助けてくれない。
在宅が続き、アレクサと二人っきりの時間が増えようともアレクサは仕事を手伝ってはくれない。外出も減った今とでは天気を聞くこともなく、音楽を流すことしかしない。

せめて相槌でもして欲しい。

そう何か、いい感じに、返事をして欲しい。
# 仕組み

AlexaからLambdaを叩き、DynamoDBから**それっぽい文章**を取ってきてもらう。
Lambdaは最近社内で勉強会があったのでGoを使ってみます。
![スクリ

元記事を表示

AWSのKDA・EMR(Spark Streaming)・Lambdaによるストリーム処理の特徴

著者: 伊藤 雅博, 株式会社日立製作所

# はじめに
AWSでストリーム処理を実現するサービスには複数の選択肢があります。本投稿では、AWSが提供する主要なストリーム処理サービスの特徴を紹介します。

なお、本投稿の内容は2020年中頃の調査結果をベースに、いくつか更新を加えたものです。AWSのサービス仕様は随時更新されるため、最新の仕様とは異なる場合があります。最新の情報はAWSの公式ドキュメントをご参照ください。

投稿一覧:
1. [AWSでストリームデータを扱うためのメッセージングサービス](https://qiita.com/sigmalist/items/73d3feeb6e0f5905ed64)
2. [AWSのストリーム処理向けメッセージングサービスKDS・MSK・SQSの特徴](https://qiita.com/sigmalist/items/1a65b0b0456516e2056b)
3. AWSのKDA・EMR(Spark Streaming)・Lambdaによるストリーム処理の特徴 (本投稿)

# AWSにおけるストリーム処理の基本構成

AWSでスト

元記事を表示

AWS SAMのCORSを設定する(REST APIバージョン)

## 困っていたこと
ローカル開発環境で、ブラウザでReactからAWS SAMのAPI Gatewayを叩きたかったのですが、CORSに行く手を阻まれておりました。

下記は、CORS未設定の状態でAPIを叩いたときにブラウザのコンソールに出るエラーメッセージです。
>Access to fetch at ‘http://127.0.0.1:3001/hello_world’ from origin ‘http://127.0.0.1:3000’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resourc

元記事を表示

AWS初心者がNodejsで作ったLineBotのインフラを構築してみた

# AWS初心者がNodejsで作ったLineBotのインフラを構築してみた

## 概要
専門学生1年生なので大目にみてください…。
今回は、ApiGatewayをトリガーにLambdaを動かしてその結果をApiGatewayに返してくれるという単純なものです。

## インフラ構築
### Lambda作成
linebotという名前で関数を作ります。
![eb4f8059-38e4-467e-98a3-b3f28c195817.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2286850/d58e184f-3845-ad54-e768-0d1a45c260d4.jpeg)

作成できたら、LineBotのプログラムをzipファイルにして上げます。
ちなみに作成した初期の呼び出す関数は、indexのhandlerになっているので適切に設定する必要があります。

### ApiGateway作成
ApiGatewayのHTTP APIを作成します。
名前はLineBotApiにしました。
![e0

元記事を表示

httpでpostしたデータをmqttでpublishする(aws編その1)

# はじめに

[以前](https://qiita.com/pyjackal/items/6ffa1a094d6e29f933e6)、httpでpostされたデータをmqttでばらまく簡単なプログラムを書きました。この時はmosquitto(コンテナ) + python(flask + paho-mqtt)という構成で試しましたが、AWS IoT + labmda + api gatewayで書き直してみます。
AWS IoTはhttpプロトコルでメッセージをpublishできるのですが、今回の要件ではIP制限とbasic認証で接続を制限したかったので、labmda + api gatewayという構成にしてみました。

# 作業環境の前提条件

– aws cliがインストールされていること
– sam cliがインストールされていること

# 作成手順

## 1. samテンプレートのダウンロード

sam cliでテンプレートをダウンロードします

“`bash
$ sam init
Which template source would you like to use?

元記事を表示

【 まとめ 】AWS – サーバーレスについて、知見を深める(随時更新)

## 自己紹介

主にFlutter, Golang使ってるエンジニアのpommです。 FlutterやGolangについて、業務や趣味の中で気づいたTipsなどをまとめます。

## サーバーレスとは

> 必要なとき (モバイルユーザーがメッセージを送信する、画像がクラウドにアップロードされる、レコードがストリームに到達するなど) にのみビジネスロジックがトリガーされる、クリーンなファンクショナルアプローチです

サーバーの管理(構築・保守)をすることなく、プログラムを必要な時にのみサーバー上で実行できる仕組み。

ちょっとしたことでもサーバーを構築しなくて済む。

## ユースケース・特徴

使用度に応じて自動的にスケーリングすること。請求は従量課金。実行にかかった時間で請求される。

今後のPV数が予測できないとき。PVが少なくても想定以上に多くなっても、スケーリングできる。アプリやサイトにも。

> Cron ジョブやその他の IT インフラストラクチャの要件は、特にジョブや要件に低頻度な性質や変化しやすい性質がある場合、その使用のためにサーバーを所有および維持する要件がなく

元記事を表示

lambdaでS3からファイルを取得しようとしたときのメモ

S3からイベント駆動でlambdaを立ち上げてそこからS3にアップロードされたファイルを取得しようとしたら色々ハマったのでメモります。

## ハマったエラー
“`
ClientError: An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
Traceback (most recent call last):
(中略)
File “/opt/python/boto3/resources/factory.py”, line 520, in do_action
response = action(self, *args, **kwargs)
File “/opt/python/boto3/resources/action.py”, line 83, in __call__
response = getattr(parent.meta.client, operation_name)(**params)
File “/opt/python/bot

元記事を表示

JavaScript ⇄ AWS (API Gateway & Lambda) でデータやりとり

# はじめに
下の記事で、JavaScriptを使ってフォトシャワー表示をするフロントエンドを記述していました。
[フォルダ内の写真をフォトシャワーで表示してみる
](https://qiita.com/tomtom_pudding/items/be8b26dff40ece88d0b9)

今回は、AWS S3に保存されている写真を取得して表示をしてみたいと思います。つまりこんなイメージです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1989761/1d54ad9b-4f07-dc6d-1aa1-4a0e1cb7ad17.png)
JavaScriptの正式なロゴってこれであっているのだろうか…

# JavaScriptとAWS API Gatewayをつないで情報をLambdaへ送信
API Keyを用いたアクセスキー認証で行います。
LambdaとGatewayの連携、API Keyの取得方法に関しては以下の記事がとてもわかりやすいです。さすがはクラスメソッド様。。。
[

元記事を表示

AWS SAMを触ってみた

こんにちは、HCB Advent Calendar 2021の8日目を担当する、take-2405です。
研究の都合上あまり時間を確保できず、とても雑な記事になってしまっています。

ごめんなさい!!

[HCB Advent Calendar 2021](https://qiita.com/advent-calendar/2021/hcb-2021)

今回は、AWS Lambdaのローカルでのテストを目的とし、AWS SAMのインストールとテンプレート作成までについてをメインに書いています。

注意:基本的なLambdaの作成方法などは省いています。

# はじめに
みなさんは普段AWS Lambdaを利用するでしょうか?
私は、割と頻繁に利用します。(体感週に2つはLambdaを作成している)

普段goでLambdaを作成するのですが、goでLambdaを作成する場合以下の手順を踏む必要があります。

“`
1. プログラムをコンパイルする(バイナリファイル化)
GOOS=linux go build -o バイナリファイル名 goファイル名

2. デプロイするためにバ

元記事を表示

2021年に超絶進化を遂げた AWS Step Functionsを触ってみました

本記事は[AWS LambdaとServerless Advent Calendar 2021](https://qiita.com/advent-calendar/2021/lambda)、9日目の記事です。

# 感想
– かつてLambdaに初めて触れたときの感動を、ワークフローでも感じた
– Step Functionsはいいぞ

# 背景~今年あった大きな進化
・[ワークフロースタジオ爆誕](https://aws.amazon.com/jp/blogs/news/new-aws-step-functions-workflow-studio-a-low-code-visual-tool-for-building-state-machines/)
・[AWS SDK統合で200を超えるサービスサポート](https://aws.amazon.com/jp/about-aws/whats-new/2021/09/aws-step-functions-200-aws-sdk-integration/)

ワークフロースタジオによって、ベースのJSONがGUIベースで生み出される

元記事を表示

【AWS】LambdaからDynamoDBを呼ぶときは、タイムアウト時間を設定変更しようの巻

# 起きたトラブル

`APIGW <-> Lambda <-> DynamoDB`のようなシンプルな構成で、DBの中身をサーバレス配信するようなAPIを作ったとき、ごくまれにLambdaがタイムアウトを起こした。Lambdaのランタイムはnodejs。

↓ランダムに大量リクエストを飛ばしてみると、全体の0.1%未満ながら、間違いなく5秒タイムアウトしている?
![IMG_0106 3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050582/ab04e172-0f16-8534-f02c-1cfbb4a0ab73.jpeg)

Lambdaのタイムアウト時間は自由に設定変更できるが、30秒タイムアウトに設定しても改善しない。
(そもそも30秒もかかっていたら使い物にならないけど。)

# なにがまずいのか

aws-sdkの仕様書より抜粋↓

> timeout [Integer] — Sets the socket to timeout after timeout milliseconds

元記事を表示

たった1人でEC2&RDSのバックエンドをLambda&DynamoDBに移行した話

先日お仕事でスマホアプリのバックエンドを移行する機会をいただきました。
システムのフルリニューアルは初めての経験だったので色々と学びが多くありました。
せっかくなので知識を共有したいと思います。

# サマリー
## 概要
こんな感じのプロジェクトでした。

– 開発期間 9ヶ月
– 体制 1人開発
– API数 約100
– バッチ数 約10
– その他の移行対象(DBデータ,管理コンソールetc)

## 移行の目的
バックエンドの移行の主な目的は以下でした。

– 内製化によって開発速度を上げる
– 内製化するために社内のスキルセットに合う言語・アーキテクチャにする
– AWSコストの削減

## 移行前後の違い
|| 移行前 | 移行後 |
|—|—|—|
|実行環境|EC2|Lambda & Api Gateway|
|フレームワーク|Rails|なし|
|メインDB|RDS(PostgreSQL)|DynamoDB|
|バッチの仕組み|Rails(SideKiq)|AWS Batch/Lambda|

# 実作業前の準備
## 現状把握
私は移行対象の元のシス

元記事を表示

Lambda から SORACOM 経由で Raspberry Pi の LED を操作する 3 つのパターン

これは、[SORACOM Advent Calendar 2021](https://qiita.com/advent-calendar/2021/soracom) の 8 日目の記事です。

## 作った物

こんなものを、3 つのパターンで作ってみた記事です。

本当は LINE の連携部分から解説したかったのですが、かなり分量が多くなってしまって、AWS Lambda (以後、Lambda) から Raspberry Pi を操作するところに限定した記事にしてみました。LINE 部分はまた追ってブログにしたいと思います。

## 構成

以下のような 3 つの構成で、どのように Lambda から Raspberry Pi を操作するか紹介しようと思います。

![summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125247/9ff11204-16ee-61e

元記事を表示

TerraformでやってきたLambdaデプロイの試行錯誤の歴史と行き着いた雑な運用

この記事は[Wanoグループ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/wano-group) / 7日目の記事になります。。

terraformユーザーの皆様は Lambda や StepFunctions などのデプロイどうしてますか?
プロジェクト構成によっていろんなパターンがあるかと思いますが、少し前までは結構悩んでるユーザーが多かったように記憶しています。
**特に弊社ではデプロイ間の依存や順番、リポジトリ構成の都合で大いに悩みました。**
弊社でいままで使用/検討したものを振り返りつつ、プロジェクトで固まってきた運用を紹介します。

# いままでにやってきた/検討したデプロイ

現行関わっているプロジェクトの特徴として、**アプリ/ビジネスロジック系リポジトリとIaC専用リポジトリが別である** ということがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85375/88e0

元記事を表示

xxxというエラーはxxxすると直ります←大好き

# はじめに
皆様。エラーメッセージでググるのは好きでしょうか?私は大好きです:innocent:
見覚えのないエラーに直面したら毎回コピペでぐぐっています。そして割とよく解決してもらっています。
あまつさえ、自分の境遇そのものの記事を見つけた時は感動のあまり目頭が熱くなり、性善説を唱えたくなります。

少しでも恩返しをしたいので、僭越ながら私もエラーメッセージ軸の記事を書かせていただきます:bow_tone1:

もし共感した方や、この記事が役立った方がいたら:heart_eyes:LGTM:heart_eyes:をいただけたら嬉しいです。
~~会社のアドベントカレンダーなので褒めてもらえます~~

## ターゲット(エラーメッセージとググりがち文言)
*Nuxt.js Audio 読み込めない*
*”Module parse failed: Unexpected character”*
*[object%20Module]*
 └ **[:point_right: Nuxt.jsでAudio読み込みに失敗](#nuxtjsでaudio読み込みに失敗)**

*Amazon Tran

元記事を表示

SAM Accelerateだと!?SAM AccelerateをCloud9を一から構築して試す

#はじめに
皆さん、こちらの記事はご覧になりましたか?私も記事が出た当日に見てはいたのですが、同僚にも「めっちゃ速いよ!」と言われたのですが、スルーしてました。 

https://aws.amazon.com/jp/about-aws/whats-new/2021/10/aws-sam-accelerate-test-code-changes-cloud/

でも、百聞は一見に如かずなんですよね。

[re:Invent 2021](https://virtual.reinvent.awsevents.com/)のLeadership SessionであるAccelerating your serverless journey with AWS LambdaでSAM AccelerateとStep Functionsのデモが披露されていたのですが、それを見て、

「あ、すぐ使いたい」と思って、使ってみたのです。

ということで、今日は、[こちらのブログ](https://aws.amazon.com/jp/blogs/compute/accelerating-serverless-d

元記事を表示

Lambda + Go + terraformでAWSの料金をSlack通知してみた

## はじめに

この記事は[mixiアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/mixi) 6日目の記事です。
みなさまはAWSで運用しているサービスに毎月どれくらいのコストがかかっているか、サービスのリソースごとにどれくらいの料金がかかっているかを確認していますでしょうか。
今回は、AWSの料金を毎日Slackに通知するシステムをLambda + Go + terraformで構築したのでそちらをご紹介させていただきます。

## おすすめな人

– AWSにかかる料金を定期的に通知したい
– GoでLambdaをどう開発するか知りたい
– terraformでLambdaを管理する方法を知りたい

## アーキテクチャー
![aws_billing_notification.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2334784/760f4f85-cfdb-8b57-bad4-8c4b0e4df04d.png)

– Even

元記事を表示

【Python】API Gateway + lambda にファイルを post、s3 に保存

「Applibot Advent Calendar 2021」 6日目の記事になります!!どうぞよろしくお願いいたします。

# 1. 概要
ローカルにある csv を lambda に post して、s3にアップロードするまでのメモ。Content-Type の設定をAPI Gateway で行うことを知らず、若干詰まったので記事にしました。

# 2. 目次
– [1. 概要](#1-概要)
– [2. 目次](#2-目次)
– [3. aws リソースの用意](#3-aws-リソースの用意)
– [3.1. ロールの用意](#31-ロールの用意)
– [3.2. s3の作成](#32-s3の作成)
– [3.3. lambda関数の作成](#33-lambda関数の作成)
– [3.4. api gateway の作成](#34-api-gateway-の作成)
– [3.5. 疎通の確認](#35-疎通の確認)
– [4. 参考](#4-参考)

# 3. aws リソースの用意
## 3.1. ロールの用意
– 次のポリシーを持ったロールを作成する

元記事を表示

OTHERカテゴリの最新記事