C#에서 Alexa용 테이블에 데이터를 추가. 다시 시도.

5674 단어 C#알렉사AWS_SDK

2018년 11월 16일 추가:



전회도 그렇습니다만, 이번 쓴 방법은 「 저수준 API 를 이용한 테이블 조작」이었던 것을 알았습니다.
그렇다고 하는 것은 물론 「고레벨 API」가 있어, 그것을 사용하면 보다 간단하게 기술할 수 있는 것 같습니다.
죄송합니다.
고수준 API를 사용하여 데이터를 추가하는 방법 에 대해 썼습니다.

소개



이번에는 테이블에 데이터를 추가하는 방법을 다시 설명합니다.
이것도 기본적으로는 테이블 작성과 같고, 요청을 만들고, 그것을 PutItemAsync 메소드에 건네주는 것으로 데이터를 추가할 수 있습니다.

전달할 데이터는 ユーザーID(文字列)保存したい値(キーバリューペア)입니다.
키 가치 쌍은 Dictionary<string, AttributeValue>
            var tableName = "TestTable";
            var intentRequest = input.Request as IntentRequest;
            var sign = intentRequest.Intent.Slots["StarSign"].Value;

            //ユーザーIDを`intentRequest`から取得
            var userId = input.Session.User.UserId;

            //永続アトリビュートの構築
            var attrs = new AttributeValue();
            //こんな感じで、任意のデータをキーバリューペアの形で追加していく。
            //この「attrs」変数を「attributes」列の値として、あとでリクエストを構築する。
            attrs.M.Add("sign",new AttributeValue{S="ふたご座"});

            //リクエストの構築
            var request = new PutItemRequest
            {
                TableName = tableName,//追加先のテーブル名
                //各カラムの値を指定
                Item = new Dictionary<string, AttributeValue>
                {
                    {"id",new AttributeValue{S= userId} },
                    {"attributes",attrs}
                }
            };

            //テーブルに追加
            var result = client.PutItemAsync(request).Result;
attributes 열에 넣을 데이터를 만듭니다. 이것은 AttributeValue의 인스턴스입니다.
AttributeValue는 다음과 같은 속성을 가지며 이들은 저장할 데이터 유형입니다.

Alexa 기술은 이 "M"속성을 사용합니다.
이 프로퍼티는 Dictionary<string,AttributeValue> 형태이므로, 키(문자열)와 밸류(이것 또 AttributeValue)를 넣어 갑니다.
이번에는 유저의 발화로부터 취득한 별자리의 정보를 보존하므로, 「sign」를 키로 해, 밸류에 new AttributeValue{ S = "ふたご座"} 를 넣습니다.
만약, 복수 있는 경우는 같게 해 「M」프로퍼티에 Add 해 갑니다.

이렇게 하여 attributes 열에 넣을 데이터를 만든 후 이를 사용하여 PutItemRequest 를 만듭니다.

요청이 완료되면 PutItemAsync 메서드에 전달하면 지정된 테이블에 데이터가 추가됩니다.

AWS 콘솔에서 확인하면 다음과 같이 Node.js 버전의 스킬로 생성된 테이블과 동일한 형식으로 데이터가 추가되었음을 알 수 있습니다.



이것으로 공식 트레이닝 제4회를 C#로 쓸 수 있을 것입니다.

오, 데이터를 얻는 것을 잊었다.

좋은 웹페이지 즐겨찾기