- 1. ssh2-sftp-clientを使ってAWS Lambda(Node.js)からSFTPサーバーにファイルをアップロードする
- 2. AWS Lambda + Serverless Framework + Selenium でつまずいたこと
- 3. 40代おっさんREST API サーバーレスを学ぶ③
- 4. 絶対に止めれないシステムの作り方
- 5. DynamoDBにデータを追加する際、「エラー」が出てこない問題に対する解決策
- 6. AWS CDKのILocalBundlingでLambda FunctionとLayerを構築する
- 7. AWS Lambdaの関数URLとコールドスタートの付き合い方について
- 8. 【AWS】VSCode Remote-SSH+EC2な開発環境を安く安全に作る〜3. スポットリクエスト作成〜
- 9. Lambda SnapStart を実現する MicroVM Snapshots の論文を読み解く
- 10. denoとapi gateway with websocketを使ったリアルタイムチャットを作ってみる(fresh, appRunnerも)
- 11. 社内向けチャットボット プログラム説明
- 12. Lambda で MedliaLive の稼働状況を監視して Slack に通知するようにした話
- 13. SAMを利用したLambda(Function URLs)デプロイ
- 14. 【AWS】EventBridge SchedulerでEC2の自動起動・自動停止
- 15. Hello AWS SAM World!!
- 16. SalesforceとSlackの連携をゴリゴリカスタマイズしてみる(Salesforceライセンスの節約術)
- 17. AWS Lambda における バースト耐性
- 18. AWS CDKに入門してみた。
- 19. 40代おっさんREST API サーバーレスを学ぶ②
- 20. re:Invent 2022 Lambda の Inspector 対応を検証してみた
ssh2-sftp-clientを使ってAWS Lambda(Node.js)からSFTPサーバーにファイルをアップロードする
# イントロダクション
この記事は、[ミロゴス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/milogos) 5日目の記事です。
AWS Lambda(Node.js)からSFTPサーバー宛にS3上のファイルを転送したいという要件がありました。
Pythonであればparamikoあたりを使うところですが、Node.js(TypeScript)で開発したかったのでライブラリを探してみました。
使い勝手がよさそうものとして `ssh2-sftp-client` が見つかったので使ってみることにしました。# ssh2-sftp-clientとは
– https://www.npmjs.com/package/ssh2-sftp-client
– https://github.com/theophilusx/ssh2-sftp-clientssh2-sftp-clientは、Node.jsのSFTPクライアントです。
[ssh2](https://github.com/mscdex/ssh2) のラッ
AWS Lambda + Serverless Framework + Selenium でつまずいたこと
これは YAMAP エンジニア Advent Calendar 2022 5日目の記事です。
https://qiita.com/advent-calendar/2022/yamap-engineers
# はじめに
以前に Heroku で Selenium を動かすということをやっていたのですが、諸般の事情により Heroku から AWS Lambda への移行が必要となりました。簡単にできるだろうと高をくくっていたのですが、いくつかハマりポイントがあったのでここに記しておきます。https://qiita.com/higuhey/items/565cad6f6cc37f66b153
# やりたいこと
とある Web サイト上でキーワード検索した結果を取得します。また、結果のスクリーンショットを AWS S3 に保存します。
# 結論
最終的には以下の構成となりました。## 環境/バージョン情報
– serverless
– Framework Core: 3.24.1
– Plugin: 6.2.2
– SDK: 4.3.2
– ChromeDrive
40代おっさんREST API サーバーレスを学ぶ③
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## 前回
## REST API リソース作成
API Gatewayを開く
APIタイプを選択で REST API 選択
選択したら画面遷移しますので
![API作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641940/5d5f9ddb-3896-e69d-50c9-b6d619b17e3e.png)
プロトコルを選択を
REST新しいAPIの作成
新しいAPIAPI名を入れてください
入れましたらAPIの作成をクリック
### リソース
リソースを選びます。
次にリソースのアクションを選び
リソースの作成を選ぶリソース名を入れたら
右下のリソースの作成を
絶対に止めれないシステムの作り方
# 絶対に止めれないシステムとは
もちろん銀行システムとかのクリティカルなシステムもそうなのですが、今回は、そこまでではないのですが、データ連携上一部のapiは止めれないシステムを指します。
僕は直面したのが、Lineでのユーザー登録によるwebhookを受け取るって奴です。
昔のキャリアのユーザー登録であれば、止まっていた時には別途データが飛んできてまとめて処理とかも出来ましたが、Lineさんのはありません。ユーザー登録時のwebhookを取りこぼすと2度と受信出来ないのです。
同様にSNS等で登録時にwebhookが来て、対応する必要があるシステムもあると思います。
LINE、現在は再送機能があるみたいです。
https://developers.line.biz/ja/news/2022/04/19/webhook-redelivery/# どうすれば良いか?
先ず思うのは、AWSでLambdaで受け取って処理すれば良いと思うでしょう。
これでも良いのですが、Lambdaがエラー処理で落ちたりすることもあります。
## 最初の構成
![image.png](https://q
DynamoDBにデータを追加する際、「エラー」が出てこない問題に対する解決策
# はじめに
Lambdaを使ってDynamoDBにデータを追加する簡易システムを作っていた際、エラーログすら出力されない問題に当たったので、ここではその知見共有をしたいと思います。# 1. 今回使用するDynamoDBの構成
### order_infoテーブル今回は、order_infoテーブルにレコードが追加されるたびにプライマリーキーであるid属性を連番設定し、数を1ずつ増やしていきます。
|id|created_at|host|name|price|quantity|
|:—|:——-| :–|:–|:—–| :——|
|number|number|string|string|number|string|### id_sequenceテーブル
order_infoテーブルのid属性の連番を管理するためのテーブルです。
※DynamoDBには、オートインクリメントの機能がないため、Lambdaでコードを読み込むと数字をインクリメントするという処理にします。
|target_tabele|sequence|
|:—|:——-|
AWS CDKのILocalBundlingでLambda FunctionとLayerを構築する
# 概要
AWS CDKを使ってLambda FunctionとLayerを構築する。
やりたいこととしては、– FunctionのソースはTypeScriptで書く
– Functionにはnpmモジュールを含めない
– Layerはnpmモジュールのみ含める
– 開発中は `node_modules` を参照/解決できるようにする
– 事前準備のためのスクリプトを用意したくない
– 設定ファイルでパスをゴニョゴニョしたくない
– AWS CDK標準の仕組みを使う(FunctionとLayerへのバンドリングの話)やってないこと/考慮してないことは、
– Layerにユーザー定義のモジュールを含める
– `sam local invoke` で動作すること
– `bash` の動かない環境でのローカルバンドリング# ファイル構成
最終的にこのようなファイル構成になった(主要なファイルのみ)。
`project/package.json` の `devDependencies` には型定義やら開発時に必要なものが色々入っている。
`project/src/lambda
AWS Lambdaの関数URLとコールドスタートの付き合い方について
この記事は、[Supershipグループ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/supership) の4日目の記事になります。
## はじめに
Supership株式会社の [@masahito-suzuki](https://github.com/masahito1977) です。
最近ではAWSやDatabricksに関する管理を中心にコストレポート・見える化などをAWS Lambdaを中心に作成しています。
今回Lambdaを久しぶりに利用していると見慣れない機能「関数URL」と言うものがあり、これについて調べてみると、なるほど「今までより簡単にWebアプリが作れる」ようで、更に深掘りして調べた結果を記載しまとめてみました。serverless関連に興味のある方は是非見ていただければと思います。
## 関数URLとは
2022/04/05 より AWS Lambdaアップデートで新機能 `関数URL` が登場しました。
これまで`API Gateway`を使って、Lamdaを実行する形で
【AWS】VSCode Remote-SSH+EC2な開発環境を安く安全に作る〜3. スポットリクエスト作成〜
[前回](https://qiita.com/soujiroy/items/7798448fdc71a07005c6)で作成した起動テンプレートを使い実際にスポットリクエストを作成していきたいと思います。今回実施するのは以下の内容です。
1. スポットリクエストの作成
1. (オプション)スポットリクエスト起動用のLambda作成# スポットリクエストの作成
[この画面](https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#SpotInstancesLaunch:)からスポットリクエストの作成を行います。以下の値以外はデフォルト値で大丈夫です。* 起動パラメータ
* 起動テンプレートを選択し、前回作成した起動テンプレートを選択
* ネットワーク
* 前提条件で作成済みのVPCを選択
* アベイラビリティーゾーンは前回データ保存用EBSなどを作成したアベイラビリティーゾーンを選択
* インスタンスタイプの要件
* 選択したAMIや開発環境の
Lambda SnapStart を実現する MicroVM Snapshots の論文を読み解く
# 概要
本記事は、[aws Advent Calendar 2022](https://qiita.com/advent-calendar/2022/aws) の 3日目の記事となります。
* 今回は、先日(2022/11/28)発表された Lambda SnapStart を実現する MicroVM Snapshots について書かれた論文「Restoring Uniqueness in MicroVM Snapshots」を読み解いていくという内容になります。
https://aws.amazon.com/jp/blogs/aws/new-accelerate-your-lambda-functions-with-lambda-snapstart/
## Lambda SnapStart とは
* 一言でこの機能を表すのであれば、Lambda のコールドスタート、初期化処理によるレイテンシーを大幅に削減する仕組みです。
### 機能
#### Lambda の実行環境について* Lambda は関数の実行が行われた場合、下記の図のような動きを行う。
1: S3バ
denoとapi gateway with websocketを使ったリアルタイムチャットを作ってみる(fresh, appRunnerも)
api gatewayがwebsocket向けに利用できるという事を知ったのと、個人的にwebsocketの知識が足りていないのと、denoのFreshというFWを触ってみたかったのとあって、やってみることにしました。あと使った事なかったのでApp Runnerも使っておきます。
# 使いたいサービス、技術
– Lambda
– api gateway
– deno
– Fresh
– sam cli
– App Runner
– Docker
– DynamoDBだいたいこんなところでしょうか。
# 事前準備
このあたりを参考にして進めてみます。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/websocket-api-chat-app.html
これをベースにしつつFreshでチャットを作ってみようかと思います。
で、
> このチュートリアルの完了には約 30 分かかります。
とありまして、ボリューミーなんだろうなと思うのでこのへんは要点だけ残しておくことにします。
##
社内向けチャットボット プログラム説明
# 目次
– [1.はじめに](#1はじめに)
– [2.チャットボットの動き](#2チャットボットの動き)
– [3.処理の流れ](#3処理の流れ)
– [4.入力内容の確認](#4入力内容の確認)
– [4-1.データの取り出し](#4-1データの取り出し)
– [4-2.返答内容の決定](#4-2返答内容の決定)
– [5.メッセージの作成](#5メッセージの作成)
– [5-1.質問・回答文の作成](#5-1質問回答文の作成)
– [5-2.選択肢の作成](#5-2選択肢の作成)
– [6.まとめ](#6まとめ)# 1.はじめに
昨年作成した、Amazon lexとSlackを使った社内向けチャットボットのプログラムについて
自社のチーム内で説明、共有する機会がありました。
その際に自分の作成したプログラムを他者に分かりやすく説明することが難しいと実感し、
今回このQiitaの記事にそのプログラムについて、簡単な説明を備忘録も兼ねて投稿しようと思います。昨年作成したチャットボットについての記事は以下になります。
https://qiita.co
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 によ