Usar o AWS CLI para se conectar ao Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar o AWS CLI para se conectar ao Amazon Keyspaces

Você pode usar o AWS Command Line Interface (AWS CLI) para controlar vários AWS serviços da linha de comando e automatize-os por meio de scripts. Com o Amazon Keyspaces, você pode usar o AWS CLI para operações de linguagem de definição de dados (DDL), como criar uma tabela. Além disso, você pode usar serviços e ferramentas de infraestrutura como código (IaC), como AWS CloudFormation e Terraform.

Antes que você possa usar o AWS CLI com o Amazon Keyspaces, você deve obter um ID de chave de acesso e uma chave de acesso secreta. Para obter mais informações, consulte Criar e configurar AWS credenciais para Amazon Keyspaces.

Para obter uma lista completa de todos os comandos disponíveis para o Amazon Keyspaces no AWS CLI, veja o AWS CLI Referência de comando .

Baixando e configurando o AWS CLI

A ferramenta AWS CLI está disponível emhttps://aws.amazon.com/cli. Ela é executada no Windows, macOS ou Linux. Depois de baixar o AWS CLI, siga estas etapas para instalá-lo e configurá-lo:

Usar o AWS CLI com Amazon Keyspaces

O formato de linha de comando consiste em um nome de operação do Amazon Keyspaces, seguido pelos parâmetros dessa operação. A ferramenta AWS CLI suporta uma sintaxe abreviada para os valores dos parâmetros, bem como. JSON Os seguintes exemplos do Amazon Keyspaces usam AWS CLI sintaxe abreviada. Para obter mais informações, consulte Usando a sintaxe abreviada com o AWS CLI.

O comando a seguir cria um espaço de teclas com o catálogo de nomes.

aws keyspaces create-keyspace --keyspace-name 'catalog'

O comando retorna o recurso Amazon Resource Name (ARN) na saída.

{ "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/" }

Para confirmar que o catálogo do espaço de chave existe, você pode usar o seguinte comando.

aws keyspaces get-keyspace --keyspace-name 'catalog'

A saída do comando retorna os seguintes valores.

{ "keyspaceName": "catalog", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/" }

O comando a seguir cria uma tabela com o nome book_awards. A chave de partição da tabela consiste nas colunas year e award e a chave de agrupamento consiste nas colunas category de rank. As duas colunas de agrupamento usam a ordem de classificação crescente. (Para facilitar a leitura, comandos longos nesta seção são divididos em linhas separadas.)

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'book_awards' --schema-definition 'allColumns=[{name=year,type=int},{name=award,type=text},{name=rank,type=int}, {name=category,type=text}, {name=author,type=text},{name=book_title,type=text},{name=publisher,type=text}], partitionKeys=[{name=year},{name=award}],clusteringKeys=[{name=category,orderBy=ASC},{name=rank,orderBy=ASC}]'

Este comando resulta na seguinte saída.

{ "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/table/book_awards" }

Para confirmar os metadados e as propriedades da tabela, você pode usar o seguinte comando:

aws keyspaces get-table --keyspace-name 'catalog' --table-name 'book_awards'

Este comando retorna a seguinte saída.

{ "keyspaceName": "catalog", "tableName": "book_awards", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/table/book_awards", "creationTimestamp": 1645564368.628, "status": "ACTIVE", "schemaDefinition": { "allColumns": [ { "name": "year", "type": "int" }, { "name": "award", "type": "text" }, { "name": "category", "type": "text" }, { "name": "rank", "type": "int" }, { "name": "author", "type": "text" }, { "name": "book_title", "type": "text" }, { "name": "publisher", "type": "text" } ], "partitionKeys": [ { "name": "year" }, { "name": "award" } ], "clusteringKeys": [ { "name": "category", "orderBy": "ASC" }, { "name": "rank", "orderBy": "ASC" } ], "staticColumns": [] }, "capacitySpecification": { "throughputMode": "PAY_PER_REQUEST", "lastUpdateToPayPerRequestTimestamp": 1645564368.628 }, "encryptionSpecification": { "type": "AWS_OWNED_KMS_KEY" }, "pointInTimeRecovery": { "status": "DISABLED" }, "ttl": { "status": "ENABLED" }, "defaultTimeToLive": 0, "comment": { "message": "" } }

Ao criar tabelas com esquemas complexos, pode ser útil carregar a definição do esquema da tabela a partir de um JSON arquivo. A seguir, temos um exemplo. Faça o download do JSON arquivo de exemplo de definição de esquema em schema_definition.zip e extraiaschema_definition.json, anotando o caminho para o arquivo. Neste exemplo, o JSON arquivo de definição do esquema está localizado no diretório atual. Para diferentes opções de caminho de arquivo, consulte Como carregar parâmetros de um arquivo.

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'book_awards' --schema-definition 'file://schema_definition.json'

Os exemplos a seguir mostram como criar uma tabela simples com o nome myTablee opções adicionais. Observe que os comandos estão divididos em linhas separadas para melhorar a legibilidade. Esse comando mostra como criar uma tabela e:

  • definir o modo de capacidade da tabela

  • habilitar a oint-in-time recuperação P para a tabela

  • defina o valor padrão de Time to Live (TTL) para a tabela como um ano

  • adicionar duas tags para a tabela

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --capacity-specification 'throughputMode=PROVISIONED,readCapacityUnits=5,writeCapacityUnits=5' --point-in-time-recovery 'status=ENABLED' --default-time-to-live '31536000' --tags 'key=env,value=test' 'key=dpt,value=sec'

Este exemplo mostra como criar uma nova tabela que usa uma chave gerenciada pelo cliente para criptografia e permite que você defina datas de expiração para colunas e linhas. TTL Para executar essa amostra, você deve substituir o recurso ARN pelo cliente gerenciado AWS KMS chave com sua própria chave e garanta que o Amazon Keyspaces tenha acesso a ela.

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --encryption-specification 'type=CUSTOMER_MANAGED_KMS_KEY,kmsKeyIdentifier=arn:aws:kms:us-east-1:111222333444:key/11111111-2222-3333-4444-555555555555' --ttl 'status=ENABLED'