AWS StepFunction执行updateBackendAPI任务时出现GraphQL schema文件未找到错误
解决AWS Step Functions调用updateBackendAPI时的"Transform GraphQL schema file not found"错误
问题描述
在AWS Step Functions中执行updateBackendAPI任务时触发AmplifyBackend.AmplifyBackendException,错误详情:
Transform GraphQL schema file not found(服务:AmplifyBackend,状态码:404,请求ID:f9e800ba-3a10-4d13-a5e9-71adf9e010dc)
已确认Amplify存储桶中存在对应的GraphQL文件,调用参数如下:
{ "resourceType": "aws-sdk:amplifybackend", "resource": "updateBackendAPI", "region": "sa-east-1", "parameters": { "ResourceConfig": { "AdditionalAuthTypes": [ { "Mode": "API_KEY", "Settings": { "Description": "API Key for schema: schematest_API", "ExpirationTime": 123 } }, { "Mode": "AWS_IAM" } ], "DefaultAuthType": { "Mode": "AMAZON_COGNITO_USER_POOLS", "Settings": { "CognitoUserPoolId": "sa-east-1_oeVlGNYF8" } }, "Service": "AppSync", "TransformSchema": "type testeModel @model { testeCampo: String! } type Query { orquestrador(input: String): String @function(name: \"orquestrador-staging\") @auth(rules: [{allow: private}]) getFrontend: AWSJSON @function(name: \"getFrontend-dev\") @auth(rules: [{allow: private}]) } ", "ApiName": "dhr2knks3nj2aapigraph" }, "AppId": "dhr2knks3nj2a", "ResourceName": "dhr2knks3nj2aresgraph", "BackendEnvironmentName": "producao" }, "timeoutInSeconds": null, "heartbeatInSeconds": null, "taskCredentials": null }
排查与解决步骤
- 检查TransformSchema的格式与转义:当前直接传入Schema字符串,需确认JSON中的引号转义(如
\"orquestrador-staging\")是否规范,可尝试将Schema压缩为单行,排除换行或空白字符引发的解析问题。 - 验证S3文件路径与权限:确认GraphQL文件在S3桶中的路径符合Amplify预期(通常为
amplify-<AppId>-<BackendEnvironmentName>/backend/api/<ResourceName>/schema.graphql),同时确保Step Functions执行角色具备该文件的s3:GetObject权限。 - 切换参数传入方式:
TransformSchema支持直接传字符串或S3文件路径,若当前方式失败,可尝试传入S3路径(格式如s3://<bucket-name>/path/to/schema.graphql)。 - 核对环境与资源名称:确认
BackendEnvironmentName和ResourceName与实际Amplify后端环境、API资源名称完全一致,注意大小写敏感。 - 查看CloudWatch日志:通过
aws-amplify-backend/<AppId>/<BackendEnvironmentName>日志组查看详细错误信息,定位具体失败原因。
内容的提问来源于stack exchange,提问作者Leonardo Soares Bezerra
相关产品推荐
相关产品推荐

