C#에서 Alexa용 테이블에 데이터를 추가. 다시 시도.
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#로 쓸 수 있을 것입니다.
오, 데이터를 얻는 것을 잊었다.
Reference
이 문제에 관하여(C#에서 Alexa용 테이블에 데이터를 추가. 다시 시도.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shuhey/items/c87aa9109596dc68dba9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 테이블에 데이터를 추가하는 방법을 다시 설명합니다.
이것도 기본적으로는 테이블 작성과 같고, 요청을 만들고, 그것을
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#로 쓸 수 있을 것입니다.
오, 데이터를 얻는 것을 잊었다.
Reference
이 문제에 관하여(C#에서 Alexa용 테이블에 데이터를 추가. 다시 시도.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shuhey/items/c87aa9109596dc68dba9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)