【发布时间】:2021-02-10 01:03:00
【问题描述】:
我有一个问题,到目前为止我无法确定根本原因。 我有一个 AWS 步进机器,一旦将文件上传到 S3 存储桶,就应该调用它。 到目前为止,当我将文件上传到 S3 存储桶时,StartAt 键 (StartAt: ImgUploadedEvent) 中定义的 lambda 函数启动,正如我在 lambda 日志中看到的那样。
代码如下:
stepFunctions:
stateMachines:
ValidateImageStateMachine:
loggingConfig:
level: ALL
includeExecutionData: true
destinations:
- Fn::GetAtt: [ StepFuncLogGroup, Arn ]
definition:
Comment: "This state function validates the images after users upload them to S3"
StartAt: ImgUploadedEvent
States:
ImgUploadedEvent:
Type: Task
Resource:
Fn::GetAtt: [ImgUploaded, Arn]
End: true
下面是声明为 StepMachine 开始的 lambda 函数 从日志中可以看出,一旦我在 S3 中修改了一个对象,这个 lambda 函数确实会被调用
functions:
ImgUploaded:
handler: src/stepfunctions/imageWasUploadedEvent.handler
events:
- s3:
bucket: !Ref AttachmentsBucket
existing: true
iamRoleStatements:
- Effect: "Allow"
Action:
- "states:StartExecution"
Resource:
- "*"
为了检查 Step Function 是否正常工作,我创建了一个日志组并将其添加到 Step Function。
resources:
Resources:
StepFuncLogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: /aws/stepfunctions/${self:service}-${self:provider.stage}
我看到此云监视日志组与 AWS 控制台中的 Step 函数正确关联。
但是,当我将对象上传到 S3 时,我确实在 lambda 函数的日志中看到它被调用,但我在 Step Function 日志组中看不到任何日志
我的问题是:
Step Function 是否确实有效,只是 Step Function 中的日志有问题?
或者是 Step Function 本身不起作用,而 lambda 函数只是一个完全独立于 Step Function 的 lambda 函数?
我必须做什么才能让 lambda 函数作为 Step Function 的一部分触发?
BR
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda serverless-framework aws-step-functions