dynamodbに登録する際は以下のjson形式を使用して下さい
{
"question_id": 1000, # int形式
"next_choices": [ # 必須項目では無いので、あってもなくても構いません。
{
"choice_id": 2000,
"choice_text": "hogeの方法" # 提示する選択肢のテキスト
},
{
"choice_id": 2001,
"choice_text": "barの方法"
}
],
"free_response": "fugaの方法はこちらです。" # 問題の解決方法や、選択肢の説明
}- aws-cliをインストールする
aws configureを実行しておく- AWSアカウントを発行する
- AWSアクセスキーをIAMコンソールから発行する
- 発行した情報を、
aws configureにコピペする- この順番をとることで、セキュリティリスクとなるクレデンシャル情報の流出を極限まで抑えることができる
注意点
複数のIAMユーザーを使い分けるには、プロファイルを設定する必要が有ります。
ここではその方法について触れないので、必要な場合は自力で調べて下さい。
- S3にデプロイ用のバケットを作成する。
- github actionsの為のIDプロバイダを設定する
- IDプロバイダ用にPolicyを作成する。(作成例は下記の通り)
- Secretを必要な分だけ記述する
AWS_S3_BUCKET: 先程作成したバケット名をいれるAWS_ACCOUNT_ID: AWSのデプロイ用アカウントIDAWS_GITHUB_OIDC_ROLE_NAME: 作成したロール名OPENAI_API_KEY: OpenAIのAPIキー。現時点では機能が未実装
ここでは多くの権限が付与されていますが、本来は必要最低限の権限を付与するよう、注意が必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"dynamodb:*",
"cloudformation:*",
"s3:*",
"lambda:*",
"apigateway:*",
"iam:CreateRole",
"iam:DeleteRole",
"iam:GetRole",
"iam:PassRole",
"iam:DeleteRolePolicy",
"iam:GetRolePolicy",
"iam:AttachRolePolicy",
"iam:DetachRolePolicy",
"iam:PutRolePolicy",
"iam:TagRole"
],
"Resource": "*"
}
]
}.open_ai_api_keyファイルを作成し、OpenAIのAPIキーを追加
.pr_numファイルを作成し、任意のPR番号かmainと記載する
sam build && sam local start-api --parameter-overrides PrNumber=$(cat .pr_num) OpenAiApiKey=$(cat .open_ai_api_key)