こちらの記事は6 things I’ve learned in my first 6 months using serverlessの和訳になります。 サーバーレスの世界は適切なツールさえ見つければミドルレイヤーを省けるのでとても良いものです。 10月に行われたServerlessconfの後、自分の会社を全てサーバーレスにすることに決めました。最初の2ヶ月は Python Flask appにLambdaを導入するのに必死でしたが、そのおかげでより良い方法を思いつきました。 そして6ヶ月後、私たちにとって4番目に大きいプロジェクトをサーバーレスでデプロイすることになったのです。以下の内容がデプロイするまでに私たちが学んだ教訓、意見です。 レッスン1 Pythonの使用は避けましょう Flaskは昔ながらのリクエスト、レスポンスのスタイルで、サーバーによって管理されるセッションがあるWeb
既存のLambda FunctionにLambda Layersを導入し、AWS SAMで管理する(Node.js) Summary axiosなどのモジュールに依存した既存のNode.js Lambda Functionがある このfunctionで使用しているモジュールをAWS Lambda Layersに移行し、aws-sam-cliでデプロイする 既存functionで個別にnpm installしていたモジュールを削除し、デプロイしたLayerを使用するように変更する Layer移行後も既存functionが sam local invoke コマンドでローカルで実行できる事を確認する Layerを使うように変更した既存functionをデプロイする 移行した結果 既存functionのサイズを半分以下に削減できた 既存functionの実行時間を半分以下に削減できた AWS S
目的 LINE Bot を使って生活を少し便利にしたい。 背景 最近 LINE をよく使ってるから。 なんかちょっとしたメモとか簡単に確認したいなーと思ったから。 たまたま AWS Lambda の料金を調べたら思っていたよりも安かったので使ってみたくなったから。 この記事のスタートとゴール スタートは、 LINE をすでに使っているが、 API などは使ったことがないところ。 ゴールは、 LINE のグループチャットで特定の発言をしたら特定の内容を返してくれるところ。 LINE Bot を使えるように登録する Messaging API の登録をする。 Messaging APIのご紹介 | LINE Business Center Developer Trial を選ぶ。 LINE BOTの作り方を世界一わかりやすく解説(1)【アカウント準備編】 - Qiita LINE Bot を使
やりたいこと AWS の Lambda を使って動的なHTMLを生成するページを作りたい。 Lambda を使うと自前でサーバーを用意しなくても好きな Python のスクリプトを実行できるので、これを使って動的な HTML を生成するページを作ってみようと思います。 Lambdaでページを作る系の話はすでに結構あるのですが、この前発表された API Gateway の Lambda プロキシ統合 とか Lambdaのデプロイツール apex あたりを組み合わせるともうちょっといい感じにできるのではというのが今回の目的です。 あとスクリプトから HTML を吐くからには、テンプレートエンジンは欠かせないので、実際それらを組み合わせて使えるのか検証兼ねて遊んでみました。 作るもの どんなページを作ってみるかですが、今回は神社を建立することにしました。 Python の有名なテンプレートエンジ
これは初老丸Advent Calendar 2017の15日目の記事です。 S3トリガーのLambda 皆さんLambda使ってますか?Lambdaいいですよね! 特にS3をトリガーに使うと、外部からの処理開始の契機はS3にファイル置くだけだし、どんどん置いていったら適当に並列にLambdaが呼ばれてスケールするしで性能のことも何も考えなくていいので最高です(たぶん)。 ただ、ちょっと注意点もあります。それは、「S3のイベント発火はたまに抜けが出る」という問題です。公式ドキュメントのどこに書いてあるかは探しきれてませんが、実際結構抜けます。 例 ここでは例として以下のようなアーキテクチャを考えます。 適当なバケットを作って、そこにファイルが置かれたらLambdaが起動する 起動したLambdaはそのファイルを処理する 処理が終わったらそのファイルを同じバケット内の「bak」というフォルダに
【アップデート】外部ライブラリ込みの Lambda Function のソースコードもマネジメントコンソールから閲覧・編集できるようになりました こんにちは、藤本です。 本日、AWS Lambda をご利用中の方には地味に嬉しいアップデートがありました。 Announcement: AWS Lambda enables code editing for deployment packages that include custom libraries 今まで Lambda Function は追加ライブラリがないという条件付きで、マネジメントコンソールからソースコードを作成、編集することができました。ライブラリを含めたい場合、ライブラリ込みのソースコードをパッケージ化(zip化)した上でアップロードする必要がありました。またソースコードを閲覧したい場合、API経由でダウンロードして、確認す
大柳です。 最近、お客様のシステムや社内システム向けにAWS Lambdaでコードをよく書いています。 S3への読み書きなどの操作、ファイルの圧縮など、基本的なコードをまとめておくと調べる手間も省け、コード品質も一定に保てると考えて、社内へのナレッジとして整理したので、「AWS Lambdaの基本コード」シリーズとして公開します。 使い勝手と個人的な趣味からPython3系のコードでの紹介となりますが、AWS Lambda構築の手助けとなれば幸いです。 第1回目はAWS LambdaでS3上のファイルを取得しローカルに保存するコードを紹介します。 今回の構成 S3へのファイル格納をトリガーにLambdaが起動、S3に格納されたファイルを取得し、ローカルに保存します。 Lambdaではローカル保存先として/tmpディレクトリに対してファイルを読み書きできます。 LambdaでS3から取得した
大柳です。 「AWS Lambdaの基本コード」シリーズ、第2回目はLambdaからS3へのファイル保存を行います。 前回記事 【AWS Lambdaの基本コード その1】 S3からのファイル取得とローカル保存 | ナレコムAWSレシピ 今回の構成 Lambdaが起動されると、テキストの内容をS3にファイルに保存します。 ローカルの/tmpディレクトリへのファイル保存なしで、直接S3にコンテンツを出力します。 コード コードは以下のようになります。 # ①ライブラリのimport import boto3 from datetime import datetime print('Loading function') # ②Functionのロードをログに出力 s3 = boto3.resource('s3') # ③S3オブジェクトを取得 # ④Lambdaのメイン関数 def lambd
こんにちは、シュガーです。 AWS Lambdaの基本シリーズとして今回はS3のバケットリスト取得方法をご紹介したいと思います。 IAMロールの作成 まず準備としてIAMロールの作成を行います。 今回はLambdaからS3の操作ができるよう権限を割り当てます。 IAMのコンソール画面の左メニューからロールを選択し、「ロールの作成」をクリックします。 ロールタイプはAWSサービスを選択し、その項目の中から「Lambda」を選択します。 次の画面のアクセス権限では、既存のポリシーをアタッチします。 「AmazonS3FullAccess」と検索をし、表示されたポリシーをアタッチしましょう。 最後の確認画面では、ロール名及び説明を明記します。 ここは自分でわかるようなロール名を設定しましょう。 「ロールの作成」をクリックすることでロールの作成が完了です。 Lambda関数の作成 それではLamb
#はじめに 個人アカウントは基本的に無料枠で運用しているので、少しでも請求がある場合はいち早く気づきたいです。 先日、とあるハンズオンイベントで使ったリソースを消し忘れて、最終的に$30ぐらい請求が来てしまいました。。。 CloudWatchで請求アラートは設定していますが、閾値超えが想定の場合、当然見逃すことになり、最終的な請求額に驚くハメになります。 これを防ぐためにLambdaで毎日SlackにAWS料金を通知することにします。 先日LambdaがPython3に対応したので、せっかくだし勉強がてらPython3で実装したい。 ネット上にはNode.jsでの実装例が多いようで、今回はこちらを参考にPython3で実装してみます。 #必要なもの Slack incoming-webhooks URL 取得についてはこちらを参考に 適当なchannel lambda-uploader r
さて、昨日は@k1_styleさんの「WordPressのREST APIを使ったSPAを作りたくて、TerraformでまずはAWS環境整えた話」でした。 Terraformまだ使ったことないんですよね。でも、構築をちまちまやるのは、面倒なので、来年は使ってみたいところです。 この記事はAmazonWebServicesアドベントカレンダー24日目です! ◆ はじめに 2016年12月20日時点のお話です。 初学者向けで、例はすべてnode.jsで書いています。 ほんとに初めてLambdaを触る人向けです。(自分) ◆ Lambda function codeを見てみよう(node.js) まずは、AWSにログインして、「create lambda function」をしてみる。 - 「Blank function」を選択して、次の画面でのTriggerはデフォルトのままNextで遷移し
このように E2E テストに必要な機能を AWS のサービスだけで実現することができます。 また今回利用するヘッドレスブラウザは Google Chrome (以下 Chrome) を使います。 Chrome を利用するメリットとして、盛んに開発が行われており、他のヘッドレスブラウザに比べて最新技術の対応が早いことが挙げられます。 ヘッドレスブラウザのビルド Lambda で動作させる Chrome ですが、執筆時現在 ダウンロードページでは、Lambda で実行できるもの配布されていないため Chromium を使います。 Lambda で動作させる際の制限事項として、Lambda からは /tmp 以外のディレクトリにアクセスができません。 したがって Chromium がアクセスする /dev/shvm を /tmp に変えてやる必要があります。 これらを踏まえて、Amazon Li
最初に 今回はinstagramのユーザ名を指定すると最新のフィードを取得出来るAPIを作っていきます。 私自身、初めて利用するものばかりだったため、誰でもコピペと設定で簡単に出来るよう書いたつもりです。 勉強用サンプルとしてInstagramを使っただけなので、日常的にスクレイピングするのは控えましょう。 各種ツールやサービス ・AWS EC2(Amazon linux) API Gateway AWS Lambda ・各種バージョン python3.6.2 phantomjs-2.1.1 環境設定(Python編) Amazon linux上にPython3の環境を作ります。Vagrantでも問題無いです。 Lambdaのランタイムに合わせて3.6系を選択しています。 この辺りは様々なサイトで解説されているので、わからない場合はそちらを参照してください。 $ sudo yum inst
次にこれらの環境変数を使って要素の判定および通知を行います。実際のコードを見てみましょう。 HTMLを取得し、判定対象をチェックする package lambda import net.ruippeixotog.scalascraper.browser.JsoupBrowser import net.ruippeixotog.scalascraper.dsl.DSL._ import net.ruippeixotog.scalascraper.dsl.DSL.Extract._ import net.ruippeixotog.scalascraper.dsl.DSL.Parse._ import net.ruippeixotog.scalascraper.model._ class ScrapeClient { val url = sys.env("TARGET_URL") val che
この記事は リクルートライフスタイル Advent Calendar 2017 18日目の記事です。 はじめに リクルートライフスタイルでレストランボードの開発を担当しております門脇と申します 今回はバックエンド側のお話をさせて頂こうと思います。 つい最近、どうしてもバッチ処理をおこなわないといけない場面にぶち当たってしまい、渋々作ることにしました 自分の中では、「バッチ処理がこけた」とか「バッチサーバが死んでた」とか、社内外問わずそんなことを耳にする機会がよくあったように思うので、バッチ処理にいいイメージを持っていませんでした。 自分はバッチ処理を書いたことがないので、どういった構成にすればいいのかを自分なりに考えてみたところ、以下のような思考に辿り着きました。 アプリケーション(API)が作動しているサーバでは動かさない → 処理によって負荷が上がりサービス影響が出る可能性があるため
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く