- 1. Amazon SNS に設定されている iOS アプリの APNs 証明書の有効期限についてアラートを通知する
- 2. AWS Lambda&Seleniumでサイトから定期的に情報を取得する
- 3. API Gatewayで「Lambdaオーソライザー」と「APIキー認証」を一緒に利用する
- 4. AWS LambdaでAmazon EFSを利用してみた
- 5. AWS Lambda External ExtensionsをAWS SAMで管理する
- 6. aws lambdaでPython + Selenium + Headless Chromium
- 7. カスタムdockerイメージでlambdaを動かす
- 8. Lambdaポリシーが変わった部分を見てみる
- 9. Lambdaから指定したS3に入出力するGlueを起動させる話
- 10. Word2vecモデルをAWS Lambdaで動かしてみる
- 11. lambdaとfargateの性能テストを行ったので
- 12. Lambda関数をRuby コンテナイメージを作って動かしてみた
- 13. Slack Bolt で簡単に複数ワークスペースにインストールできるアプリを開発しよう!(TypeScript, Lambda, Serverless Framework によるサンプルコード付き)
- 14. LINE WORKSで担当のBacklog課題をリマインドしてみる
- 15. Webサイトパフォーマンスを継続的に計測する基盤をサーバーレスアーキテクチャで作った話
- 16. AmplifyでREST API作成する時、ファンクション名にハイフンを付けない
- 17. SAMとCodebuildでLambdaの自動deployをする with Julia on Layer
- 18. Serverless Framework・Lambda・TypeScriptプロジェクトの環境構築の一例
- 19. Lambda関数でEmbulkコマンドを実行してみる(カスタムランタイム使用)
- 20. dynamodbで配列の取り扱いについて
Amazon SNS に設定されている iOS アプリの APNs 証明書の有効期限についてアラートを通知する
# 0.はじめに
![unnamed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/9dd2b630-35ce-de02-5137-6e644442f44a.png)
iOS アプリの通知について、[Amazon SNS](https://aws.amazon.com/jp/sns/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc) を利用しており、以下の記事を参考にして、先日 iOS アプリの APNs 証明書の更新したんですが…、
– [iOS アプリの Certificate \(証明書\) を更新後、Bitrise の Code Signing の設定を更新する \- Qiita](https://qiita.com/kusokamayarou/items/1f418e54b610e6459112)
[Bitrise](https://www
AWS Lambda&Seleniumでサイトから定期的に情報を取得する
#はじめに
[AWS Advent Calender](https://qiita.com/advent-calendar/2020/aws) 22日目担当させていただきます,スライと申します.
#やること
僕が利用しているとあるサイトは毎日0時~6時までメンテナンスでアクセスできないようになっています.そこには大学の講義動画にアクセスするためのURLなどが記載されています.つまり上記のサイトは一日のうち6時間も停止しているわけです.さらに0時~6時といえば(生活リズムの乱れた)学生のゴールデンタイムです.僕にとってもこれは致命的なので,定期的にどこかに情報を保存することにしました.
#システム構成図
![ac.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269896/7d408309-45f9-2c94-6410-9d66f10f8638.jpeg)auth.html・・・ユーザー名とパスワードを入力する画面
ac.html・・・ワンタイムパスワード入力およびデータの表示を行う画面
au
API Gatewayで「Lambdaオーソライザー」と「APIキー認証」を一緒に利用する
# はじめに
タイトル通り、API GatewayでLambdaオーソライザーとAPIキーを同時に設定してみたので、そのまとめです。Lambdaオーソライザーとは、
> Lambda オーソライザー (以前のカスタムオーソライザー) は、Lambda 関数を使用して API へのアクセスを制御する API Gateway の機能です。本稿では説明しませんので、詳しく知りたい方は[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html#api-gateway-lambda-authorizer-flow)を見てください。
今まで、API GatewayのAPIキーと、Lambdaオーソライザーをそれぞれ片方ずつ利用したことがあったのですが。今回、API実行数の制御を行いながら、認可をする必要があったため同時に利用することにしました。
# Lambdaオーソライザー
“`golang
package m
AWS LambdaでAmazon EFSを利用してみた
本記事は [株式会社ピーアールオー(あったらいいな!を作ります) Advent Calendar 2020](https://qiita.com/advent-calendar/2020/pro-japan1) の22日目です
昨日(21日目)は @koinori さんの「[【2020年12年版】Flutter + Android SDK + VS Code にてリモートホストにある Remote Container から別ネットワークの実機でデバッグ](https://qiita.com/koinori/items/a1cd4df34ce599a59175)」でした
是非、よろしければこちらもどうぞ
[2019年のカレンダーはこちら](https://qiita.com/advent-calendar/2019/pro-japan1)# 経緯
プロジェクトでAWS Lambdaを利用してデプロイしているのだが、Lambda実行時に利用する「/tmp ディレクトリのストレージ」が上限の「512MB」を超えてしまいデプロイができなくなった今後も開発は継続する予定で緊急な対応が
AWS Lambda External ExtensionsをAWS SAMで管理する
# SAMに移行する対象のモジュール
[python-example-extension](https://github.com/aws-samples/aws-lambda-extensions/tree/main/python-example-extension)にアップされているこちらのモジュールですが、AWS Command Line Interfaceベースの手順になっているので、こちらをAWS SAMベースに置き換えるのを目標にしたいと思います。
まず、元々のモジュールを確認しておきます。
“`bash
├── extensions
│ └── python-example-extension
└── python-example-extension
├── extension.py
└── requirements.txt
“`* extensions
* コンパイル言語やシェルスクリプトではなく、スクリプト言語であるPythonを実行対象とするため、一度`python-example-extension`というシェルスクリプト
aws lambdaでPython + Selenium + Headless Chromium
Lambdaでスクレイピングを定期実行してDynamoDBに貯めるアプリケーションを作っています。
早速ググるとたくさん記事が出てくる。ありがたい。
こちらの記事を参考にさせていただいてトライしていたが、2日くらいハマってしまったポイントがあったのでメモ。* chromedriver 2.43 https://chromedriver.storage.googleapis.com/index.html?path=2.43/
こちらの`chromedriver_linux64.zip`
* serverless chrome v1.0.0-55 https://github.com/adieuadieu/serverless-chrome/releases/tag/v1.0.0-55
`stable-headless-chromium-69.0.3497.81-amazonlinux-2017-03.zip`* selen
カスタムdockerイメージでlambdaを動かす
[AWS & Game Advent Calendar 2020](https://qiita.com/advent-calendar/2020/aws-game) の 20 日目の記事になります。
## agenda
* はじめに
* 利用するツール
* ローカルでの実装
* Lambdaへのdeploy
* 動作チェック
* まとめ## はじめに
2020年のre:Inventで、Lambdaがコンテナをサポートする発表がありました。
今までカスタムランタイムでLambdaを動かすには面倒なセットアップが必要でしたがこのアップデートでかなり使いやすくなるのではないでしょうか。この記事ではコンテナを使ってミニマムの(bashを使ってイベントデータを表示させる)関数をLambdaで動作させる解説を行います。
## 利用するツール
* sam: Lambdaのdeploy
* docker: コンテナイメージのビルドなど
* ECR: イメージのレジストリ
* bash: 何でも良いのですが今回はbashでechoをさせます### samのインストール
samはH
Lambdaポリシーが変わった部分を見てみる
# はじめに
下記のようにLambdaに関するポリシーが変更されるとのことで、どう変わるのか見てみました
名前としては `_` が追加されているみたいで、頑張ってるなぁって思いますね– Before
– AWSLambdaFullAccess
– AWSLambdaReadOnlyAccess
– After
– AWSLambda_FullAccess
– AWSLambda_ReadOnlyAccess# ポリシーの確認
とりあえずCLIから落としてみたかったので下記で叩いてテキストまで落としました“`bash
#!/bin/bashfunction get_policy_statement () {
POLICY_NAME=$1
POLICY_ARN=arn:aws:iam::aws:policy/${POLICY_NAME}
POLICY_VERSION=$(aws iam get-policy –policy-arn ${POLICY_ARN} \
–query ‘Pol
Lambdaから指定したS3に入出力するGlueを起動させる話
##背景
仕事の中でAWSのGlueを使う機会があり、その際に指定したS3からデータを読み込み、Glueでデータを加工して別の指定したS3バケットにデータを出力することを行ったので、その流れと方法をメモがてら残しておこうと思います。##構築内容
##S3(Input)->Glue->S3(Output)
###引数(パラメータ)を取得“`python:
# パラメータを取得
args = getResolvedOptions(sys.argv, [
‘JOB_NAME’, ‘source_path’, ‘out_path’])
# 各パラメータを変数におく
source_path = args[‘source_path’]
out_path = args[‘out_p
Word2vecモデルをAWS Lambdaで動かしてみる
## はじめに
これは,[mediba Advent Calendar 2020](https://qiita.com/advent-calendar/2020/mediba) 23日目の記事です.
medibaの野崎です.
現在は,バックエンドエンジニアとして [au Webポータル](https://portal.auone.jp/) などのプロダクトの担当し,バックエンドアプリケーションやインフラ範囲の運用を行っています.
また,兼務でテクノロジーセンターにて,TechLeadチームにも所属しています.
※参考:[2020年度エンジニア組織について | mediba Creator × Engineer Blog](https://ceblog.mediba.jp/post/622861990882328576/2020%E5%B9%B4%E5%BA%A6%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E7%B5%84%E7%B9%94%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)—
[
lambdaとfargateの性能テストを行ったので
lambda + serverless framework + node express と ecs + fargete + node express
で性能比較をしたので、メモ処理時間 100ms/req ほど、処理時間の大半はcpuはほぼ使わずDB待ち
ざっくり lamda 512MB 300台(?) と fargate 2core 1台で同程度の負荷に耐えられた
アプリのタイプによって比率は大きく変わると思うけど、参考までに
Lambda関数をRuby コンテナイメージを作って動かしてみた
[Increments × cyma (Ateam Inc.) Advent Calendar 2020](https://qiita.com/advent-calendar/2020/increments-cyma) の21日目は、Increments株式会社の @kiitan が担当します
## はじめに
Amazon Web Services(AWS)は、オンラインで開催中の年次イベント「AWS re:Invent 2020」で、[AWS Lambdaのコンテナサポートを発表](https://aws.amazon.com/jp/blogs/news/new-for-aws-lambda-container-image-support/)しました。要するにECRリポジトリにPushしたイメージをLambda関数で使うことができるようになったよってことでした。そこで早速触ってみました.
## 作るもの
S3に動画をアップロードされると gif 作成してS3にアップロードしてくれるLambda関数を作っていきます.## 実装
今回のファイル構成は以下のようになります.
Slack Bolt で簡単に複数ワークスペースにインストールできるアプリを開発しよう!(TypeScript, Lambda, Serverless Framework によるサンプルコード付き)
![Slack_User-token-install.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110368/8ddbd1be-c1d0-f7f1-b1a6-d4aac5b030ba.gif)
# はじめに
## おやくそく
この記事は [「Develop fun!」を体現する Works Human Intelligence #2 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/whi-2) の 21 日目の記事です。
昨日は @etnk さんの「[自然言語処理のサービスのAWS上での構成を考えてみる](https://qiita.com/etnk/items/92b2871d332d923236c7)」でした。本日は私 @irongineer が Slack 開発をより Develop fun! していくような記事をお届けできたらと思います。
記事を書くのはこれが初めてです。どうぞよろしくお願いいたします。
LINE WORKSで担当のBacklog課題をリマインドしてみる
# はじめに
普段タスク管理に[Backlog](https://backlog.com/ja/)を利用しているが、1日のはじめにその日の自分の担当課題を通知してくれる仕組みが欲しいと思い、LINE WORKSボットを使って自分の担当であり開始日が過ぎている課題をプッシュ通知してみた。# 構成
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/cf2cd314-9d1d-18be-e40e-80b7d4a0a1fc.png)
– AWS Lambdaを使ったサーバーレス構成とする。
– Lambda関数はEventBridge (CloudWatch Events) からのCronイベントによってトリガーされる。
– LINE WORKSのパラメータはSystems Managerパラメータストアで管理する。
– LINE WORKSのアクセストークンは定期的に実行されるLambdaにより更新される# 仕様
– Python 3.7
– デプロイ: [Serverless Frame
Webサイトパフォーマンスを継続的に計測する基盤をサーバーレスアーキテクチャで作った話
[DMMグループ Advent Calendar 2020](https://qiita.com/advent-calendar/2020/dmm)の22日目の記事です。
# はじめに
こんにちは、EXNOAでフロントエンドエンジニアとして働いている[@_kentaro_m](https://twitter.com/_kentaro_m)です。
本記事ではWebサイトパフォーマンス (以下、パフォーマンス) を継続的に計測する基盤のプロトタイプを作った話をしたいと思います。
# モチベーション
まずはパフォーマンスを継続的に計測したいモチベーションについて、触れておこうと思います。
昨今ではGoogleが[Core Web Vitals](https://developers-jp.googleblog.com/2020/05/web-vitals.html)と呼ばれるWebサイトにおけるユーザー体験の質を定性的に示す指標を公開し、ユーザー体験がこれまで以上に重要視される流れになることが予想されます。
そして、パフォーマンスはユーザー体験に大きな影響を与える要素となってお
AmplifyでREST API作成する時、ファンクション名にハイフンを付けない
※すでにこの内容は [@jagaimogmog](https://twitter.com/jagaimogmog) 氏によりAmplifyチームに要望いただきました。感謝!
そもそもfunction nameにハイフン使いたい!という要望もあると思うので、そちらは開発チームも認識しているようです
とりあえずは $amplify add function 時にエラーを吐いてほしいとコメント
— Jaga@AWS Amplify (@jagaimogmog) December 18, 2020
SAMとCodebuildでLambdaの自動deployをする with Julia on Layer
本記事は「[AWS LambdaとServerless Advent Calendar 2020](https://qiita.com/advent-calendar/2020/lambda)」の23日目の記事です。
LambdaとServerlessのadvent calendarなのでLambdaの事を書きます。
コンテナをそのままLambdaのランタイムに使えるようになってたりとかそのへんが気になってますが、個人的に好きな組み合わせを紹介いたします。# これやります
**SAM(Serverless Application Model)**にて管理するLambdaを**CodeBuild**を使ってdeployをする話を書きます。
githubにpushすると、CodeBuildが実行されてLambdaがdeployされる仕組みです。
ついでにcustom runtimeを使って実行するJuliaのLayerもdeployします。## 何がいいのか
SAMやChalise、Serverless FrameworkなどのツールはCLIからtestからdeployまで出
Serverless Framework・Lambda・TypeScriptプロジェクトの環境構築の一例
### プロジェクト作成
“`
$ serverless create –template aws-nodejs-typescript –path serverless-sample-project
“`
AWS – Create
https://www.serverless.com/framework/docs/providers/aws/cli-reference/create/
・オプションの省略
serverless → sls
–template → -t
–path → -p### npm
“`
$ npm init –yes
→package.json作成、–yesオプションは-yでもOK(なしでもOK)
$ npm install
→package.jsonに記載されたパッケージを一括でインストール
“`### serverless.ts
“`region“` を“`ap-northeast-1“` に設定“`ts:serverless.ts
const serverlessConfiguration: AWS = {
pr
Lambda関数でEmbulkコマンドを実行してみる(カスタムランタイム使用)
# はじめに
この記事は [BeeX Advent Calendar 2020](https://qiita.com/advent-calendar/2020/beex) の12/20の記事です。==
12/16にLambdaでEmbulkコマンドを実行する記事を書きました。[Lambda関数でEmbulkコマンドを実行してみる](https://qiita.com/handy-dd18/items/c7d3e02b69ca5ebbbe83)
この時はpythonのベースイメージを使用して実行しましたが、よくよく考えるとBashで実行できるのであればそっちのほうが余計な実装が不要なので、同じことをLambdaのカスタムランタイムを使用してやってみました。
以下を参考にさせていただいています。
Embulk以外の詳細はこちらをご確認ください。
* [AWS Lambdaのコンテナイメージ上のkubectlコマンド実行してEKSを管理してみる](https://yomon.hatenablog.com/entry/2020/12/lambda_container_kubectl
dynamodbで配列の取り扱いについて
今回はdynamodbのデータの操作方法でとても詰まったのでそれを記事にしたいと思います。
dynamodbの個人的なメリット
* 実は無期限の無料利用枠。25GBのストレージ量であれば常に無料で利用可能
* 普段Vueを書いているのでjavascriptの記述で書けるのは魅力的(lambdaのランタイムにNode.jsを選択)dynamodbはテーブルの正規化ができないので、なるべく少ないテーブル数で構築するのが好ましいらしい。
### まず簡易掲示板を作ると仮定する
期待するテーブル: PostsテーブルとCommentsテーブル– Postsテーブルのスキーマ
–
“`
id: number
name: string
text: string
“`– Commentsテーブルのスキーマ
–
“`
id: string
post_id: string
name: string
comment: string
“`サンプルデータをdynamodbで表現すると
“`json
{
“id”: “1”,
“name”: “テスト1”,
“text