🐕

LambdaからECS Taskを起動する(Node.js)

2021/06/03に公開

LambdaからECS Taskを起動して、Lambda では扱えない時間が掛かる処理をECS Task に行わせる。
特定の条件で必要となる処理を、Lambda で検知して、 ECS Task で実行することを想定している。

const ecs = new AWS.ECS();
const taskResult = await ecs
  .runTask({
    cluster: ECS_CLUSTER,
    taskDefinition: ECS_TASK_DEFINITION,
    launchType: 'FARGATE',
    count: 1,
    networkConfiguration: {
      awsvpcConfiguration: {
        subnets: [ECS_SUBNET],
        assignPublicIp: 'ENABLED',
      },
    },
  })
  .promise();

if (taskResult.failures != null) {
  console.error(taskResult.failures);
}

実行するためには、lambda に次の権限を与える。

  • ecs:RunTask
  • iam:PassRole

参考にした記事
https://qiita.com/tu-kun/items/581c0369ce9a4268a08b

参考記事ではPythonだったが、Node.jsを扱うので記事を記載した。

Discussion