Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Choose your framework/language

Gen1 DocsLegacy

Page updated Oct 16, 2024

Amplify生成のAWSリソースを変更する

Amplify GraphQL APIは、様々な自動生成された基盤となるAWSサービスとリソースを使用します。これらの基盤となるリソースをカスタマイズして、デプロイされたスタックを特定のユースケースに最適化できます。

Amplifyアプリでは、CDK"L2"または"L1"構築物を使用してすべての基盤となるリソースにアクセスできます。返されたスタックの.resourcesプロパティを使用してL2構築物として生成されたリソースにアクセスするか、.resources.cfnResourcesプロパティを使用してL1構築物として生成されたリソースにアクセスしてください。

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { data } from './data/resource';
const backend = defineBackend({
data
});
const { cfnResources } = backend.data.resources;
for (const table of Object.values(cfnResources.amplifyDynamoDbTables)) {
table.pointInTimeRecoveryEnabled = true;
}

Amplify生成のAppSync GraphQL APIリソースのカスタマイズ

すべてのカスタマイズをbackend.data.resources.graphqlApiまたはbackend.data.resources.cfnResources.cfnGraphqlApiに適用してください。例えば、AppSync GraphQL APIのX-Rayトレーシングを有効にするには:

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { data } from './data/resource';
const backend = defineBackend({
data
});
const { cfnResources } = backend.data.resources;
cfnResources.cfnGraphqlApi.xrayEnabled = true;

データモデル用のAmplify生成リソースのカスタマイズ

モデル型名をbackend.data.resources.amplifyDynamoDbTables["MODEL_NAME"]に渡して、その特定のモデル型に対して生成されたリソースを変更してください。例えば、Todo @model型のDynamoDBテーブルでタイムトゥリブを有効にするには:

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { data } from './data/resource';
const backend = defineBackend({
data
});
const { cfnResources } = backend.data.resources;
cfnResources.amplifyDynamoDbTables["Todo"].timeToLiveAttribute = {
attributeName: "ttl",
enabled: true,
};

例 - DynamoDBテーブルの請求モードを設定する

DynamoDBテーブルのDynamoDB請求モードを「PROVISIONED」または「PAY_PER_REQUEST」に設定してください。

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { BillingMode } from "aws-cdk-lib/aws-dynamodb";
import { data } from './data/resource';
const backend = defineBackend({
data
});
const { cfnResources } = backend.data.resources;
cfnResources.amplifyDynamoDbTables['Todo'].billingMode = BillingMode.PAY_PER_REQUEST;

例 - DynamoDBテーブルのプロビジョニング済みスループットを設定する

各モデルテーブルとそのグローバルセカンダリインデックス(GSI)にプロビジョニングされたデフォルトProvisionedThroughputをオーバーライドしてください。このオーバーライドは、「DynamoDBBillingMode」が「PROVISIONED」に設定されている場合にのみ有効です。

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { data } from './data/resource';
const backend = defineBackend({
data
});
const { cfnResources } = backend.data.resources;
cfnResources.amplifyDynamoDbTables["Todo"].provisionedThroughput = {
readCapacityUnits: 5,
writeCapacityUnits: 5,
};

例 - DynamoDBテーブルのポイントインタイムリカバリを有効にする

各モデルテーブルのDynamoDBポイントインタイムリカバリを有効/無効にしてください。

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { data } from './data/resource';
const backend = defineBackend({
data
});
const { cfnResources } = backend.data.resources;
cfnResources.amplifyDynamoDbTables['Todo'].pointInTimeRecoveryEnabled = true;