Configuração de conexão de banco de dados nos Aplicativos Web Estáticos do Azure (versão prévia)
As conexões de banco de dados de Aplicativos Web Estáticos do Azure funcionam com vários bancos de dados do Azure.
À medida que você conecta um banco de dados ao seu aplicativo Web estático, é necessário configurar o firewall do banco de dados para aceitar o acesso à rede dos trabalhos de Aplicativos Web Estáticos, permitindo o acesso à rede dos recursos do Azure. Não há suporte para permitir endereços IP de Aplicativos Web Estáticos específicos.
Se você estiver usando o tipo de autenticação de Identidade Gerenciada, precisará configurar o perfil de Identidade Gerenciada do aplicativo Web estático para acessar seu banco de dados.
Use esta tabela para obter detalhes sobre o firewall e a configuração de Identidade Gerenciada para seu banco de dados.
Nome | Tipo | Firewall | Identidade Gerenciada |
---|---|---|---|
Azure Cosmos DB | Standard | Configurar o firewall | Configurar Identidade Gerenciada |
SQL do Azure | Standard | Configurar o firewall | Configurar Identidade Gerenciada |
Banco de Dados do Azure para MySQL | Flex | Configurar o firewall | Sem suporte |
Banco de Dados do Azure para PostgreSQL | Flex | Configurar o firewall | Sem suporte |
Banco de Dados do Azure para PostgreSQL (único) | Único | Configurar o firewall | Configurar Identidade Gerenciada |
Configuração
Você define o comportamento de runtime da conexão de banco de dados no arquivo staticwebapp.database.config.json
. Antes de vincular um banco de dados ao seu aplicativo Web estático, você precisa criar esse arquivo em seu repositório. Por convenção, esse arquivo existe na pasta swa-db-connections na raiz do repositório, mas você pode realocar se desejar.
O objetivo do arquivo de configuração é:
- Mapear caminhos do ponto de extremidade
/data-api
para suas entidades ou tabelas de banco de dados - Expor pontos de extremidade REST ou GraphQL (ou ambos)
- Definir regras de segurança de entidade
- Controlar as configurações de desenvolvimento
Se você estiver usando o Azure Cosmos DB com o GraphQL, também precisará fornecer um arquivo de esquema gql
.
Observação
As conexões de banco de dados de Aplicativos Web Estáticos exigem uma pasta que contenha os arquivos de configuração. Essa pasta deve conter o arquivo de configuração staticwebapp.database.config.json para todos os tipos de banco de dados. Para bancos de dados do Cosmos DB para NoSQL, também é necessário um arquivo de esquema staticwebapp.database.schema.gql.
Por convenção, essa pasta é nomeada swa-db-connections e colocada na raiz do repositório. Essa convenção pode ser substituída por um custom-configuration-folder.
Arquivo de exemplo de configuração
O arquivo de configuração de exemplo a seguir mostra como se conectar a um banco de dados SQL do Azure e expor pontos de extremidade REST e GraphQL. Para obter detalhes completos sobre o arquivo de configuração e seus recursos com suporte, consulte a Documentação do Construtor da API de Dados.
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"options": {
"set-session-context": false
},
"connection-string": "@env('DATABASE_CONNECTION_STRING')"
},
"runtime": {
"rest": {
"enabled": true,
"path": "/rest"
},
"graphql": {
"allow-introspection": true,
"enabled": true,
"path": "/graphql"
},
"host": {
"mode": "production",
"cors": {
"origins": ["http://localhost:4280"],
"allow-credentials": false
},
"authentication": {
"provider": "StaticWebApps"
}
}
},
"entities": {
"Person": {
"source": "dbo.MyTestPersonTable",
"permissions": [
{
"actions": ["create", "read", "update", "delete"],
"role": "anonymous"
}
]
}
}
}
Propriedade | Descrição |
---|---|
$schema |
A versão do Construtor da API de Banco de Dados usada pelos Aplicativos Web Estáticos do Azure para interpretar o arquivo de configuração. |
data-source |
Configurações específicas do banco de dados de destino. A propriedade database-type aceita mssql , postgresql , cosmosdb_nosql ou mysql .A cadeia de conexão é substituída na implantação quando um banco de dados está conectado ao recurso de Aplicativos Web Estáticos. Durante o desenvolvimento local, a cadeia de conexão definida no arquivo de configuração é o que é usado para se conectar ao banco de dados. |
runtime |
Seção que define os pontos de extremidade expostos. As propriedades rest e graphql controlam o fragmento de URL usado para acessar o respectivo protocolo de API. A seção de configuração host define as configurações específicas para seu ambiente de desenvolvimento. Verifique se a matriz de origins inclui a porta e o endereço do localhost. O host.mode é substituído para production quando um banco de dados está conectado ao recurso de Aplicativos Web Estáticos. |
entities |
Seção que mapeia o caminho da URL para entidades e tabelas de banco de dados. As mesmas regras de autenticação baseadas em função usadas para proteger caminhos também protegem entidades de banco de dados e podem ser usadas para definir permissões para cada entidade. O objeto de entidades também especifica as relações entre entidades. |
Gerar um arquivo de configuração
A CLI de Aplicativos Web Estáticos permite que você gere um stub de arquivo de configuração.
Importante
Para melhorar a segurança das implantações da CLI de aplicativos Web estáticos, foi introduzida uma alteração significativa que exige que você atualize para a versão mais recente (2.0.2) da CLI de aplicativos Web estáticos até 15 de janeiro de 2025.
Use o swa db init --database-type <YOUR_DATABASE_TYPE>
para gerar um arquivo de configuração. Por padrão, a CLI cria um novo staticwebapp.database.config.json em uma pasta chamada swa-db-connections.
Os tipos de banco de dados com suporte incluem:
mssql
postgresql
cosmosdb_nosql
mysql
Pasta de configuração personalizada
O nome da pasta padrão para o arquivo staticwebapp.database.config.json é swa-db-connections. Se você quiser usar uma pasta diferente, será necessário atualizar o arquivo de fluxo de trabalho para informar ao runtime de aplicativos Web estáticos onde encontrar o arquivo de configuração. A propriedade data_api_location
permite que você defina o local da pasta de configuração.
Observação
A pasta que contém o arquivo staticwebapp.database.config.json deve estar na raiz do repositório de aplicativos Web estáticos.
O código a seguir mostra como usar uma pasta chamada db-config para o arquivo de configuração do banco de dados.
app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file
Configurar a conectividade do banco de dados
Os Aplicativos Web Estáticos do Azure precisam ter acesso de rede ao banco de dados para que as conexões de banco de dados funcionem. Além disso, a fim de usar um banco de dados do Azure para desenvolvimento local, você precisa configurar o banco de dados para permitir solicitações do seu próprio endereço IP. Veja a seguir as etapas genéricas que se aplicam a todos os bancos de dados. Para obter etapas específicas para o tipo de banco de dados, consulte os links acima.
- Acesse o seu banco de dados no portal do Azure.
- Vá para a guia Rede.
- Na seção Regras de firewall, selecione Adicionar o endereço IPv4 do cliente. Essa etapa garante que você possa usar esse banco de dados para desenvolvimento local.
- Marque a caixa de seleção Permitir que os serviços e os recursos do Azure acessem este servidor. Esta etapa garante que o recurso Aplicativos Web Estáticos implantado possa acessar o banco de dados.
- Selecione Salvar.
Conectar um banco de dados
Vincular um banco de dados ao seu aplicativo Web estático estabelece a conexão de produção entre o site e o banco de dados quando publicado no Azure.
Abra seu aplicativo Web estático no portal do Azure.
Na seção Configurações, selecione Conexão de banco de dados.
Na seção Produção, selecione o link Vincular banco de dados existente.
Na janela Vincular banco de dados existente, insira os seguintes valores:
Propriedade Valor Tipo de Banco de Dados Selecione o nome do banco de dados na lista suspensa. Subscription Selecione a assinatura do Azure na lista suspensa. Nome do Recurso Selecione o nome do servidor de banco de dados que tem o banco de dados desejado. Nome do Banco de Dados Selecione o nome do banco de dados que você deseja vincular ao aplicativo Web. Tipo de autenticação Selecione o tipo de conexão necessário para se conectar ao seu banco de dados.
Conteúdo relacionado
Adicione um banco de dados ao seu aplicativo Web estático usando um dos seguintes bancos de dados:
Além disso, você pode aprender a usar o Construtor de API de dados com Aplicativos Web Estáticos do Azure.