概要
graphql-ttl-transformerを利用すると、
AmplifyでDynamoDBをschema.graphqlで管理する場合、例えば以下のように属性の後に@ttlを付けるとTTL(Time To Live)を設定できます
schema.graphql
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
を追記します
./amplify/backend/api//transform.conf.json
"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
が返ってきます