Closed lenarmazitov closed 4 years ago
Hi guys. I have a question: Does AppSync support TransactWriteItems resolver? Because I have such error on eu-central-1:
{ "data": { "createMessage": null }, "errors": [ { "path": [ "createMessage" ], "data": null, "errorType": "MappingTemplate", "errorInfo": null, "locations": [ { "line": 2, "column": 3, "sourceName": null } ], "message": "Unsupported operation 'TransactWriteItems'." } ] }
with the following request template:
## [Start] Determine request authentication mode ** #if( $util.isNullOrEmpty($authMode) && !$util.isNull($ctx.identity) && !$util.isNull($ctx.identity.sub) && !$util.isNull($ctx.identity.issuer) && !$util.isNull($ctx.identity.username) && !$util.isNull($ctx.identity.claims) && !$util.isNull($ctx.identity.sourceIp) && !$util.isNull($ctx.identity.defaultAuthStrategy) ) #set( $authMode = "userPools" ) #end ## [End] Determine request authentication mode ** ## [Start] Check authMode and execute owner/group checks ** #if( $authMode == "userPools" ) ## No Static Group Authorization Rules ** ## No Dynamic Group Authorization Rules ** ## [Start] Owner Authorization Checks ** #set( $isOwnerAuthorized = false ) ## Authorization rule: { allow: owner, ownerField: "owner", identityClaim: "cognito:username" } ** #set( $allowedOwners0 = $util.defaultIfNull($ctx.args.input.owner, null) ) #set( $identityValue = $util.defaultIfNull($ctx.identity.claims.get("username"), $util.defaultIfNull($ctx.identity.claims.get("cognito:username"), "___xamznone____")) ) #if( $util.isList($allowedOwners0) ) #foreach( $allowedOwner in $allowedOwners0 ) #if( $allowedOwner == $identityValue ) #set( $isOwnerAuthorized = true ) #end #end #end #if( $util.isString($allowedOwners0) ) #if( $allowedOwners0 == $identityValue ) #set( $isOwnerAuthorized = true ) #end #end #if( $util.isNull($allowedOwners0) && (! $ctx.args.input.containsKey("owner")) ) $util.qr($ctx.args.input.put("owner", $identityValue)) #set( $isOwnerAuthorized = true ) #end ## [End] Owner Authorization Checks ** ## [Start] Throw if unauthorized ** #if( !($isStaticGroupAuthorized == true || $isDynamicGroupAuthorized == true || $isOwnerAuthorized == true) ) $util.unauthorized() #end ## [End] Throw if unauthorized ** #end ## [End] Check authMode and execute owner/group checks ** #set($dateTime = $util.time.nowISO8601()) ## [Start] Set the primary @key. ** #set( $modelObjectKey = { "pk": $util.dynamodb.toDynamoDB($ctx.args.input.pk), "sk": $util.dynamodb.toDynamoDB("M#${dateTime}#${identityValue}") } ) ## [End] Set the primary @key. ** ## [Start] Prepare DynamoDB PutItem Request. ** $util.qr($context.args.input.put("createdAt", $util.defaultIfNull($ctx.args.input.createdAt, $util.time.nowISO8601()))) $util.qr($context.args.input.put("updatedAt", $util.defaultIfNull($ctx.args.input.updatedAt, $util.time.nowISO8601()))) $util.qr($context.args.input.put("__typename", "EntityItem")) $util.qr($context.args.input.put("target", "Chat")) #set( $condition = { "expression": "attribute_not_exists(#pk)", "expressionNames": { "#pk": "pk" } } ) #if( $context.args.condition ) #set( $condition.expressionValues = {} ) #set( $conditionFilterExpressions = $util.parseJson($util.transform.toDynamoDBConditionExpression($context.args.condition)) ) $util.qr($condition.put("expression", "($condition.expression) AND $conditionFilterExpressions.expression")) $util.qr($condition.expressionNames.putAll($conditionFilterExpressions.expressionNames)) $util.qr($condition.expressionValues.putAll($conditionFilterExpressions.expressionValues)) #end #if( $condition.expressionValues && $condition.expressionValues.size() == 0 ) #set( $condition = { "expression": $condition.expression, "expressionNames": $condition.expressionNames } ) #end { "version": "2018-05-29", "operation": "TransactWriteItems", "transactItems": [ { "table": "EntityItem-bwwoag6fybal3d5y3wfirf7zru-dev", "operation": "PutItem", "key": $util.toJson($modelObjectKey), "attributeValues": $util.dynamodb.toMapValuesJson($context.args.input), "condition": $util.toJson({ "expression": $condition.expression, "expressionNames": $condition.expressionNames, "expressionValues": $condition.expressionValues, "returnValuesOnConditionCheckFailure": false }) } ] } ## [End] Prepare DynamoDB PutItem Request. **
Hi guys. I have a question: Does AppSync support TransactWriteItems resolver? Because I have such error on eu-central-1:
with the following request template: