LoginSignup
10
4

More than 5 years have passed since last update.

LambdaからECSでタスクを走らせようとした時にハマった

Last updated at Posted at 2018-08-25

LambdaからrunTask関数を使ってECS上で新しいタスクを走らせたかったので簡単にメモ
今回はFargateは使いません。

index.js
const AWS = require('aws-sdk');
const s3 = new AWS.S3({region:'ap-northeast-1'});
const ecs = new AWS.ECS({apiVersion:'2014-11-13',region:'ap-northeast-1'});
//~~省略~~
const params = {    
    taskDefinition: 'YOURTASKDEFINITION',
    cluster: 'YOURCLUSTER',
    launchType: 'EC2',
    overrides: {
        containerOverrides: [
            {
                command: ['echo HelloWorld!'],
                name: 'YOURCONTAINERNAME'
            },
        ],
    }
};
ecs.runTask(params, function (err, data) {
    if (err) console.log(err);
    else console.log(data);
};
//~~省略~~

これでタスクを投げても動かなかった、Lambda側でもエラーは吐かれていないのでハマった。
ECSのコンソール画面から今回使用したいクラスターの画面に向かって、タスクメニューから直接手作業で新しいタスクを実行させてみたところ
RESOURCE:MEMORY
とのエラーが画面に表示された。

どうやらクラスターに含まれるインスタンスのメモリ容量を超えたサイズでタスク定義をするとこのようなエラーがでるらしい。
新しいインスタンスをスケールするか、タスク定義で使用するメモリを少なくするかして対応したところ、Lambdaから上手くタスクが投げられた。

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4