質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

解決済

1回答

1458閲覧

AWS Lambdaの実行時の挙動について

rfvujm2

総合スコア9

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2020/11/13 09:40

AWSのLambdaの挙動について質問させていただきたいです。

Teratailで少し前に質問させていただいたいた者です。( https://teratail.com/questions/303166 )

現在AWSのRoute53を使用していて、CloudWatch Logsでクエリログを収集し、定期的にlambdaでpythonを使用したプログラムを実行させ、CloudWatch LogsからS3へクエリログを転送しています。

前回質問させていただいた内容に少し関連しているのですが、Lambdaで
client = boto3.client('logs')
response = client.create_export_task(
)
を実行した時の挙動についての質問です。

現在この関数を毎日0:10に走らせていて、タイムアウトは30秒に設定しています。
CloudWatch Logsに関数の実行ログも保存していて、そちらを確認すると Duration は長くても15秒ほどなので安定して稼働していることが確認できています。
しかし、S3の方の保存時間を確認すると、遅いものだと0:13などに保存されているものがあります。

お聞きしたいのは、"何故関数の実行が終了した後にS3に保存されるということが起きるのか"、です。
私の認識ではLambda関数実行中にCloudWatch Logs→S3への転送が行われている、という認識でした。そのため、S3に記録されている保存時間が実行時間外、ということはありえないのではないかと思っています。

この認識は間違っているのでしょうか?
Lambdaがどのような動作をしているのかイマイチわかっておらず、的を得ていない質問かもしれないのですが、詳しい方がいらっしゃいましたら、ご回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私の認識ではLambda関数実行中にCloudWatch Logs→S3への転送が行われている、という認識でした。

ここが下記の内容に合ってないとと思います。create start task は非同期呼び出しのようなので、呼び出しに成功してもその瞬間にエクスポートは終わってないと考えられます。

https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateExportTask.html

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

投稿2020/11/14 03:48

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rfvujm2

2020/11/17 05:36

お返事遅くなりまして申し訳ありません。回答ありがとうございます。 非同期呼び出しについて調べ、納得致しました。 関数を走らせることに成功した時点でLambdaが終了し、その後も関数はエクスポートを続けているのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問