タグ

lambdaに関するokinakaのブックマーク (21)

  • AWS Lambdaデプロイツール lambroll v1をリリースしました - 酒日記 はてな支店

    AWS Lambda用のデプロイツール、lambroll の v1.0 を2024年2月10日にリリースしたのでお知らせです。 github.com リリースして早速ですが v1.0.0 には一部のフラグ名がv0と異なるというバグがあるので、v1.0.1 以降をご利用ください。 v0.x と v1 の変更点 リポジトリ にまとめてありますが、簡単に解説します。 非互換変更 lambroll archive zipのバイナリを、標準出力ではなくファイルに書き出します デフォルトのファイル名 function.zip(--dest オプションで指定可能) に書き出すようになりました。 --dest - を指定することで、v0と同様に標準出力に書き出すことができます。 lambroll diff コマンドは、常に短縮型の unified 形式で出力します --unified オプションは廃止され

    AWS Lambdaデプロイツール lambroll v1をリリースしました - 酒日記 はてな支店
  • Lambda+SQS 構成での可視性タイムアウトに気を付けよう! | DevelopersIO

    こんにちは、稲葉です。 最近、Lambda+SQS 構成での開発で可視性タイムアウトの設定で躓いた箇所があった為、 その共有と対処法について、今回記事にしたいと思います。 躓いた箇所 Lambda+SQSで構成して、SQSからのメッセージをトリガーにしてLambdaを実行していました。このLambdaは最大4回ループ、また1回の処理でも比較的時間がかかる処理を行います。 実際に動かしてみた所、処理が完了したはずなのに再実行されるといった意図しない動作をしました。そのため、まずはLambdaのログを確認。しかし、ログを確認した所、エラーは発生しておらず正常に動作してました。 となると、問題があるのはSQS の設定だと考え、色々調べた結果。遂に、原因を突き止めました! ズバリ、可視性タイムアウトの設定が原因でした! と言うより、可視性タイムアウトは特に設定していなかったため、デフォルトの30秒

    Lambda+SQS 構成での可視性タイムアウトに気を付けよう! | DevelopersIO
  • New RelicでAWS Lambdaをモニタリングする | iret.media

    概要 私が開発運用を担当している社内サービスでは以前よりAWS上のメトリクスやログを New Relic に集約するための仕組みを導入していましたが、その仕組みをバージョンアップする機会に公式ドキュメントを読み直すことで手順と仕組みを理解できたので整理して記載します。 New Relicのサーバーレスモニタリング 「AWS、Azure、またはGoogleCloudからサーバーレス機能を監視します。すべての機能を1か所で視覚化し、トラブルシューティングし、警告します。」 サーバーレスのモニタリング | New Relic Documentation https://docs.newrelic.com/jp/docs/serverless-function-monitoring/overview/ 以下のクラウドサービスに対応しています。 AWS Lambda Google Cloud Fun

    New RelicでAWS Lambdaをモニタリングする | iret.media
  • 一括で Lambda 関数のログを New Relic へ転送する設定を行う | iret.media

    Install and configure New Relic logging for AWS Lambda with CloudWatch logs, so you can use enhanced log management capabilities. さて、Lambda 関数のログは CloudWatch Logs に保存されるため New Relic へ転送するためには、やはりサブスクリプションフィルターの設定が必要になります。 関数が少数であれば、特に問題ないですが 例えば、マイクロサービスとして Lambda 関数を利用すると、かなりの数になってしまうことも多いのではないでしょうか。 大量に存在する場合は、工夫して一括で設定したいところです。 シェルスクリプトと AWS CLI を駆使してやってみます。 1 つのロググループに AWS CLI でサブスクリプションフィルターを

    一括で Lambda 関数のログを New Relic へ転送する設定を行う | iret.media
  • AWS でバッチ処理・定期実行する4つの方法

    4つのバッチ処理・定期実行方式の詳細情報それぞれのバッチ処理・定期実行方式について詳細を見ていきます。 EC2について使用するAWSサービスEC2 処理概要Linux系OSで用いられる定時実行機能であるcronのコマンドを使用する メリット昔からよく使われているcronの知識が使える デメリットEC2インスタンスを起動しておく必要があり、使っていない時間もコストがかかる 障害に弱い。EC2サーバに障害があると終わる サーバが複数になると管理が大変 SQS×ECS使用するAWSサービスEventBridge SQS ECS 処理概要EventBridgeでキューを生成。ECSコンテナでキューを取得して実行する メリットECSを起動しておくため、コンテナの起動時間を要さない。 デメリットEventBridgeでキューを生成するが、EventBridgeはまれに1 つのイベントに対して複数回トリ

    AWS でバッチ処理・定期実行する4つの方法
  • AWSサーバーレス環境でのロギング - Qiita

    はじめに 最近、プロジェクトで運用回りの設計を行う機会があったので、その際に学習したことをまとめました。AWSLambdaなどを使っている方でロギングに興味があるけど、まだ良く理解できていないという方のためになれば幸いです。ここではサーバレス環境でのロギングの基について解説しています。 また、監視に関した記事も投稿していますので、そちらも興味がございましたら一読下さい。 ログ戦略 マイクロサービスの場合、ログ戦略がとても重要になってきます。 マイクロサービスは複数のサービスから構成されているため、ログ戦略を間違えると調査が困難になり得るからです。ただし、AWSの場合は何でもかんでもログを出力するのは間違いです。標準的なログ出力機能を備えているサービスも多いため、重複が多くなりコスト増につながります。つまり、適切なログのみを出力する必要があります。 Lambdaのログ戦略 開発環境と

    AWSサーバーレス環境でのロギング - Qiita
  • インターネットアクセス可能な VPC Lambda を作成してみた | DevelopersIO

    はじめに アノテーション株式会社の hato です。 VPC に接続した Lambda 関数(VPC Lambda)はインターネットアクセスが必要な場合、一般的に NAT ゲートウェイやルートテーブルの構築が必要です。 一連の構築の流れは AWS ナレッジセンターにて公開されていますが、実際に構築したことはなかったのと、お問い合わせ頂いた際に備えて画面キャプチャを取得するため、やってみました。 なお、一連の流れを確認することが目的のため、NAT ゲートウェイと NAT インスタンスなど、AWS ナレッジセンター内に記載のある選択肢の詳細には触れませんのでご注意ください。 完成図 プライベートサブネットに接続した Lambda 関数が、NAT ゲートウェイを経由してインターネットに接続できる環境を目指します。 今回の構築ではサブネット等はシングル構成ですが、高可用性を維持するには冗長化をご検

    インターネットアクセス可能な VPC Lambda を作成してみた | DevelopersIO
  • CloudFront で Lambda@Edge を使って OpenID Connect (OIDC) 認証

    CloudFront と S3 を使ってサーバーレスなウェブサイトを構築し、特定のユーザーにのみ公開するために Google, GitHub など外部の認証プロバイダ (IdP) を使って認証をおこなう方法です。CloudFront ではリクエスト中継時に Lambda 関数を実行し認証などの処理をおこなうことができるため、それを使うことにします。 OpenID Connect による認証シーケンス CloudFront にアクセスした際のシーケンスは以下のようになります。 構築手順 OpenID Connect (OIDC) による認証をおこなう Lambda 関数を Widen/cloudfront-auth というツールを使って生成します。様々な認証プロバイダに対応していますが、ここでは Google で認証し、特定ドメインのメールアドレスのユーザーのみをアクセス許可してみます。 ※

    CloudFront で Lambda@Edge を使って OpenID Connect (OIDC) 認証
  • AWS Lambda with SAM Template to subscribe an SQS to an SNS Topic.

    This block diagram describes an SNS Topic that has an SQS Subscription and a Lambda that fires off when a message is received by the SQS Queue. If you are like me, you created a simple SAM Template that defined the Lambda AWS::Serverless::Function definition that has an SQS Queue as its event source. While that is most of the solution you would find that messages never flow into your SQS Queue. Yo

    AWS Lambda with SAM Template to subscribe an SQS to an SNS Topic.
  • AWS SAMにおける環境管理のベストプラクティス | 株式会社CyberOwl

    こんにちは、エンジニアインターンの佐藤です。 SAMを使えば、LambdaAPI Gatewayの再現をローカルで行うことができ、そのデプロイもできます。しかし、API Gatewayにはステージがあったり、Lambdaにはエイリアスがあったりと、どれを活用するべきなのかまとまっている記事がありませんでした。 この記事では、そのわかりにくい概念から説明し、SAMデプロイのベストプラクティスを紹介していきます。 またSAMについては、2つ記事を出しているので、ぜひ見てみてください。 ・AWS SAM + DockerAWSサーバーレス環境をローカル構築する ・CloudFrontなしでS3をHTTPSカスタムドメインでホスティングしてみた ※SAMのバージョンは1.24.1を使用しています API Gatewayのステージ Lambdaのエイリアスとバージョニング template.ya

    AWS SAMにおける環境管理のベストプラクティス | 株式会社CyberOwl
  • AWS Lambdaで使いたい環境変数をAWS SAM CLIでどうするか - Qiita

    はじめに 環境変数の扱いについて、戸惑いがありましたのでまとめます。 用途や仕様の背景が理解し切れて一ませんが、少なくとも現状はベストエフォートとは思えず、改善が進むと嬉しいです。 やっていたことの概要 言語:Rust(記事としては、Rustに依存する内容ではないです) 作っていたもの:AWS Lambda関数 動作確認の方法:後述(※) デプロイの方法:AWS SAM CLI(sam deploy) その他:AWSの設定はCloudFormation(template.yaml)に集約 ※動作確認の方法 AWS SAMを使うとローカルでLambda関数の動作確認が可能ですが、私の環境ではビルドが遅くデプロイ直前までは、cargo runで動作確認を行っていました。 動作確認タイミング 動作確認の例 動作確認環境

    AWS Lambdaで使いたい環境変数をAWS SAM CLIでどうするか - Qiita
  • [チュートリアル] Amazon SQSメッセージを処理するLambda関数を作成してみた | DevelopersIO

    こんにちは、CX事業部 IoT事業部の若槻です。 Amazon SQSは、AWS上で疎結合でスケーラブルなシステムを実装するのに役立つフルマネージド型のメッセージキューイングサービスです。 Amazon SQS(サーバーレスアプリのためのメッセージキューサービス)| AWS しかし私は今までAmazon SQSを使う機会がなかなか無く、いい加減触ってみようかなと思っていたところ、ちょうど良さそうなチュートリアルを見つけたので、今回やってみました。 やってみた やってみたのは、次のAmazon SQSメッセージを処理するLambda関数を作成するチュートリアルです。 チュートリアル: Amazon SQS で Lambda の使用 - AWS Lambda 実行ロールを作成する Lambda関数実行用のIAMロールを作成します。 https://console.aws.amazon.com

    [チュートリアル] Amazon SQSメッセージを処理するLambda関数を作成してみた | DevelopersIO
  • AWS Lambda の arm64 アーキテクチャで Go を実行するためのカスタムランタイムを使った SAMテンプレートの紹介 | DevelopersIO

    やってみた arm64 対応で必要だったポイントを説明します。 重要なのは Lambda の設定を記述したtemplate.yamlと、ビルドの設定を記述したMakefileの2箇所だけです。 ディレクトリ構成 . ├── README.md ├── hello-world │   ├── Makefile │   ├── go.mod │   ├── go.sum │   ├── main.go │   └── main_test.go ├── samconfig.toml └── template.yaml Go のランタイムを使うわけではないので Lambda の設定には一切 Go の文字はないです。 Runtime で Amazon Linux 2 のイメージを指定 Architectures でリスト形式で arm64 を指定 Metadata の BuildMethod で後述

    AWS Lambda の arm64 アーキテクチャで Go を実行するためのカスタムランタイムを使った SAMテンプレートの紹介 | DevelopersIO
  • AWSでバッチ処理を実装する際の選択肢とサービス比較

    処理が複雑でジョブの依存関係を定義したい場合は、AWS Batch 単体で制御するか、より複雑な場合は Step Functions を用いて Lambda、ECS(Fargate)、AWS Batch(Fargate) を組み合わせる。 AWSにおけるバッチ処理の選択肢 ざっくりとした選択肢は下記。 Lambda ECS(Fargate) AWS Batch(Fargate) これらのサービスに実際は SQS や Step Functions を組み合わせることもあるので選択肢はさらに広がる。 ちなみに、SQS + Fargate(常時起動でポーリング) という構成や、SQS + Lambda + Fargate(都度実行) という構成は、AWS Batch が Fargate に対応した現在は特にメリットがないので取り扱わない。 2021/5/2 追記 「常時リクエストがくるユースケー

    AWSでバッチ処理を実装する際の選択肢とサービス比較
  • Handling webhooks with EventBridge, SAM and SAR

    Applications I worked on in the last decade were rarely isolated from the rest of the world. Most of the time, they had many interactions with other applications out there. From time to time, some of these integrations are using WebSockets, which makes our integration realtime. But much more common integration is using webhooks to send us new changes, and give us some API or SDK to allow us to com

    Handling webhooks with EventBridge, SAM and SAR
  • Lambdaを部分的にTerraformで管理する

    『ブログのインフラ構成を改善する』 にて残った以下の課題。 しかしこれによりWAFの ウェブACL x 1とルール x 1 の使用料が月6ドルが掛かってしまうので、そのうち(1)のLambda@Edgeでアクセス制限す流方法に変更しようと思う。 ということでWAFからLambda@EdgeによるBASIC認証へ移行する。 目的 今回の目的は以下4つ。 WAFをやめてBASIC認証で保護する TerraformLambdaを管理するが関数コードは管理しない Lambdaのビルド&デプロイはTerraform外から行う ClojureScript + shadow-cljsでLambdaを作る WAFをやめてBASIC認証で保護する 『ブログのインフラ構成を改善する』 では「TerraformからWAFv2を使ってみたい」ということでブログ開発環境のアクセス制限に使用してみた。 とりあえず使

  • Lambdaをどう管理する? - すきま風

    Terraformでインフラコードを管理しているとLambdaの管理は割と悩ましい問題になる。 Terraformで管理したいのはインフラコードであってアプリケーションコードではないのだが、 TerraformLambdaのresourceを定義するためにはアプリケーションコードが必要になってしまうからだ。 当初考えていた手段は以下の通り terraform repositoryにlambda zip fileを置く lambda zip fileをs3で管理する terraform repositoryでapplication codeも管理してしまう terraformを諦めてSAM CLIを利用する etc ... できるだけterraformでの管理を行いたかったので、当初 02. を検討していたが、2020/08時点でterraformにある既知の不具合のせいで s3上のzip

    Lambdaをどう管理する? - すきま風
  • [アップデート] Lambda から共有ファイルストレージの EFS が利用可能になりました! | DevelopersIO

    日のアップデートLambda から EFS が利用可能になりました! AWS Lambda support for Amazon Elastic File System now generally available 何が嬉しいのか S3 を介さないファイル連携 Lambda でファイル連携を行うには一般的に S3 を介して利用されてきましたが、そもそも連携するためには連携させたいシステムが S3 にアクセスできるような仕組みになっている必要がありますが、オンプレからそのまま AWS に移行してきたようなシステムの場合、S3 へアクセスするための改修にハードルを感じる方も少なからず居られたかと思います。 今回、EFS に対応したことで単純にファイルシステムとしてファイル連携することが可能となりますので、そういった改修をせずとも Lambda と連携させた処理が実装しやすくなるのではな

    [アップデート] Lambda から共有ファイルストレージの EFS が利用可能になりました! | DevelopersIO
    okinaka
    okinaka 2020/06/17
    便利そう
  • S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO

    どうも!AWS勉強中の西村祐二@大阪です。 みなさんLambdaは使ってますでしょうか。 サーバレスでいろんなことができるので個人的にかなり好きなサービスです。 Lambdaは様々な使い方ができますが S3と連携してファイルがアップロードされたらLambdaで 何かしらの処理を実行するなどの使い方をしている方多いのではないでしょうか。 そんな時に重要になってくるのが冪等性です。 今回はLambdaの冪等性をDynamoDBの条件付き書き込みという機能を利用して 冪等性を実現してみたいと思います。 なんで冪等性が必要なのか Lambdaはたまに2回以上実行されるときがあるからです 例えば Lambdaでアクセスログの集計処理などを行っている場合、 複数回処理されると複数回集計されて結果がおかしくなるときがあります。 また、複数のファイルをまとめてアップロードした際に 何らかの理由で一部のファ

    S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO
  • AWS LambdaでPhantomJS日本語フォント対応 | RCO Ad-Tech Lab Blog

    1年ぶりにこんにちは。エンジニアの永田智章です。 みなさん、AWS Lambda触ってますかー? 自分は最近どっぷり浸かりすぎて勝手に社内エバンジェリストみたいになってます・・・。 今回はそんなLambdaのお話。 LambdaPhantomJSでスクリーンショット撮ろうーと思って いざやってみるとこんな感じ。日フォントが出ない・・・。 いい方法ないかなーと探し回ってみたものの、どこにも見つからない! AWSのDiscussion Forumsに直接聞いていた方(おそらく中国の方)もいましたが、 なかのひとから「やりたきゃ自前でがんばって」と無慈悲な返答がきています・・・。 で、仕方なく自前でがんばってみた結果、それなりにいい具合に対応できたので手順を公開しますー。 1. 開発環境の準備 自分はVirtualBox + VagrantでCentOS6.4のVMを用意しましたー。 ht

    AWS LambdaでPhantomJS日本語フォント対応 | RCO Ad-Tech Lab Blog