Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Aviso de reforma: As Ligações à Base de Dados para Aplicações Web Estáticas terão o seu término em 30 de novembro de 2025. Migre agora para evitar interrupções.
A funcionalidade de ligação à base de dados Azure Static Web Apps permite-lhe aceder a uma base de dados a partir da sua aplicação web estática sem precisar de escrever código personalizado do lado do servidor.
Depois de criar uma ligação entre a sua aplicação web e a base de dados, pode manipular dados com suporte total para operações CRUD, autorização incorporada e relações.
Baseado no Data API builder, o Azure Static Web Apps recebe pedidos REST e GraphQL e converte-os em consultas de base de dados.
As funcionalidades suportadas pelas ligações à base de dados incluem:
| Característica | Description |
|---|---|
| Segurança integrada | Integração integrada com o modelo de segurança de autenticação e autorização do Azure Static Web Apps. A mesma segurança baseada em papéis usada para proteger rotas está disponível para endpoints de API. |
| Operações completas baseadas em CRUD | Consulte os tutoriais para Azure Cosmos DB,Azure SQL,MySQL ou PostgreSQL para um exemplo sobre como manipular dados na sua aplicação. |
| Suporta SQL e NoSQL | Pode usar bases de dados relacionais e de documentos como base de dados da sua aplicação. |
| Arquitetura serverless | As ligações escalam de 0 para 1 trabalhador (durante a pré-visualização). |
| Relações com bases de dados | Suportado apenas através do endpoint GraphQL. |
| Suporte a CLI | Desenvolva localmente com a Interface de Comando de Aplicações Web Estáticas. Use a opção --data-api-location para tratar pedidos para APIs de dados em desenvolvimento, tal como são tratados na cloud. |
Bases de dados suportadas
A tabela seguinte mostra suporte para diferentes bases de dados relacionais e NoSQL.
| Nome | Tipo | Description | REST | GraphQL |
|---|---|---|---|---|
| Azure Cosmos DB | Standard | Plataforma de base de dados distribuída globalmente para bases de dados NoSQL e relacionais de qualquer escala. Para além da configuração padrão, é necessário um gql ficheiro de esquema para os endpoints GraphQL. |
✔ | |
| Azure SQL | Standard | Família de produtos geridos, seguros e inteligentes que utilizam o motor de base de dados SQL Server na nuvem Azure. | ✔ | ✔ |
| Base de Dados do Azure para MySQL | Flexível | Serviço de base de dados relacional na cloud Microsoft baseado na MySQL Community Edition | ✔ | ✔ |
| Base de Dados do Azure para PostgreSQL | Flex | Base de dados PostgreSQL como serviço totalmente gerida que lida com cargas de trabalho críticas com desempenho previsível e escalabilidade dinâmica. | ✔ | ✔ |
| Azure Database for PostgreSQL (single) | Solteiro | Base de dados PostgreSQL totalmente gerida. | ✔ | ✔ |
Pode usar os seguintes tipos de ligação para aceder à base de dados:
- Cadeia de ligação
- Identidade gerenciada atribuída pelo usuário
- Identidade Gerida Atribuída ao Sistema
Localização do ponto final
O acesso aos endpoints de dados está disponível fora do caminho padrão /data-api.
A tabela seguinte mostra-lhe como os pedidos são encaminhados para diferentes partes de uma aplicação web estática:
| Caminho | Description |
|---|---|
example.com/api/* |
Funções da API |
example.com/data-api/* |
Endpoints de ligação à base de dados que suportam pedidos REST e GraphQL. |
example.com/* |
Conteúdo estático |
Quando configura ligações à base de dados no seu site, pode configurar o sufixo REST ou GraphQL da rota /data-api/*. O /data-api prefixo é uma convenção das Aplicações Web Estáticas e não pode ser alterado.
Configuração
Existem dois passos para configurar uma ligação à base de dados em Aplicações Web Estáticas. Precisa de ligar a sua base de dados à sua aplicação web estática no portal Azure e atualizar o ficheiro de configuração das suas ligações à base de dados.
Consulte Configuração de ligação à base de dados no Azure Static Web Apps para mais detalhes.
Desenvolvimento local
O Azure Static Web Apps CLI (SWA CLI) inclui suporte para trabalhar com ligações a bases de dados durante o desenvolvimento local.
A CLI ativa o endpoint local /data-api e faz proxies dos pedidos da porta 4280 para a porta apropriada para acesso à base de dados.
Aqui está um comando de exemplo que inicia a CLI SWA com uma ligação à base de dados:
swa start ./src --data-api-location swa-db-connections
Este comando inicia a CLI SWA no diretório src . A --data-api-location opção indica à CLI que uma pasta chamada swa-db-connections contém o ficheirostaticwebapp.database.config.json .
Observação
No desenvolvimento, se usares uma cadeia de ligação para autenticar, usa a env() função para ler uma cadeia de ligação a partir de uma variável de ambiente. A cadeia passada para a env função deve estar rodeada por aspas.
Segurança baseada em funções
Quando defines uma entidade no ficheirostaticwebapp.database.config.json , podes especificar uma lista de papéis necessários para aceder a um endpoint da entidade.
O seguinte fragmento de configuração exige que o papel de administrador aceda a todas as ações (create, read, update, delete) na entidade de ordens .
{
...
"entities": {
"Orders": {
"source": "dbo.Orders",
"permissions": [
{
"actions": ["*"],
"role": "admin"
}
]
}
}
...
}
Quando fizer chamadas para um endpoint que requer uma função, são necessárias as seguintes condições:
O utilizador atual deve estar autenticado.
O utilizador atual deve ser membro da função exigida.
O pedido REST ou GraphQL deve incluir um cabeçalho com a chave de
X-MS-API-ROLEe um valor do nome do papel correspondente ao listado nas regras de configuração da entidade.Por exemplo, o seguinte excerto mostra como passar o papel de administrador num cabeçalho de pedido.
{ method: "POST", headers: { "Content-Type": "application/json", "X-MS-API-ROLE": "admin" }, body: JSON.stringify(requestPayload) }
Constraints
- As bases de dados devem ser acessíveis pela infraestrutura do Azure.
- Durante a pré-visualização pública, as ligações à base de dados escalam de 0 para 1 trabalhador da base de dados.