Paso 1: Crear un libro mayor - Amazon Quantum Ledger Database (Amazon QLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 1: Crear un libro mayor

En este paso, creará un nuevo registro de Amazon QLDB denominadovehicle-registration.

Para crear un libro mayor
  1. Revise el siguiente archivo (constants.py), que contiene valores constantes que utilizan todos los demás programas de este tutorial.

    # Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 # # Permission is hereby granted, free of charge, to any person obtaining a copy of this # software and associated documentation files (the "Software"), to deal in the Software # without restriction, including without limitation the rights to use, copy, modify, # merge, publish, distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. class Constants: """ Constant values used throughout this tutorial. """ LEDGER_NAME = "vehicle-registration" VEHICLE_REGISTRATION_TABLE_NAME = "VehicleRegistration" VEHICLE_TABLE_NAME = "Vehicle" PERSON_TABLE_NAME = "Person" DRIVERS_LICENSE_TABLE_NAME = "DriversLicense" LICENSE_NUMBER_INDEX_NAME = "LicenseNumber" GOV_ID_INDEX_NAME = "GovId" VEHICLE_VIN_INDEX_NAME = "VIN" LICENSE_PLATE_NUMBER_INDEX_NAME = "LicensePlateNumber" PERSON_ID_INDEX_NAME = "PersonId" JOURNAL_EXPORT_S3_BUCKET_NAME_PREFIX = "qldb-tutorial-journal-export" USER_TABLES = "information_schema.user_tables" S3_BUCKET_ARN_TEMPLATE = "arn:aws:s3:::" LEDGER_NAME_WITH_TAGS = "tags" RETRY_LIMIT = 4
  2. Utilice el siguiente programa (create_ledger.py) para crear un registro con el nombrevehicle-registration.

    # Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: MIT-0 # # Permission is hereby granted, free of charge, to any person obtaining a copy of this # software and associated documentation files (the "Software"), to deal in the Software # without restriction, including without limitation the rights to use, copy, modify, # merge, publish, distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # This code expects that you have AWS credentials setup per: # https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html from logging import basicConfig, getLogger, INFO from time import sleep from boto3 import client from pyqldbsamples.constants import Constants logger = getLogger(__name__) basicConfig(level=INFO) qldb_client = client('qldb') LEDGER_CREATION_POLL_PERIOD_SEC = 10 ACTIVE_STATE = "ACTIVE" def create_ledger(name): """ Create a new ledger with the specified name. :type name: str :param name: Name for the ledger to be created. :rtype: dict :return: Result from the request. """ logger.info("Let's create the ledger named: {}...".format(name)) result = qldb_client.create_ledger(Name=name, PermissionsMode='ALLOW_ALL') logger.info('Success. Ledger state: {}.'.format(result.get('State'))) return result def wait_for_active(name): """ Wait for the newly created ledger to become active. :type name: str :param name: The ledger to check on. :rtype: dict :return: Result from the request. """ logger.info('Waiting for ledger to become active...') while True: result = qldb_client.describe_ledger(Name=name) if result.get('State') == ACTIVE_STATE: logger.info('Success. Ledger is active and ready to use.') return result logger.info('The ledger is still creating. Please wait...') sleep(LEDGER_CREATION_POLL_PERIOD_SEC) def main(ledger_name=Constants.LEDGER_NAME): """ Create a ledger and wait for it to be active. """ try: create_ledger(ledger_name) wait_for_active(ledger_name) except Exception as e: logger.exception('Unable to create the ledger!') raise e if __name__ == '__main__': main()
    nota
    • En lacreate_ledger llamada, debe especificar un nombre de registro y un modo de permisos. Recomendamos utilizar el modo deSTANDARD permisos para maximizar la seguridad de los datos de su libro mayor.

    • Cuando crea un libro mayor, se habilita de forma predeterminada de forma predeterminada la protección contra la la la la la la la la la eliminación. Esta es una función de QLDB que impide que cualquier usuario elimine los libros mayor. Tiene la opción de deshabilitar la protección contra la eliminación al crear un registro mediante la API de QLDB o laAWS Command Line Interface (AWS CLI).

    • Si lo desea, también puede especificar etiquetas para adjuntarlas a su libro mayor.

  3. Para ejecutar el programa, introduzca el siguiente comando.

    python create_ledger.py

Para verificar su conexión con el nuevo libro mayor, proceda aPaso 2: Probar la conectividad.