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

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

Lambda で MedliaLive の稼働状況を監視して Slack に通知するようにした話

:::note
AWS LambdaとServerless Advent Calendar 2022 2日目の記事です?
:::

## はじめに
みなさん、おはようございます!リバネス開発チームのトミー(@tomyf)です?

弊社では、自社サービス向けのライブ配信システム(以降、ライブ配信システムと表記します)で AWS Elemental MedliaLive を活用しています。
ライブ配信システムを簡単に説明しますと、リバネスが運営する [超異分野学会](https://hic.lne.st) や [テックプランター](https://techplanter.com/) 、ウェビナーなどの配信を、リバネスIDを持つユーザ限定で視聴できるプラットフォームです。

現在はライブ配信が必要なイベントごとに、専用のチャンネルを作成してライブ配信システムに紐付けており、イベント担当者がライブ配信システムからチャンネルの起動/停止を行っています。
皆さんご存知かもしれませんが AWS Elemental MedliaLive は実際の映像のアップストリームとは別に、チャンネルが起動している

元記事を表示

SAMを利用したLambda(Function URLs)デプロイ

## はじめに

[フューチャーAdvent Calendar 2022](https://qiita.com/advent-calendar/2022/future) の2日目です。
この記事は今年2022年4月にリリースされた「Lambda Function URLs」を実務で利用したところ非常に簡単だったので、そのやり方を紹介する記事です。
SAM初心者の方向けの内容になります。

こんにちは、Future CSIG所属の二瓶賢です。
今年から[FutureVuls](https://vuls.biz/)という脆弱性管理サービスの開発チームで働いています。

さて、FutureVulsでは決済サービスにStripeや、メール送信サービスにSendgridといったwebサービスを利用しています。
そういったサービスではwebhookで異常を通知するケースが多いかと思いますが、それらwebhook受信用エンドポイントを都度用意するのが面倒という気持ちもあるかと思います。(私はそうです、特にサービスの検証段階だと猶更です。)

そこで、この記事では[AWS Lambda Funct

元記事を表示

【AWS】EventBridge SchedulerでEC2の自動起動・自動停止

EC2を使用していると、料金を抑えるために使用する時間帯以外は停止する運用をよくします。
その際今までは、手動だと停止し忘れが発生するので、EventBridge + Lambdaで自動化していました。

しかし、2022/11/10にEventBridge Schedulerが発表されたことにより、この機能のみで様々なリソースの自動停止が実現できるようになりました!
EC2を例にして、機能の特徴と作成方法を説明します。
![event_bridge_scheduler.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1166959/81cf816a-0bbc-5cd7-ddc2-531bc72f142f.png)

# ターゲット

– AWSの最新機能を学たい
– EC2, RDS等を自動停止/起動したい
– すでにEventBridge + Lambdaで運用しているが、もっと簡略化したい

# EventBridge Schedulerのいいところ

EventBridge Sche

元記事を表示

Hello AWS SAM World!!

# はじめに
この記事は [アイレット株式会社 22新卒 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/iret-22) 2日目の記事になります。

# AWS SAMとは
AWS SAMとは、AWS サーバーレスアプリケーションモデル (Serverless Application Model)の略で、サーバーレスアプリケーションを構築するためのオープンソースフレームワークです。

![sam君.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269896/9835c4e0-807f-35a2-3fa7-0fc72f632b16.png)
サムくん(勝手に呼んでる)かわいいよね。

# AWS SAMでHello World!
今回は、AWS Lambda上でHello Worldする関数を作成します。

自宅のPCはWindowsなので[Windows用のドキュメント](https://docs.aws.amazon.com

元記事を表示

SalesforceとSlackの連携をゴリゴリカスタマイズしてみる(Salesforceライセンスの節約術)

# はじめに
SalesforceとSlackを連携させて業務の効率化を行っている現場は多いと思います。
ここ数年でSalesforceとSlack間の連携機能はどんどん追加されていき、「SalesforceからSlackに通知する」という要件程度だと、フローを使えば、ほとんど実現できる状態になっています。

ただ、現時点(2022/12月)だと、SlackからSalesforce上のレコードを更新する場合には、若干かゆいところに手が届かないという状態でもあるので、今回はカスタマイズ開発するとこんなこともできます。というご紹介をしたいと思います。

# カスタマイズ開発の概要
今回はSalesforceのレコード詳細に配置したLWCのボタンを押すと、Slackにレコード情報がエスカレーションされ、Slack上のボタンを押して、更新内容を入力するとSalesfoce上のレコードが更新される。というカスタマイズを実装します。

ポイントとしては、Slack上に表示するモーダルからのSalesfoceレコード更新は、**Salesfoceユーザではなくても実行が可能なので、使い方によってはラ

元記事を表示

AWS Lambda における バースト耐性

皆様 こんにちは。 AWS の [kensh](https://twitter.com/_kensh) です。いかがお過ごしでしょうか? 毎年 Serverless Advent Calendar をhostしていまして、多くの方にたくさんの良記事を投稿をいただき、また多くの方に読んでいただけて嬉しく思います。

さて、世間では [AWS re:Invent 2022](https://reinvent.awsevents.com/) と [World Cup 2022](https://www.fifa.com/fifaplus/en/tournaments/mens/worldcup/qatar2022) で盛り上がっていますが、この記事はそれらとほとんど無関係な記事になっています。(一部 re:Invent アップデートも記載)

本稿では、AWSサービスのうち特に AWS Lambdaのバースト耐性について考えてみたいと思います。どのように バースト耐性を実装するか、その手がかりに本稿がなれれば幸いです。

### token bucket algorithm

token b

元記事を表示

AWS CDKに入門してみた。

# はじめに
この記事は[NEアドベントカレンダー2022](https://qiita.com/advent-calendar/2022/ne)(2)の2日目の記事です。
AWS CDKに入門してみたよと言う記事です。

日頃の業務でもAWSに関わる機会が増えてきたので、個人的にAWSには触れるようにしています。
ただ、LambdaとEventBridgeで定期的に何かをするくらいのことしかやったことがなかったので、
今回は最近気になっていたAWS CDKを触ってみました。

# [AWS CDK (AWS Cloud Development Kit)](https://aws.amazon.com/jp/cdk/)
AWSが提供している、 AWS CloudFormationというサービスを我々になじみがあるプログラミング言語で使えるようにしたものという認識でいいと思います。
もっと具体的に説明するとAWSの提供するリソースである、LambdaやVPC、S3などと言ったリソースを、Pythonなどで定義し、デプロイまでできるツールキットです。

AWS CDKのワークショップをやる

元記事を表示

40代おっさんREST API サーバーレスを学ぶ②


## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 前回

## Lambda関数

AWS Lambdaを開く

一から作成を選ぶ

![Lambdapost.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641940/14a46127-3bd8-fd09-c882-44cb2bf0b293.png)

関数名を入れる(users-post-function)
ランタイムをpython 3.9

![Lambdaロール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641940/85d8b7fc-1455-7a4f-4927-8c1b837ab718.

元記事を表示

re:Invent 2022 Lambda の Inspector 対応を検証してみた

# 概要
AWS re:Invent 2022 で AWS Lambda に対して、 Amazon Inspector によるスキャンが対応したため、その機能を検証しました。

https://aws.amazon.com/jp/blogs/aws/amazon-inspector-now-scans-aws-lambda-functions-for-vulnerabilities/

# 結論
本機能は、他サービス向けの Inspector と同様に『既知の脆弱性』を検知するサービスとなります。

よって、以下のようなサービス分類となります。

| リスク | サービス | 備考 |
|—|—|—|
| ライブラリの既知の脆弱性 | Amazon Inspector (本機能) | 主に CVE ベースの検知 |
| コードの不備やバグ | Amazon CodeGuru Reviewer | プログラムミスの検知 |
| プログラムの乗っ取りなど | Prisma Cloud など | ワークロードセキュリティ製品の利用 |

# Amazon Inspector によ

元記事を表示

AWS Lambda / AWS Fargate / AWS App Runner における同時実行の考え方

# 概要

* 今では PC でもスマホでも、あるアプリケーションを実行した際に、マルチプロセスで動作するのが当たり前ですが、例えば MS-DOS などの古い OS では一度に1つのプロセスしか動作させられないシングルプロセスという時代がありました。
* そのため、ユーザは1つのことしか処理できないため「シングルタスク」などとも呼ばれていました。
* これが現在だと、OSで同時に複数処理が行えるマルチタスクとなり、1つのタスクを複数のプロセスで実現しているよう動作となります。
* 例えば、あるサービスを公開したときに、そのサービスを利用するユーザは複数人いると思います。
* そうすると下記のようにサービスが稼働するサーバは多数のユーザから同時に要求され一度に処理する必要がある場合が発生する可能性があります。[(画像引用元)](https://nathanpeck.com/concurrency-compared-lambda-fargate-app-runner/)
* AWS などのクラウドで提供されるコンピュートリソースでは、この同時実行を捌くための仕組みがあります。
* 今回は、

元記事を表示

Slack + Lambda + NewRelicでコーヒー摂取量を記録・可視化できるコマンドを作ってみた

[新卒エンジニアによる全部俺カレンダー2022](https://qiita.com/advent-calendar/2022/arie_onlyme2022) 1日目投稿記事です。

## 概要

作業に集中する時やリラックスする時によく飲むコーヒー・・。
頭が冴えてスッキリするのですが、ついつい飲み過ぎてカフェイン依存症にならないか健康面的に心配になってきました。

そこで自分がどのくらいコーヒーを飲んだか可視化してみようと思い、Slackコマンドを作成してみました。

## 使用技術

Slack API
AWS Lambda + API Gateway
NewRelic

## 用意するもの
– Slackのアカウント / ワークスペース
– AWSアカウント
– NewRelicのアカウント(無料版でOK)

## Slack APIでの設定

Command: 好きなコマンド名(英字)

Request URL: API Gatewayのエンドポイントを設定

![スクリーンショット 2022-11-23 11.01.54.png](https://qiita-image

元記事を表示

【Lambda functions URL】IP制限をかける方法(Python)

# はじめに

Lambda functions URL を使っていて IP 制限をかけたいと思って IAM ポリシーで色々試してみたもののできませんでした。

無理くり Lambda 内で実装したので、その方法を共有したいと思います。

# 環境変数

環境変数に“`IP_RANGE“`=“`'[‘111.111.111.111’, ‘222.222.222.222’]’“`を設定する。

# ソースコード

“`python
import json
import os
import ast

# IPアドレスチェック
def check_ip(IP_ADDRESS, IP_RANGE):
valid_ip = False
if not valid_ip and IP_ADDRESS in IP_RANGE:
valid_ip = True

return valid_ip

def lambda_handler(event, context):
IP_ADDRESS = event[“requestContext”][

元記事を表示

非同期の Amazon Redshift Data API を Amazon EventBridge で上手に取り扱う

Amazon Redshift Data API は SQL を簡単に実行することができる非同期APIです。
非同期なので、SQL が完了するまで待たずにレスポンスを返却します。

APIリクエストが完了したかどうか繰り返しポーリングするような仕組みが必要かな?と思いましたが、必要なさそうでした。
`WithEvent` パラメータに `True` を指定すれば Amazon EventBridge にイベントを送信することができます。

Amazon EventBridge でルールを設定しておけば、完了イベントを拾って後続処理に繋げることもできそうです。
Amazon EventBridge が対応している他のサービスとも連携しやすいですね。

非同期 API なので
AWS Lambda 上で実行する場合には、実行時間を極小化することができ、コスト最適化にもつながりそうです。
長時間実行 SQL や COPYコマンドでの大量データロードなど、長時間がかかる処理の場合にはより効果的です。

## 試してみること

AWS Lambda から Amazon Redshift

元記事を表示

CloudFormationのドリフトを自動検出するシステムを構築したら、ServerlessFrameworkの自動タグ付け機能に苦しめられた

# 目次
– [はじめに](#はじめに)
– [定義と実際のリソースとの差分を検出する方法](#定義と実際のリソースとの差分を検出する方法)
– [作成したシステム](#作成したシステム)
– [サーバーレスフレームワークではうまく機能しなかった話](#サーバーレスフレームワークではうまく機能しなかった話)
– [最後に](#最後に)

# はじめに
インフラの管理をより安全に再現性高く行うために、CloudFormationを利用したIaCを構築している方は多いと思います。ただ、完全にコードによる管理を徹底できているかというと、できていない方も多いのではないでしょうか。

例えば、障害時の緊急対応では、コードの変更と反映を待っていると対応が遅くなってしまうので、コンソールから修正を加えることもあると思います。このコンソールでの変更がそのまま放置されると、コードでの定義と実際のリソースとの間に差分が生じ、後日別件でコードに変更を加えてリソースの更新を行った時に、障害時に行った修正が消え去り、予期せぬ事故が生じる可能性、などのリスクを抱えることになると思います。

そのため、安全なサービ

元記事を表示

Lambdaの実行時間がタイムアウトの8割を超えたらアラートを出す

## はじめに

この記事は、[ミロゴス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/milogos) 1日目の記事です。

社内システムで利用しているAWS Lambda(Node.js)の実行時間がタイムアウト時間の
8割に達した時にアラートを出したいという要件があったため対応しました。

✳︎ 記事はCDKがある程度書かれている前提で記載しています
✳︎ 変数部分は適宜置き換えて下さい

### ログストリームのLambda実行後ログから実行時間を取得してアラートを出す

実装内容は下記です。
実装はTypeScriptで行います。

– CDK
– 対象ロググループにlambdaの実行ログからDuration値を検知するMetricFilterを作成する
– 60秒間での合計検知数を見るMetricを作成する
– 閾値をタイムアウト時間の8割でアラームを定義

##### MetricFilterの定義・LogGroupへの追加

“`ts:
const metricFil

元記事を表示

AWS + LINE でモーニングコールするBotを作ってみた(スライド版)

## 注意

この記事は「[AWS EventBridge + Lambda + LINE でモーニングコールするBotを作ってみた](https://qiita.com/nekolife/items/94d650d7a55cc583dd60) 」のスライド版です。
スライドモードで閲覧することをお勧めします。

## はじめに

「AWSを使って便利なチャットBotを作る」をテーマに掲げ、自分自身の勉強も兼ねて、その成果を記事にしています。
まず第1弾としてLINEにモーニングコールメッセージを送信するBotを作ってみました。
この記事が少しでも役に立てば嬉しいです。

## 完成イメージ

完成イメージは下図のような感じです。
毎朝6時にモーニングコールのメッセージを届けてくれます。

![IMG_4A2D169908D7-1 2(中).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24724/d4b7ec18-de43-8484-6c1d-ef75e319e141.png)

元記事を表示

AWS SDK V3 + Lambda を SAM deploy した際の “Could not resolve” の対処法

# 背景
SAM で EventBridge Trigger + Lambda を Deploy しようとしてる

その際に発生したエラーの対処法の記録

## エラー内容
最初は npm install かと思ったけど、Esbuild の話でそこそこ悩んだ
“`powershell: Esbuild error
Error: NodejsNpmEsbuildBuilder:EsbuildBundle – Esbuild Failed: X [ERROR] Could not resolve “@aws-sdk/lib-dynamodb”
app.ts:2:27:
2 │ import { PutCommand } from “@aws-sdk/lib-dynamodb”;
╵ ~~~~~~~~~~~~~~~~~~~~~~~
You can mark the path “@aws-sdk/lib-dynamodb” as external to exclude it from the bun

元記事を表示

【AWS Amplify】functionの環境変数 “API_XXXX_GRAPHQLAPIENDPOINTOUTPUT” がデフォ値 “apixxxxGraphQLAPIEndpointOutput”になってしまう問題を無理矢理にでも解決する方法

# この記事の対象となる方

– AWS Amplifyを使用して、Lambda(function)を作成しデプロイしている
– Lambda(function)にAppSync(api)を叩く権限を与えたい
– さらにLambda(function)にDynamoDB参照・更新などの権限を与えたい
– しかし巧く行かない
– 作成される環境変数`API_XXXX_GRAPHQLAPIENDPOINTOUTPUT`がヘンなのでAppSyncのエンドポイント取得に使えない…。

# 問題の中身

基本的に、`amplify add function`や`amplify update function`コマンドから`? Do you want to configure advanced settings?`で`yes`を選択し、
“`command
◉ auth
◉ storage
◯ function
❯◉ api
◯ custom
“`
こんな感じで選択すれば、それぞれのリソースへの権限が解決されるはずです。

自動でIAMロールが付与されるので、Lambdaのコー

元記事を表示

AWS Lambdaとkagomeを組み合わせてお手軽に形態素解析APIを作る

# 対象読者
– AWS Lambda未経験でとりあえず何か作ってみたい人
– 自前で形態素解析APIをお手軽に用意したい人

## 動作確認環境
– `Go 1.9`
– `M1 MacBook pro` OS :`MAC OS X 12.4 Monteray`

# 概要
Goで書かれた形態素解析エンジン `kagome` と AWS Lambdaを使って形態素解析APIを作ってみる。

## モチベーション
みなさんは普段業務で形態素解析って使ってますか?
私は流通系の会社に勤めているため、商品に含まれてはいけない成分があるかを調べたり、日本語の商品説明を外国語に翻訳するとき、固有名詞を抽出するのに使っています。

公開されているサービスですと下記のようなものがあります。

https://developer.yahoo.co.jp/webapi/jlp/ma/v2/parse.html

https://labs.goo.ne.jp/api/jp/morphological-analysis/

しかしながら、このようなオープンなサービスでは提供者の都合によるサービス終了や停止

元記事を表示

AWS EventBridge + Lambda + LINE でモーニングコールするBotを作ってみた

## はじめに
「AWSを使って便利なチャットBotを作る」をテーマに掲げ、自分自身の勉強も兼ねて、その成果を記事にしていきます。
まず第1弾としてLINEにモーニングコールメッセージを送信するBotを作ってみました。
この記事が少しでも役に立てば嬉しいです。

## 完成イメージ
完成イメージは下図のような感じです。
毎朝6時にモーニングコールのメッセージを届けてくれます。

![IMG_4A2D169908D7-1 2(中).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24724/f4514f78-7728-2240-0b49-d7e4551fb7ba.png)

## システム構成
下図のようなシステム構成でBotを作成していきます。
![Chatbot-LineMoningCall.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24724/93c48b8e-54ab-420b-a70d-e24

元記事を表示

OTHERカテゴリの最新記事