Consulte um banco de dados de uma function
Leia linhas do SQL Database dentro de uma function com o módulo de runtime azion:sql, e retorne essas linhas na resposta que a function envia.
Você lê linhas de um banco de dados no SQL Database dentro de uma function, durante a requisição que a function atende. O módulo de runtime azion:sql abre a conexão e executa o SQL.
Esta página traz uma function completa. Para todos os métodos que o módulo expõe, consulte SQL Database API.
Pré-requisitos
- Uma aplicação para instanciar a function. Consulte Instancie uma função em uma aplicação.
- Um personal token para autorizar as requisições à API.
- A permissão Edit SQL Database, que concede permissão para criar e editar bancos de dados e os seus dados pela API da Azion. Consulte Teams Permissions.
- SQL Database habilitado na sua conta. O produto está em Preview e não é habilitado por padrão, então solicite acesso pelo Technical Support.
Crie o banco de dados e a tabela
A function lê uma tabela que já existe, então as duas chamadas abaixo são o caminho mais curto até uma. Para criar o banco de dados e preenchê-lo com linhas:
A API responde com HTTP 202 e retorna o identificador que a próxima chamada usa no seu caminho:
O provisionamento leva cerca de 15 segundos. Envie GET /databases/{database_id} até que status marque created.
A API responde com HTTP 200 e "state": "executed", e data traz uma entrada por statement, na ordem em que você as enviou.
O banco de dados mydatabase contém uma tabela users com três linhas. O nome que você define aqui é o nome que a function passa para Database.open.
Escreva a function
Database.open abre uma conexão com a réplica de leitura do banco de dados, então uma function lê os dados e não escreve neles. O handler abaixo responde a uma requisição GET com o conteúdo de users:
connection.query retorna um handle de linhas. rows.columnCount() e rows.columnName(i) nomeiam as colunas, rows.next() avança uma linha e retorna um valor falsy quando o conjunto de resultados termina, e row.getString(i) lê uma célula pela sua posição. O exemplo junta as células de uma linha com | e as linhas com uma quebra de linha, e depois envia o texto como corpo da resposta. Uma falha dentro do módulo é registrada com e.message e e.stack e retornada como HTTP 500.
Instancie e execute a function
Uma function só é executada depois de ser vinculada a uma aplicação e de uma regra dessa aplicação selecioná-la. Para executar a function e ler as linhas:
Acesse Azion Console e crie uma function que carrega o código acima. Consulte Functions.
Vincule a function à aplicação que atende o seu domínio e adicione a regra que executa a instância. Consulte Instancie uma função em uma aplicação.
A resposta traz os nomes das colunas na primeira linha e uma linha para cada registro de users: