概要
graphql-ttl-transformerを利用すると、
AmplifyでDynamoDBをschema.graphqlで管理する場合、例えば以下のように属性の後に@ttlを付けるとTTL(Time To Live)を設定できます
type Message @model @key(fields: ["fromUserId", "toUserId"]) {
fromUserId: String!
toUserId: String!
message: String!
ttl: AWSTimestamp! @ttl
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
この状態でamplify pushすれば該当属性(上の例だとttl)にTTLが設定されます
また、TTLを設定可能な型はAWSTimestampとIntのみです
導入
npm install --save graphql-ttl-transformerした後、
./amplify/backend/api/<API名>/transform.conf.jsonに下記のようにtransformersを追記します
"transformers": [
"graphql-ttl-transformer"
]
注意
Amplify ConsoleなどでCI/CDをする場合、ビルド時にamplifyPush --simpleすると思うのですが、
graphql-ttl-transformerがamplifyPush時に必要になるため、amplifyPushより前にnpm installもしくはnpm ciする必要があります
これをしていない場合、ビルド時にUnable to import custom transformer moduleが返ってきます