Lambda Layersで解決できることLambdaの実行環境には追加ライブラリが存在しないため、ライブラリを使用する際はデプロイパッケージにライブラリを含める必要がありました。 しかしAWSLambda Layersを使用することで、ライブラリなどの共通コンテンツをレイヤーとして作成することで、パッケージにライブラリを含める必要がなくなりました。Lambda LayersLambda Layersとは、複数のLambda関数で外部ライブラリやビジネスロジックを共有できる仕組みです。 イメージはこんな感じです。 使用するライブラリや共通のビジネスロジックをZIPアーカイブし、Layerに追加することができます。 デプロイパッケージの容量を少なくすることができるためLambdaのソースコードの管理が楽になります。 また依存関係をインストールしてパッケージ化する際に発生するエラーを回

はじめに 2018年のAWS re:Invent では多くの新機能が発表されていましたね。 特にLambda 関連では、 ALB のバックエンドにLambda を指定できるようになったりLambda functions as targets for Application Load Balancers |Networking & Content DeliveryLambda Layers で関数ごとにパッケージングする必要がなくなったり New forAWSLambda – Use AnyProgramming Language and Share Common Components |AWS NewsBlog と、いろいろ興味深い発表がありました。 その中でも、今回はAWSLambda がRuby をサポートしたとのことで、早速触ってみました。 Announc

Rubyを初めて数日の超初心者です。 これまでもLambdaでNode.jsを使っていますが、昨年末にRubyもLambdaに対応したとのことので、Rubyにも手を出してみようと思います。 今回の投稿では、Sinatraをローカル実行で確認したのち、Lambdaに移行するところまでです。 他の方の記事もありましたが、CloudFormationやSAMを使ったりして、まだ知識が追い付かずちょっとわかりにくかったので、LambdaとAPIGatewayをAWS管理コンソールを使って1つ1つ手順を追ってみたかったのです。 また、RailsをLambdaにしたかったのですが、Lambdaが目指すマイクロサービスアーキテクチャ的にRailsシステムまでLambdaに持っていくのはお奨めしないそうで、また今度にします。以下、参考。 https://blog.eq8.eu/article/sinat

みんなが使えるようになりました(追記 2018/11/20) 【祝】Twitterの名前をお天気と連動されるアプリを作った時の技術的な紹介【公開した🌥️】 導入 みなさんこんにちは! 私は将棋プログラムPonanzaの作者、山本一成といいます。Qiita初投稿です。よろしくおねがいします。 いつものようにTwitterをしていた時、ふと思ったんです。 「Twitterの名前の部分が天気のEmojiと連動して変わったら嬉しいな」 つまりこんな感じですね ↓ いつもは、C++など低いレイヤーのプログラムを書くことがメインなので、こういったプログラムを書いたことがあまり経験がないのですが、よしいっちょやってみるかと思ってやってみました。技術選択 さっそく技術選択の段階です。 こういう類のプログラムは技術の選択がとても大切です(たぶん)。 正しい技術選択をすればとても幸せなのですが、間違えると

目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う本物のC++0xプログラマになれるだろう。lambdaとは何ぞやlambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。lambdaを定義しようlambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ
C++14 の Committee Draft が公開された.C++14 は基本的にはC++11 のマイナーバージョンアップであるが,バグフィックスのみを行っている訳ではなく,C++11 の時点で微妙に使いにくかった機能,特にラムダ式については,大きな機能追加が行われている. そこで,本blog では,このエントリから数回に分けて,C++14 のラムダ式について説明してみることにする. 拙い文章になるかとは思うが,読者の理解の助けになれば幸いである. なお,これらの記事を書くにあたって,読者に対してC++11 のラムダ式に対する知識を要求しないように心がけたが, もしかしたら,説明不十分であり,分かりにくい部分があるかもしれない. そのような場合には,本の虫:lambda 完全解説 等,C++11 のラムダについて書かれた記事は多いので, それらの記事を読んでみることを
ラムダ式 (lambda expression, 無名関数(anonymous function, nameless function)、匿名関数)とは、関数を定義するための記法、文法です。 読み方 ラムダ式 らむだしきlambda expresssion らむだ えくすぷれっしょん 無名関数 むめいかんすうanonymous function あのにます ふぁんくしょん nameless function ねいむれす ふぁんくしょん 匿名関数 とくめいかんすう 概要 ラムダ式は、無名関数 ラムダ式は、関数オブジェクトで、ラムダ式は、生成されたクラスのoperator()になります。 ラムダ式は、std::functionに代入できます。 ラムダ式は、STLの引数に使用できます。関数の引数として、ラムダ式を直接書けます。 以前は、関数をその場で定義できず、別途定義したものを利用していま
古 (いにしえ) の「for ループ」や「Iterator」から、Java 8 の「ラムダ式」や「メソッド参照」までを使って、List の要素を出力するサンプルプログラムを書いてみた。 importjava.util.Arrays; importjava.util.Iterator; importjava.util.List; importjava.util.function.Consumer; public class Hoge{ public static void main(String[] args){ final List<String> names = Arrays.asList("Alice", "Bob", "Carol"); // for ループ System.out.println("[for loop]"); for(int i=0; i<names.size
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? このクリスマスシーズンにサンタも驚きな具合で結構バズっているAWSLambdaですが、皆さん結構色々作っているので、なんかネタを追い求めるのもしんどいので、ここまでで見えてきた利用パターンやユースケースをまとめてみたいと思います。Lambdaを誤解を恐れずに言うのであれば、クラウド上でのイベント駆動を実現するためのAWSネイティブな実行基盤です。なんかクラウドネイティブな実行基盤が駄目な方は、ぐだぐだ言わず普通にEC2でやってればよいと思います。イメージとしては下記のような形になります。今までは利用者側がポーリングして聞かなくては行

1: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:23:22.49 ID:aDj/zqBFNIKU.net if文for文使いまくってるのってキモいよな 2: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:24:15.50 ID:/y8HWckGNIKU.net じゃあ代わりにswitchとwhile使う 3: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:24:18.06 ID:afkjonbrNIKU.netswitch 6: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:25:46.44 ID:5e4wCC7eNIKU.net 3重switchできたった 4: 以下、\(^o^)/でVIPがお送りします 2014/12/29(月) 13:25:07.80

[速報]まるでクラウドで走るマクロ言語「AWSLambda」発表。AWS re:Invent 2014Amazon Web Servicesは、同社の年次イベント「AWS re:Invent」を米ラスベガスで開催しています。 2日目の基調講演で発表された「Amazon EC2 Container Service」に続く新機能が、まるでクラウド上でマクロを走らせるような「AWSLambda」の発表です。インスタンスなど明示的にコードを実行する基盤を用意する必要がなく、クラウドの上でコードがそのまま走るため、シンプルで信頼性が高く、しかも容易に記述できるのが特徴です。 発表の内容をダイジェストで紹介します。AWSLambda発表Amazon.com CTO Werner Vogels氏 アプリケーションの基本的要素(Primitives)とはなんだろうか? スプレッドシートの例で考
![[速報]まるでクラウドで走るマクロ言語「AWS Lambda」発表。AWS re:Invent 2014](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f111b939022ed510d02af59ec817c4d6b8aa61849%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttp%253A%252F%252Fwww.publickey1.jp%252Fblog%252F14%252Freinvent201432.jpg&f=jpg&w=240)
本記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 「lambdaの暗黒面」に堕ちたプログラマが可読性とかメンテナンス性とか無視して好き放題コード書いたらこうなった。悪気はなかった。もしかしたら有益な情報が含まれている可能性もあるが、基本的には害悪しかないはずなので、話半分で読んで頂きたいΣ(||゚Д゚)モヒィィィィl 可変長引数に対するカリー化 前回、Proc#curryを利用して関数をカリー化する方法を示した。が、可変長引数をとる関数にはカリー化がうまく作用しない。引数を適用する個数を決めることができないからだ。 [1] pry(main)> f = "foo".method(:gsub).to_proc => #<Proc:0x007fe59112f588 (lambda)> [2] pry(main)> f.arity => -1
本記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 プログラマ厨二病をこじらせるとこんなヒドいことになるという実例を示すものであって、可読性やメンテナンス性についてのツッコミはご遠慮願いたい。が、こういうコードを書いても怒られない世界がくればいいと思うのでみんな関数型言語やればいい( ;゚皿゚)ノシΣ フィンギィィーーッ!!!。 カリー化とは 複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること。 http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96 つまり、多引数の関数を、「1引数の関数を返す関数」に変換することである。 以下の例にある3引数の関数fをカリー化したものは、関
本記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 注意点として、この記事は、プログラマ厨二病のひとつである「ラムダ症候群(λ-Syndrome)」に罹患した患者にRubyを書かせると、どんなヒドいことになるか実例を示したものであり、けしてこのようなプログラミングスタイルを推奨するものではない。 なぜ関数合成? まず、なぜ関数合成が必要か、そのモチベーションを示す。 前回、単なるメソッド呼び出しや一引数の関数適用のためだけにブロックを記述する必要はない、という話をした。 だが、以下のようなSymbolのArrayがあり、各要素をto_sした上でupcaseしたい場合はどうするか? irb(main):003:0> arr = [:user, :entry, :article, :comment, :category] => [:user,
この記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 だって、ブロックって汚いじゃん?仮引数の|x|とかキモイ。 Symbol#to_proc 基本中の基本。 instance method Symbol#to_proc 以下のようなArrayがあって、 irb(main):003:0> arr = [:user, :entry, :article, :comment, :category] => [:user, :entry, :article, :comment, :category] 各要素をto_sしたかったら、 irb(main):004:0> arr.map{|s| s.to_s} => ["user", "entry", "article", "comment", "category"] と書くかわりに、 irb(main)
Haskell では、Y コンビネータが作れないと誤解している人がいるので、できることを示すと同時に、これまで学んだことをまとめてみます。 遅延評価を活かした Y コンビネータ 関数名を用いた再帰を使ってよいなら、Haskell では遅延評価のおかげで、Y コンビネータを定義である Y x = x (Y x) の通りに書けます。 y :: (a -> a) -> a y x = x (y x) Y コンビネータ用の階乗を定義してみましょう。 fact :: Num a => (a -> a) -> a -> a fact = \f n -> if n == 0 then 1 else n * f (n-1) 以下のように動きます。 y fact 4 → 24 でも、この階乗は Haskell っぽくないので、入り口で分岐するように書き直してみます。 fact :: Num a => (a
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く