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

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

AWS Lambda+SNSでSMSを送付してみた! ~社内で大不評の【誰得?】シリーズ~

[パーソンリンク アドベントカレンダー](https://qiita.com/advent-calendar/2021/personlink)13日目です!?

# 内容
SMSを送付する際にめんどくさいなーと思ったので備忘録がてら書いてみました。
AWS Lambda と SNSでSMSを送付するサンプルコードです。

利用言語やバージョンライブラリはこんな感じ。
Python 3.8
boto3

権限は適宜作ってくださいなー

コードはこちら

“`python:lambda_function.py
import boto3

def lambda_handler(event, context):
client = boto3.client(‘sns’)
response = client.publish(
PhoneNumber=’+8190XXXXXXXX’, #E.164形式電話番号 +81(日本国コード)から始めて、日本国内の電話番号の頭の0を取った内容
Message=’Sample Message’, #送付メッセージ

元記事を表示

Amazon ECR のイメージスキャン結果を Slack 通知 (拡張スキャン対応版)

この記事は [**AWS Advent Calendar 2021**](https://qiita.com/advent-calendar/2021/aws) 13日目の記事です。

## はじめに
AWS re:Invent 2021 で 脆弱性管理サービス Amazon Inspector のリニューアルが発表され、新たに Amazon ECR に格納されたコンテナイメージに対するスキャンをサポートしました。Inspector によるイメージスキャン機能の提供により、 ECR のスキャン機能は基本スキャン (Basic scanning)、Inspector によるスキャン機能は拡張スキャン (Enhanced scanning) という名称になりました。

2019年に AWS Lambda を使用して 基本スキャンの結果を Slack に通知する方法について投稿したのですが、拡張スキャンの通知には対応していません。

https://qiita.com/hayao_k/items/116e5540b2bf0c2a2c9d

本記事では 2021年12月時点で各スキャン結果を

元記事を表示

AWS Lambda(Python)のバリデーションロジックについて

## はじめに

皆さんは、AWS Lambdaの開発言語は何を使っていますか?
選択肢はいろいろあるかと思いますが、私はPythonで開発しています。
Lambdaの中で送られてきた値のチェック(バリデーション)をすることも多いかと思いますが、そのロジック自前で実装していませんか?
ライブラリを使うと自前で実装せずに実装できるので紹介します。

## 実装例

### ソースコード

とにもかくにも、コードを見てもらったほうが早いと思います。

“`py
from aws_lambda_powertools.utilities.validation import validate
from aws_lambda_powertools.utilities.validation.exceptions import SchemaValidationError

BODY_SCHEMA = {
“$schema”: “http://json-schema.org/draft-07/schema”,
“type”: “object”,
“examples”: [

元記事を表示

AWS LambdaでEC2インスタンスを起動してコマンドを実行する。waiter_until_running()じゃなくて、waiterコマンド!

AWS Lambdaで、停止しているEC2インスタンスを起動させて、
立ち上がるのを待ってからコマンドを実行する、とした時に
詰まった点があったので備忘録として。

## 結論から
“`python:function_lambda.py
import boto3

def lambda_handler(event, context):
instance_id = ‘起動したいEC2インスタンスID’
ec2 = boto3.client(‘ec2’)
ec2r = boto3.resource(‘ec2’)
instance = ec2r.Instance(instance_id)
status_instance = ec2.describe_instances(InstanceIds=[instance_id])

if status_instance[‘Reservations’][0][‘Instances’][0][‘State’][‘Name’] == “running”:
print(‘インスタンス起動済

元記事を表示

Làm Bằng Cấp

Làm bằng cấp uy tín nhất

https://www.lambanggia2013.com/

元記事を表示

「今年の漢字」ならぬ「今年のSlackスタンプ」をLambdaとAPI Gatewayで作ってみた

[POLプロダクト Advent Calendar 2021](https://qiita.com/advent-calendar/2021/pol) の12日目担当、プロダクト部でエンジニア/エンジニア広報をしている @sho-kanamaru です!Twitterアカウントは[こちら](https://twitter.com/show_kanamaru)でございます。

11日目担当のリコピンさん(@ryu19-1)からバトンを受けました。AppSync最強!!!

さてさて、本日12月12日は漢字の日らしいです!
毎年「今年の漢字」が発表されていますが、今年は13日午後2時に発表みたいですね!(この記事書くから今日発表してほしかった。。)

せっかく漢字の日だし、今年の漢字っぽいことできないかな〜と考えたときに、「Slackのスタンプで今年1年を表せるのでは?」と思ったのでちょっと作ってみました!

# 完成イメージ

`@nenmatsu`メンションをすると、「2021年は、あなたは◯◯な1年でした!」と教えてくれます。(ついでに、2021年にもらったスタンプベスト3も)

元記事を表示

AWS Transcribeで音声文字起こし

# アーキテクチャ
![transcribe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2097948/55b76be6-11ab-126d-70b9-7941c92fd89b.png)

input bucketへのアップロードをトリガーに音声ファイルを文字起こし

# 手順
1. bucketの作成(インプットとアウトプット用の2つ)
2. IAMロールの作成
3. transcribe_functionの作成

#S3バケットの作成

Lambdaのトリガー設定時に、下記のような注意書きがあるように、入出力のバケットは分けた方が良い
![スクリーンショット 2021-12-12 14.11.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2097948/110cbd83-4e30-197b-ff53-798b3643a584.png)

#IAMロールの作成

設計図の使用を選択して、関数を作成する

!

元記事を表示

AWS Chalice プロジェクトを CloudFormation でデプロイすると Lambda 関数名がランダムに設定されてしまう、を回避する

# はじめに
Lambda ベースのアプリケーション開発を効率化できる Python フレームワークの AWS Chalice[^chalice]、面倒な設定はフレームワークにお任せしてコードにひたすら集中することができとても重宝しています。また、アプリケーション内で多くの関数が必要になったり、他の AWS サービスとの連携が増えたりしても、CloudFormation でのスマートな構成管理も可能[^chalicecfn]で安心です。でも、、、Chalice プロジェクトを CloudFormation で構成管理するときにはちょっとした困りごとが。。。それは、Lambda 関数名の扱いです。

例えば以下のように、`helloworld` というアプリケーションで `my_function` という関数名の Lambda 関数[^purelambda]を定義することを考えます。

“`python:app.py
from chalice import Chalice

app = Chalice(app_name=’helloworld’)

@app.lambda_functi

元記事を表示

AWS Lambdaで簡単機械学習 = Lambdaコンテナ + serverless framework

:::note info
AWS LambdaとServerless Advent Calendar 2021の12日目の記事です
:::

https://qiita.com/advent-calendar/2021/lambda

## 背景

最近、Pythonでテキストからカテゴリを推定する関数をLambdaで作った際に、mecabの辞書ライブラリやpandas, numpyがでかすぎてデプロイできずに右往左往したのですが、serverless frameworkとLambdaコンテナのおかげで簡単にデプロイができたので、感動をお伝えするためにこの記事を書いていこうと思います。

## やりたかったこと

テキストがどのカテゴリに属するか、tf-idfとコサイン類似度を使って算出するというのが、今回やりたいことになります。
テキストは、S3のPUTされ、PUTイベントをトリガーに関数を走らせるようなイメージです。

以下はカテゴリ推定方法です。

1. テキストをmecabを使ってわかち書き
2. わかち書きされたテキストをtf-idfでベクトル化
1. ベクタライザは

元記事を表示

Step FunctionsでサポートされたAWSサービスを活用して既存処理の改善するお話

## はじめに
こんにちは、エキサイト株式会社 SaaS事業部エンジニアの鈴木です。
エキサイトホールディングス Advent Calender 2021の11日目を担当させていただきます。

私事ですがここ2年ほどで衣服を統一してなんちゃってミニマリストとして生活をしています。
不便はないのですが、この時期になると「この服装で去年の冬は越せたから大丈夫だよな・・・」という疑問が湧き上がってくる今日この頃です。
皆様いかがお過ごしでしょうか。

## 本日の内容
最近[Step FunctionsでサポートされるAWSサービスが増えた](https://aws.amazon.com/jp/about-aws/whats-new/2021/09/aws-step-functions-200-aws-sdk-integration/)ようなので、
こちらを活用して`Glueクローラーで分析用のデータカタログを作成するStep Functionsをbefore/after形式`でお届けします。

## ワークフロー図
before/afterともに処理の流れは下記の図となります。

![st

元記事を表示

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

#目次
[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の取得方法に関しては以下の記事がとてもわかりやすいです。さすがはクラスメソッド様。。。
[

元記事を表示

OTHERカテゴリの最新記事