- 1. PagerDutyのオンコール担当をチャンネルのトピックに設定する
- 2. みんながよく使うawsリソースとは?【2021年上半期】
- 3. CodeCommit APIのCreateCommitの動きが想定と違った話
- 4. 【Node.js, TypeScript】LINE MessagingAPIで作った天気予報アプリをAWSのLambdaにデプロイしてみる!
- 5. AWS超絶初心者がSESを使ってメールの一斉送信やってみた
- 6. AWS Lambdaのコールドスタートについて
- 7. TerraformでLambdaコンテナイメージを自動構築する
- 8. API Gatewayを使ってLambda関数を使ったREST APIを作成する
- 9. ElixirでAWS Lambdaの.zipファイルとコンテナイメージの速度比較
- 10. AWS Lambda で画像AIを動かす
- 11. Lambda関数でPythonとSelenium使ってサーバレスでスクレイピングする
- 12. レプリケーションインスタンスをオートスケールさせる
- 13. Amazon Cognito の Lambda トリガーに、エイリアス付きで Lambda を設定してみる
- 14. TerraformでLambdaを作成したときにログがでない
- 15. AWSのサービスを活用して低コストでradikoをPodcast化するアプリケーションを作った話
- 16. LambdaでS3からHTMLファイルを取得して返す
- 17. 【LambdaでOpenCVを利用】AWSとOpenCVを利用してポケモン画像でアスキーアート風に変換するAPIを作った
- 18. AWS LambdaでAWS Systems Manager(SSM)のAWS-RunShellScriptを実行する(Node.js)
- 19. 【キャッチアップ】AWS-lambda
- 20. AWS Lambdaレイヤーを使ってPostgreSQLに接続する
PagerDutyのオンコール担当をチャンネルのトピックに設定する
# 概要
PagerDutyのオンコール担当になっていることをうっかり忘れたことが何回かあったので、なにかよい方法ないかなと探してたら、「pd-oncall-chat-topic」というものがあったので早速試してみました。
https://github.com/PagerDuty/pd-oncall-chat-topic
仕組みはとてもシンプルでした。
1. Lambdaが5分おきに動いてPagerDutyのAPIからオンコール担当を取得
2. Slackのチャンネルにトピック登録# 手順
手順はReadmeに記載の通りで特に詰まるところもなく設定できます。
## SlackでBotを設定する
ここからBotを作成します。
https://my.slack.com/services/new/bot![bot1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32289/ebaf13a2-20c1-2334-528f-4e79d56ded39.png)
APIトークンをメモしておきます
みんながよく使うawsリソースとは?【2021年上半期】
webエンジニアならAWSは必須ですね。
最近は、サーバーレスも定着してきて、これまでのEC2メインでもなくなってきたので、勝手ランキングを発表!
(2021年上半期版)これからのwebサービス開発の参考にしてください。
# 人気awsリソースランキング 4位~10位
第 **4** 位 **Lambda**
軽いちょっとした処理は、lambdaにして呼び出すのが便利ですね。
もう自前ライブラリを構築する必要はなくなりました。
[AWS Lambda 料金](https://aws.amazon.com/jp/lambda/pricing/)第 **5** 位 **DyanmoDB**
NoSQL便利!しかも、速い!スケーラビリティ!
RDB思想からの脱却に苦労するかもしれませんが、価値はかなり高いです。
[Amazon DynamoDB 料金](https://aws.amazon.com/jp/dynamodb/pricing/)第 **6** 位 **API Gateway**
サーバーを立てて、APIキー認証をしっかり作って、バージョンを管理して、から脱却
CodeCommit APIのCreateCommitの動きが想定と違った話
# 概要
Lambda(python)で作成したファイルを、CodeCommit API(CreateCommit)を使ってリポジトリに追加(更新)しようとしたが上手くいかず、調べたらAPIの仕様が自分の想定と違ったので、備忘録としてその時の内容をまとめる。
# やりたかったこと
S3にあるファイルをLambdaで編集して、編集したファイルをCodeCommitリポジトリに追加(更新)する。
## 作成したLambda関数
“`
s3 = boto3.resource(‘s3’)
cc = boto3.client(‘codecommit’)def lambda_handler(event, context):
bucket = s3.Bucket(‘<バケット名>‘)
obj = bucket.Object(‘<オブジェクト名>‘)
res_obj = obj.get()
body= res_obj[‘Body’].read()〜〜〜(編集処理)〜〜〜
res_branch = cc.get_branch(
【Node.js, TypeScript】LINE MessagingAPIで作った天気予報アプリをAWSのLambdaにデプロイしてみる!
先日、Node.jsとTypeScriptで天気予報アプリを作成しました。
https://qiita.com/Ryo9597/items/4c05b8b972ad7efc0c66
完成形としては以下の通りです。
![名称未設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/0af0bfce-b695-b341-4e90-aeefde544562.png)この記事内では、`Glitch`でデプロイをしています。
まぁ無料なわけで色々問題があります。
・プロジェクトは、利用されていないときは5分でスリープ状態になる
・4000件/1hのリクエスト制限がある(Error: 429 too many requests)ということで、AWSのLambdaを使ってデプロイすることにします。
それではアーキテクチャに関してみていきましょう。## サーバーレスアーキテクチャとは
AWSにおけるサーバーレスとは、**「インスタンスベースの仮想サーバー(EC2など)を使わずにアプリケーション
AWS超絶初心者がSESを使ってメールの一斉送信やってみた
筆者のレベル感は
– AWSの構成図は読める、それぞれの機能の概要はなんとなく分かる
– AWSでの実装経験はゼロ(システム開発経験もゼロ)なので、生暖かく見守ってください。
#やりたいこと
リスト化されたメールアドレス宛に、対応する宛名を文面に盛り込んだメールを送りたい。
基本的には以下の記事を参考に実装。項目も引用させてもらっています。
https://dev.classmethod.jp/articles/bulk-email-ses-lambda/
#SESで送信元メールアドレスを登録
ここはうまくいった。方法はネットに溢れているので割愛#DynamoDBでユーザーテーブルを作成
???
userId(PK)とはなんぞや???プライマリキーということは分かったけど、
a06b7c45-1303-45bf-a2d7-fec53fbc224cとかが何を表しているのか分からないので、
いったん以下のように記載| userId(PK) | name | emailAddress |
|:-:|:-:|:-:|
| 1|太郎 | test1@XXX
AWS Lambdaのコールドスタートについて
アクセス増に応じて、同時に処理できる数が増えていきます。
####作成済みのLambda
初期処理不要####追加されたLambda
初期処理必要
※関数実行までに、コンテナ作成→パッケージのロード→ランタイム起動・初期化=コールドスタート
##対応方法について
###①コールドスタートの処理を短くする対応
・パッケージのサイズを小さくする
・Lambdaのメモリを増やしていく(メモリを増やすと、CPUの性能が上がり、処理時間が短くなる)
※メモリ増やすと、1ミリ秒のコストは上がるが、処理時間が短くなる。一概にコスト増とはいえない。###②設定「Provisioned Concurrensy:準備済みの同時実行数」を使用。別途コスト
常時、初期処理済みのLambdaを、XXX個用意しておくことが可能
TerraformでLambdaコンテナイメージを自動構築する
# はじめに
昨年末にGAされたLambdaのコンテナイメージ機能。
プラットフォームとしてのデプロイ方法が増えて、ますますLambdaの使い勝手が良くなってきている。今回は、通常のZipによるデプロイではなくて、コンテナイメージでのデプロイをTerraformで自動化してみよう。
前提知識としては以下だ。
– TerraformによるLambdaのデプロイ経験がある
– SAMによるLambdaのデプロイ経験がある([参考記事](https://qiita.com/neruneruo/items/1ef52f908e4497103a59))
– Dockerの基本のキは理解している([参考記事](https://qiita.com/neruneruo/items/82c9daf90d5782f150d2))# ソースコード
今回は動けば何でもよいので、AWSリソースとも接続しない、テキトーにJSONを返すだけのコードにしよう。
クエリからidを受け取り、それに応じた名前を返すような機能(getemployee)とする。“`main.go
package main
API Gatewayを使ってLambda関数を使ったREST APIを作成する
# はじめに
こんにちは。東京五輪のサッカー準決勝のチケット持ってましたが、無観客になっちゃいましたね :innocent: いやー、もし再抽選で当たってたら行く行かないで迷っていたと思うので、自分はこれでよかったと思います。さて、今回は先日作成した**Lambda関数**を**API Gateway**を通してAPIとして使えるようにしようと思います。
# 先日作成したLambda巻子はこちら
https://qiita.com/akitkat/items/d7d3f41449a58fdb38ae
# API Gatewayを使ってLambda関数を実行する
## 1. APIの作成
`APIの作成`からAPIを作成します。
`API名`はお好みで大丈夫です。URLに含まれたりはしません。![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86984/3a0b3a0d-5777-40da-46e0-cb49d0eea4d4.png)
## 2. リソースの作成
`アクション`プルダウ
ElixirでAWS Lambdaの.zipファイルとコンテナイメージの速度比較
# はじめに
ElixirでAWS Lambdaのアプリケーションを書く場合、これまではカスタムランタイムを含めたアプリケーションを.zipファイルで固めてアップロードする方式一択でしたが、2020年末に、AWS Lambdaがコンテナイメージをサポートしたことで、カスタムランタイムを含めたアプリケーションをDockerイメージにし、ECRに登録して利用するという方式も選択できるようになりました。
今回、それぞれのアプリケーションをデプロイしてみて、コールドスタートからの実行速度や、通常の実行速度等を比較してみたいと思います。
# 比較してみる
## アプリケーションの作成
今回は、リクエストされた小文字を大文字に変換して返す簡単なLambdaを作成して速度比較を行います。
アプリケーション作成については、AWS LambdaやAzure Functions、IBM Cloud Functionsのアプリケーションを簡単に作成できる謹製ライブラリがあるのでそちらを使います。
ライブラリはこちらで公開
→ https://github.com/imahiro-t/faas_
AWS Lambda で画像AIを動かす
## はじめに
AWS Lambda で Pytorch の画像AIを動かしてみました
SAM CLI で簡単に構築できるので、ちょっとした AIサービスなら低コストで実現できそうです
## 実行環境
– macOS Big Sur 11.4
– SAM CLI 1.24.1
– Docker 20.10.6## 参考にしたもの
2021/2/12 のブログです
こちらは自然言語処理のAIを動かしています
https://aws.amazon.com/jp/blogs/machine-learning/using-container-images-to-run-pytorch-models-in-aws-lambda/
## AWS Lambda とは
AWS Lambda はサーバレスコンピューティングサービスです
https://aws.amazon.com/jp/lambda/
開発したコードをアップロードすると、呼び出されたときだけマシンが起動し、コードを実行して、自動的に終了してくれます
何が嬉しいかというと
– サーバーがないので、サーバー構築
Lambda関数でPythonとSelenium使ってサーバレスでスクレイピングする
# はじめに
こんにちは。先日、とある企業のとあるリードテックの方とお話しする機会がありました。今までにない切り口で質問いただいたり、すごく勉強にも気づきにもなって楽しくて、あの話もしたかったなとか、今までにない感情がわきました 🙂あぁいうのって、**話術**っていうんですかね :thinking: すごかったです 🙂
—
さて、今回は**Lambda**を使って**Selenium**によるスクレイピングを行っていこうと思います。
私は、**GoogleAppsScript**をよく使うので、簡単はものはそれでいいのですが、ちゃんとした**テスト**をするには、**Selenium**等使うべきだとは思います :pray:**Heroku**に**Laravel**入れて**Selenium**使おうとかも思ったのですが、せっかくなので、今まで触ったことないものに挑戦しようと、今回の運びになりました。
**Lambda**も**Python**も使ったことないので、同じく初心者の方にやさしい記事になると思います。
参考になれば幸いです :b
レプリケーションインスタンスをオートスケールさせる
## はじめに
AWS DMSの継続レプリケーションするタスクのインスタンスのスペックの調整をするのに、コンソール上でポチポチするのが面倒になったので、必要に応じてレプリケーションインスタンスを自動的にスケールして、より高い負荷 (スケールアップ) を処理し、負荷が低いときにコストを削減 (スケールダウン) する方法を模索しました。##やりたいこと
対象のレプリケーションインスタンスのCPU使用率が閾値を超えた際は、スケールアップし、Eメール通知をもってトリガーを確認できるようにします。閾値を下回った際は、スケールダウンし、Eメール通知を行う。## セットアップ
### **構成図**
![DMS AutoScaring.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192019/5cea3c9f-1d4d-0aea-3423-5fa02bda5c35.png)### **必要リソース**
– インスタンスタイプの変更通知(SNS)
– Lambda関数を呼び出す通知(SNS)
– CPU
Amazon Cognito の Lambda トリガーに、エイリアス付きで Lambda を設定してみる
# ■ はじめに
![963f9ca9395c096c234f891ad8877b28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/d838a89d-5dc1-d693-0517-add60ca2ce07.png)
Amazon Cognito の Lambda トリガーに、エイリアス付きで Lambda を設定してみたかったので、やってみました。
参考にさせて頂いた記事は、コチラ ♪♪♪
– [aws lambda \- Cant set AWS cognito triggers using CLI \- Stack Overflow](https://stackoverflow.com/questions/60351508/cant-set-aws-cognito-triggers-using-cli)
– [update\-user\-pool — AWS CLI 1\.19\.105 Command Reference](https://docs.aws.amazon.c
TerraformでLambdaを作成したときにログがでない
TerraformでLambdaを作成したときにログがでない(ロググループがない)
TerraformでLambda作成するときに以下を参考にして権限をつけると大丈夫なようです。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/lambda-cloudwatch-log-streams-error/今までTerraformでロググループを作っていましたが、権限つければいいじゃんということで備忘です。
CloudWatch にログを書き込む Lambda 関数に必要なアクセス許可を含む JSON ポリシーの例
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “logs:CreateLogGroup”,
“Resource”: “arn:aws:logs:region:accountId:*”
AWSのサービスを活用して低コストでradikoをPodcast化するアプリケーションを作った話
# TL;DR
– AWSのサービスを活用してradikoをPodcast化するアプリケーションを作りました
– [l3msh0/radicaster](https://github.com/l3msh0/radicaster)
– 低コストで運用可能で、番組の連結などヘビーリスナーに嬉しい機能もあります
– 気に入ったらGitHubで star :star2: してね# この記事のターゲット
ラジオが好きで、ある程度AWSの知識があるエンジニアの方
# 前置き
皆さん、ラジオ :radio: 聴いてますか?
私は10年ほど前にラジオに出会って以来、移動中や家事をしながら、時にはお風呂やお布団の中など、日常のあらゆるシーンでラジオが欠かせない存在になっています。
ラジオの聴取手段と言えばradikoですよね。かく言う私もradikoプレミアムの会員で、タイムフリーやエリアフリーなどの便利な機能のおかげでラジオをより楽しめています。
ただ、ヘビーに利用していくと痒いところも出てくるわけで…。再生開始から24時間以内・合計3時間の聴取時間の制限や、シークのしづらい
LambdaでS3からHTMLファイルを取得して返す
色々と応用できそうなので残しておきます。
##環境
Python3.7
API Gateway プロキシ統合あり##処理
“` Python3
import boto3
import os# バケット名は環境変数から取得
BUCKET_NAME = os.environ[‘BUCKET_NAME’]
s3 = boto3.resource(‘s3’)
filepath = ‘/tmp/hogehoge.html’def main(event, context):
bucket = s3.Bucket(BUCKET_NAME)
bucket.download_file(‘hogehoge.html’, filepath)with open(filepath , encoding=’utf-8′) as f:
html = f.read()return {
“statusCode”: 200,
“headers”: {“Content-Type”: “tex
【LambdaでOpenCVを利用】AWSとOpenCVを利用してポケモン画像でアスキーアート風に変換するAPIを作った
こんにちは、[Yui](https://twitter.com/yui_active)です。
引き続き週イチ発信をしていきます。
今週はAWSとOpenCVを使って、画像処理を行ったのでそのことについて書きます。以下の件です。
ポケモンAPIとOpenCVを使って、画像をポケモンだけで表すAPI作った pic.twitter.com/36GBqvqf82
— yui ☁ Yuiko Ito (@yui_active) July 4, 2021