def get_app_db(): """DynamoDBTodo インスタンスを取得します Todo の DynamoDB テーブルを取得し、グローバル変数 _DB に格納します。 このとき環境変数 APP_TABLE_NAME を参照し接続先のテーブル名を決定するため、 デプロイのステージごとに DynamoDB テーブルを変更することができます。 環境変数の定義は .chalice/config.json を参照してください。 envs: DYNAMO_DB_ENDPOINT: 接続する DynamoDB のエンドポイント この環境変数が存在しない場合は、「呼び出し環境のcredentialsと同一の AWSアカウント/リージョンに属するDynamoDB」がエンドポイントとなります。 APP_TABLE_NAME: 接続する DynamoDB のテーブル名 Return: DynamoDBTodo(instance): DynamoDB のエンドポイントとテーブルへのアクセスを内包した DynamoDBTodo インスタンスを返します Examples: get_app_db().list_items() username と query に基づいて Todo を取得します get_app_db().get_item() 特定の Todo を取得します get_app_db().add_item() Todo を新規登録します get_app_db().update_item() Todo を更新します get_app_db().delete_item() Todo を削除します """ global _DB if _DB is None: endpoint = os.environ.get('DYNAMO_DB_ENDPOINT') tablename = os.environ['APP_TABLE_NAME'] _DB = db.DynamoDBTodo( boto3.resource('dynamodb', endpoint_url=endpoint).Table(tablename) ) return _DB
def get_app_db(): global _DB if _DB is None: ## Choose InMemoryTodoDB for non persistence ## For persistence choose DynamoDBTodo #_DB = db.InMemoryTodoDB() print boto3.resource('dynamodb').Table(os.environ['APP_TABLE_NAME']) _DB = db.DynamoDBTodo( boto3.resource('dynamodb').Table(os.environ['APP_TABLE_NAME'])) return _DB
def get_app_db(): global _DB if _DB is None: _DB = db.DynamoDBTodo( boto3.resource('dynamodb').Table(os.environ['APP_TABLE_NAME'])) return _DB