AWS Mobile SDK for Xamarin은 이제 AWS SDK for .NET에 포함됩니다. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.
DynamoDB를 사용한 데이터 저장 및 검색
Amazon DynamoDB
다음 자습서에서는 DynamoDB에 객체를 저장하는 앱에 DynamoDB 객체 지속성 모델을 통합하는 방법을 설명합니다.
프로젝트 설정
필수 조건
이 자습서를 시작하기 전에 .NET 및 Xamarin용 AWS Mobile SDK 설정의 지침을 모두 완료해야 합니다.
DynamoDB 테이블 생성
DynamoDB 데이터베이스에서 데이터를 읽고 쓰려면 먼저 테이블을 생성해야 합니다. 테이블을 생성할 때 기본 키를 지정해야 합니다. 기본 키는 해시 속성과 범위 속성(선택 사항) 두 가지로 구성됩니다. 기본 및 범위 속성의 사용 방식에 대한 자세한 내용은 테이블 작업을 참조하세요.
-
DynamoDB 콘솔
로 이동하여 테이블 생성을 클릭합니다. [Create Table] 마법사가 표시됩니다. -
아래와 같이 테이블 이름, 기본 키 유형(해시) 및 해시 속성 이름("ID")을 지정하고 계속을 클릭합니다.
-
다음 화면의 편집 필드는 비워 둔 상태에서 계속을 클릭합니다.
-
읽기 용량 단위 및 쓰기 용량 단위의 기본값을 수락하고 계속을 클릭합니다.
-
다음 화면의 알림 보내기: 텍스트 상자에 이메일 주소를 입력하고 계속을 클릭합니다. 검토 화면이 표시됩니다.
-
생성을 클릭합니다. 테이블이 생성되는 데 몇 분 정도 걸릴 수 있습니다.
DynamoDB에 대한 권한 설정
자격 증명 풀이 Amazon DynamoDB에 액세스할 수 있으려면 자격 증명 풀의 역할을 수정해야 합니다.
-
Identity and Access Management 콘솔
로 이동하여 왼쪽 창에서 역할을 클릭합니다. 자격 증명 풀 이름을 검색합니다(자격 증명당 인증된 사용자 및 인증되지 않은 사용자에 대해 하나씩 2개의 역할이 생성됨). -
인증되지 않은 사용자의 역할을 클릭하고(자격 증명 풀 이름에 "unauth"가 추가됨) 역할 정책 생성을 클릭합니다.
-
정책 생성기를 클릭하고 선택을 클릭합니다.
-
권한 편집 페이지에서 다음 그림과 같이 설정을 입력합니다. DynamoDB 테이블의 Amazon 리소스 이름(ARN)은
arn:aws:dynamodb:us-west-2:123456789012:table/Books
와 비슷하며 테이블이 위치한 리전, 소유자의 AWS 계정 번호 및table/Books
형식의 테이블 이름으로 구성됩니다. ARN 지정에 대한 자세한 내용은 DynamoDB의 Amazon 리소스 이름을 참조하세요. -
설명문 추가를 클릭하고 다음 단계를 클릭합니다. 마법사가 앞서 생성한 구성을 표시합니다.
-
Apply Policy(정책 적용)를 클릭합니다.
프로젝트에 DynamoDB용 NuGet 패키지 추가
.NET 및 Xamarin용 AWS Mobile SDK 설정 내 지침의 4단계를 따라 DynamoDB NuGet 패키지를 프로젝트에 추가합니다.
AmazonDynamoDBClient 초기화
초기화된 Amazon Cognito 자격 증명 공급자 및 리전을 AmazonDynamoDB
생성자로 전달한 다음 클라이언트를 DynamoDBContext로 전달합니다.
var client = new AmazonDynamoDBClient(credentials,region); DynamoDBContext context = new DynamoDBContext(client);
클래스 생성
테이블에 행을 기록하려면 행 데이터를 보관할 클래스를 정의합니다. 클래스는 행의 속성 데이터를 보관하는 속성도 포함해야 하며, 콘솔에서 생성된 DynamoDB 테이블에 매핑됩니다. 다음 클래스 선언은 그러한 클래스를 예시합니다.
[DynamoDBTable("Books")] public class Book { [DynamoDBHashKey] // Hash key. public int Id { get; set; } public string Title { get; set; } public string ISBN { get; set; } public int Price { get; set; } public string PageCount { get; set; } public string Author{ get; set; } }
항목 저장
항목을 저장하려면 먼저 객체를 생성합니다.
Book songOfIceAndFire = new Book() { Id=1, Title="Game Of Thrones", ISBN="978-0553593716", Price=4, PageCount="819", Author="GRRM" };
그런 다음 저장합니다.
context.Save(songOfIceAndFire);
행을 업데이트하려면 위와 같이 DDTableRow
클래스의 인스턴스를 수정하고 AWSDynamoObjectMapper.save()
를 호출합니다.
항목 검색
기본 키를 사용하여 항목을 검색합니다.
Book retrievedBook = context.Load<Book>(1);
항목 업데이트
항목 업데이트 방법:
Book retrievedBook = context.Load<Book>(1); retrievedBook.ISBN = "978-0553593716"; context.Save(retrievedBook);
항목 삭제
항목 삭제 방법:
Book retrievedBook = context.Load<Book>(1); context.Delete(retrievedBook);
Xamarin 애플리케이션에서 DynamoDB에 액세스하는 방법에 대한 자세한 내용은 Amazon DynamoDB를 참조하세요.