【发布时间】:2022-02-09 00:32:18
【问题描述】:
我正在尝试使用无服务器框架来部署一个调用几个 lambda 的步进函数。这是我的 serverless.yml:
org: bizrob
app: flexipod-2-queue
service: flexipod-2-queue
frameworkVersion: "2 || 3"
custom:
region: eu-west-1
provider:
name: aws
runtime: nodejs14.x
plugins:
- serverless-step-functions
functions:
pullSqlSvr:
handler: flexipod-2-queue/pullSqlSvrData.pullSqlSvr
environment:
REGION: ${self:custom.region}
API_VERSION_S3: "2006-03-01"
API_VERSION_SQS: "2012-11-05"
SQS_QUEUE_URL: !Ref "MyQueue"
sendToDataLake:
handler: queue-2-datalake/sendToDataLake.sendBatchToQueue
environment:
REGION: ${self:custom.region}
API_VERSION_S3: "2006-03-01"
API_VERSION_SQS: "2012-11-05"
stepFunctions:
stateMachines:
flexipodFlow:
name: flexipodFlow
definition:
StartAt: pullSqlSvr
States:
pullSqlSvr:
Type: Task
Resource:
Fn::GetAtt:[pullSqlSvr, Arn]
Next: sendToDataLake
sendToDataLake:
Type: Task
Resource:
Fn::GetAtt:[sendToDataLake, Arn]
End: true
resources:
Resources:
MyQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "flexipod"
当我运行无服务器部署时,我看到以下错误:
将 flexipod-2-queue 部署到 stage dev (us-east-1, “serverless-admin-2”提供程序)无法生成 IAM 策略声明 对于任务状态 { 类型:“任务”,资源:“Fn::GetAtt:[pullSqlSvr, Arn]', Next: 'sendToDataLake' } 无法生成 IAM 策略声明 对于任务状态 { 类型:“任务”,资源:“Fn::GetAtt:[sendToDataLake, Arn]',结束:真 }
× Stack flexipod-2-queue-dev 部署失败(72s) 环境: win32,节点 16.1.0,框架 3.0.0,插件 6.0.0,SDK 4.3.0 凭证:无服务器仪表板、“serverless-admin-2”提供程序 (https://app.serverless.com/bizrob/apps/flexipod-2-queue/flexipod-2-queue/dev/us-east-1/providers) 文档:docs.serverless.com 支持:forum.serverless.com 错误:github.com/serverless/serverless/issues
错误:CREATE_FAILED: FlexipodFlow (AWS::StepFunctions::StateMachine) 资源处理程序返回消息:“无效的状态机定义: 'SCHEMA_VALIDATION_FAILED:值不是有效的资源 ARN /States/pullSqlSvr/Resource,SCHEMA_VALIDATION_FAILED:值不是 /States/sendToDataLake/Resource' 处的有效资源 ARN(服务: AWSStepFunctions;状态码:400;错误代码:无效定义
请问有什么解决办法吗?
【问题讨论】:
标签: amazon-web-services aws-lambda serverless-framework aws-step-functions