モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

AWS Lambda 関数を cron のように定期実行

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2017/10/08
最終更新最終更新
2020/02/12
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    サーバーレスとDevOpsに注力中。AWSを使った効率的なインフラ構築が得意です。

    0
    ステッカーを贈るとは?

    AWS Lambda のトリガーに CloudWatch の定期実行イベントを設定することで、cron のように Lambda 関数を定期実行できます。利用例として、ここでは SQS にメッセージを一つだけ登録する処理を Lambda 関数で定期実行してみます。複数のインスタンスで動作する何らかのアプリケーションがバッチ処理を行う際、SQS からメッセージを取得できたインスタンス以外では処理をスキップするように実装することで、重複実行を回避しつつバッチ処理アプリケーションを冗長化できます。

    Lambda 関数がメッセージを登録する SQS の作成

    Create New Queue をクリックします。

    Queue Name を設定します。SQS におけるメッセージは、取得された後 Default Visibility Timeout の間だけ他のクライアントから参照できなくなります。その間にメッセージを取得したクライアントは SQS からメッセージを削除する必要があります。

    Lambda 関数が利用する IAM ロールの作成

    Create Role をクリックします。

    Lambda 権限が付与されたロールを作成します。

    AmazonSQSFullAccess を追加します。

    ロール名を設定します。

    Lambda 関数の登録

    Create a function をクリックします。

    Blueprints は利用せずに Author from scratch をクリックします。

    Lambda 関数名および先程作成した IAM ロールを設定します。

    関数を以下のように編集して Save します。

    'use strict';
    
    const AWS = require('aws-sdk');
    const sqs = new AWS.SQS();
    
    const QUEUE_URL = 'https://sqs.ap-northeast-1.amazonaws.com/123412341234/my-queue-20171007';
    
    exports.handler = function(event, context, callback) {
      var params = {
        MessageBody: 'test test',
        QueueUrl: QUEUE_URL
      };
      // SQS にメッセージを送信します。
      // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#sendMessage-property
      sqs.sendMessage(params, function(err, data) {
        if (err) {
          console.log(err);
        }
        else {
          console.log(data);
        }
      });
    };
    

    Test を実行すると SQS にメッセージが一つ追加されます。

    CloudWatch イベントの登録

    Create rule をクリックします。

    一分毎に Lambda 関数を実行するように設定します。ここで直接 SQS にメッセージを追加することもできますが、Lambda 関数を介することで SQS が空でない場合など処理の分岐が柔軟に行えます。

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    サーバーレスとDevOpsに注力中。AWSを使った効率的なインフラ構築が得意です。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • AWS EC2 インスタンスの選定方法
        準仮想化と完全仮想化 AWS のインスタンスタイプが準仮想化と完全仮想化のどちらの仮想化技術を採用したハードウェアであるかによって、使用できる AMI (OS) が異なるのは以下の理由によります。 準仮想化 ParaVirtualization (PV) において OS は自分が仮想化用のハードウェア上で動作していることを知っています。つまり仮想化用にカスタマイズされた専用の OS が必要になりま...
        yuki_coderyuki_coder9/30/2017に更新
        いいねアイコン画像0
      • OpenVPN で二つの VPC をつなぐための設定
        インターネット VPN (Virtual Private Network) には二拠点間の通信を暗号化する方式によって IPsec-VPN や SSL-VPN などがあります。OpenVPN は SSL-VPN の実装のひとつです。AWS VPC を二つ用意してそれらを OpenVPN で接続してみます。 VPC の構成 myvpc-1 (10.1.0.0/16) mysubnet-1-1 (10...
        takuyatakuya9/11/2017に更新
        いいねアイコン画像0
      • Windows Server EC2 インスタンスへの CAL インストール
        サムネイル画像-8bae43ea3b
        Windows サーバを AWS EC2 インスタンスとして起動した後は、RDP 接続が必要となります。RDP 接続を行なうためには Remote Desktop Services (RDS) ライセンスが必要となります。 Windows Server のライセンスは、管理用途の RDS 接続を許可しています。その際に RDS ライセンスは不要です。ただし、[同時接続数が 2 という制限があります...
        けんちゃんけんちゃん12/18/2023に更新
        いいねアイコン画像0
      • AWS Lambda の基本的な使い方
        サムネイル画像-9285163f6b
        AWS Lambda はイベントドリブンな「関数」を登録できるサービスです。例えば S3 に画像がアップロードされたときにサムネイル用のサイズに加工する処理が記述された関数を登録できます。基本的な使い方をまとめます。 事前準備 関数の登録はブラウザで AWS コンソールにログインして行うこともできますが、本ページでは AWS C
        yuki_coderyuki_coder2/18/2020に更新
        いいねアイコン画像0
      • AWS 落穂拾い (Data Engineering)
        Kinesis Kinesis Streams データは 3 AZ にレプリケーションされます。Amazon Kinesis Data Streams FAQs 24 時間 (既定値) から 1 年までデータ保持できます。[Changing the Data Retention Period](https://docs.aws.amazon
        yuki_coderyuki_coder1/22/2025に更新
        いいねアイコン画像0