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

Page updated Apr 30, 2024

Maintenance ModeYou are viewing Amplify Gen 1 documentation. Amplify Gen 1 has entered maintenance mode and will reach end of life on May 1, 2027. New project should use Amplify Gen 2. For existing Gen 1 projects, a migration guide and tooling are available to help you upgrade. Switch to the latest Gen 2 docs →

ストレージの設定

Amplify CLIのstorageカテゴリを使用すると、クラウド接続ファイルおよびデータストレージを作成および管理できます。次の場合にstorageカテゴリを使用してください:

  1. アプリコンテンツ(画像、オーディオ、ビデオなど)をパブリック、保護、またはプライベートストレージバケットに保存する場合、または
  2. アプリデータをNoSQLデータベースに保存し、REST API + Lambdaでアクセスする場合

新しいストレージリソースの設定

次のコマンドを実行して、新しいストレージリソースを設定できます:

amplify add storage

Amplifyを使用すると、Amazon S3を使用したアプリコンテンツストレージ(画像、オーディオ、ビデオなど)またはAmazon DynamoDBを使用したNoSQLデータベースを設定できます。

S3ストレージの追加

? Please select from one of the below mentioned services:
> Content (Images, audio, video, etc.)
NoSQL Database
? Please provide a friendly name for your resource that will be used to label this category in the project:
> mystorage
? Please provide bucket name:
> mybucket

プロンプトに従って、コンテンツストレージのリソース名を入力します。

Amplify CLIで作成されたストレージリソースは保持機能が有効になっており、データの偶発的な削除または損失を防ぎます。したがって、amplify remove storageを実行してもストレージリソースは削除されず、AWSコンソールで手動で削除する必要があります。

S3アクセス権限

次に、Amazon S3バケットのアクセス権限を設定します。authカテゴリをまだセットアップしていない場合は、Amplify CLIがauthカテゴリを有効にするためのワークフローをガイドします。

? Restrict access by?
> Auth/Guest Users
Individual Groups
Both
Learn more

注意: amplify update storageを実行すると、Amazon S3バケットのアクセス権限を変更できます

Auth/ゲストユーザーアクセス

Auth/Guest Usersを選択して、個別ユーザーの認証ステータスに基づいて権限をスコープします。次の質問で、認証ユーザーのみがリソースにアクセスできるか、認証ユーザーとゲストユーザーがアクセスできるかを選択できます:

? Who should have access:
Auth users only
Auth and guest users

次に、認証ユーザー(および前に選択した場合は未認証ユーザー)のアクセススコープを設定するよう求められます。

? What kind of access do you want for Authenticated users?
> ◉ create/update
◯ read
◯ delete
? What kind of access do you want for Guest users?
◯ create/update
> ◉ read
◯ delete

認証ユーザーへのアクセス許可を付与すると、/public//protected/{cognito:sub}//private/{cognito:sub}/プレフィックスで始まるバケット内のオブジェクトに対して指定されたCRUD操作が許可されます。{cognito:sub}は、認証ユーザーのCognito IDの下位です。

ゲストユーザーへのアクセス許可を付与すると、/public/プレフィックスで始まるバケット内のオブジェクトに対して指定されたCRUD操作が許可されます。

個別グループアクセス

Individual Groupsを選択して、Cognito User Groupsに基づいてアクセス権限をスコープします

? Select groups:
◉ EMPLOYEE
> ◉ MANAGER

次に、選択した各Cognito User Groupに許可するCRUD操作を選択します

? What kind of access do you want for EMPLOYEE users?
◯ create/update
> ◉ read
◯ delete
? What kind of access do you want for MANAGER users?
◉ create/update
◯ read
> ◉ delete

注意:ここで選択されたCRUD操作は、特定のプレフィックスの下のオブジェクトだけでなく、バケット内のすべてのオブジェクトに適用されます。

注意:Auth/Guest user accessIndividual Group accessを組み合わせる場合、グループのメンバーであるユーザーには、認証ユーザー権限ではなく、グループの権限のみが付与されます。

S3 Lambdaトリガー

最後に、S3イベントに応答して実行できるLambda関数を設定するオプションがあります。

? Do you want to add a Lambda Trigger for your S3 Bucket? (y/N)

このワークフローの詳細については、こちらをご覧ください。

完了です。コンテンツストレージが設定されました。ライブラリのストレージドキュメントにアクセスして、新しく作成されたS3バケットをアプリに統合してください。

NoSQLデータベースの追加

? Please select from one of the below mentioned services:
> Content (Images, audio, video, etc.)
NoSQL Database
? Please provide a friendly name for your resource that will be used to label this category in the project:
> dynamo2e1dc4eb
? Please provide table name:
> dynamo2e1dc4eb

プロンプトに従って、NoSQLデータベースのリソース名を入力します。次に、テーブル作成ウィザードを実行します。最初に、テーブルの列を作成します:

You can now add columns to the table.
? What would you like to name this column: id
? Please choose the data type: string
? Would you like to add another column? Yes

次に、インデックスを指定する必要があります。「インデックス」、「パーティションキー」、「ソートキー」、「グローバルセカンダリインデックス」の概念については、こちらで詳しく説明されています。

? Please choose partition key for the table: id
? Do you want to add a sort key to your table? (y/N)
? Do you want to add a Lambda Trigger for your Table? (y/N)

テーブルのLambdaトリガーを設定したい場合は、オプションがあります。このワークフローの詳細については、こちらをご覧ください。

完了です。NoSQLデータベースが設定されました。