Visão geral das funções do Azure para o Azure Redis
Este artigo descreve como usar o Azure Managed Redis ou o Cache do Azure para Redis com o Azure Functions para criar arquiteturas otimizadas sem servidor e controladas por eventos.
O Azure Functions fornece um modelo de programação controlado por eventos em que gatilhos e associações são os principais recursos. Com o Azure Functions, você pode facilmente criar aplicativos sem servidor controlados por eventos. Os serviços do Azure Redis (Azure Managed Redis e Azure Cache for Redis) fornecem um conjunto de blocos de construção e práticas recomendadas para a criação de aplicativos distribuídos, incluindo microsserviços, gerenciamento de estado, mensagens pub/sub e muito mais.
O Azure Redis pode ser usado como um gatilho para o Azure Functions, permitindo que você inicie um fluxo de trabalho sem servidor. Essa funcionalidade pode ser altamente útil em arquiteturas de dados, como um cache write-behind ou arquiteturas baseadas em eventos.
Você pode integrar o Azure Redis e o Azure Functions para criar funções que reagem a eventos do Azure Redis ou de sistemas externos.
Ação | Direção | Nível de suporte |
---|---|---|
Gatilho em mensagens de sub pub do Redis | Gatilho | Visualizar |
Gatilho em listas do Redis | Gatilho | Visualizar |
Acionar em fluxos do Redis | Gatilho | Visualizar |
Ler um valor armazenado em cache | Entrada | Visualizar |
Gravar um valor no cache | Saída | Visualizar |
Escopo de disponibilidade para acionadores e associações de funções
Camada | Cache do Azure para Redis (Básico, Standard, Premium, Enterprise, Enterprise Flash) | Azure Managed Redis (Otimizado para Memória, Básico, Otimizado para Computação, Otimizado para Flash) |
---|---|---|
Pub/Sub | Sim | Sim |
Listas | Sim | Sim |
Fluxos | Sim | Sim |
Associações | Sim | Sim |
Importante
Atualmente, os gatilhos do Redis só têm suporte para funções em execução em um plano Elastic Premium ou em um plano dedicado do Serviço de Aplicativo.
Instalar a extensão
As funções são executadas em um processo de trabalho C# isolado. Para saber mais, confira o Guia para executar C# do Azure Functions em um processo de trabalho isolado.
Adicione a extensão ao seu projeto instalando este pacote do NuGet.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Redis
Instalar pacote
Crie um projeto de função Java. Você pode usar o Maven:
mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8
Adicione o pacote de extensão adicionando ou substituindo o seguinte código em seu arquivo host.json:
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview", "version": "[4.11.*, 5.0.0)" } }
Aviso
No momento, a extensão do Redis só está disponível em uma versão do pacote de versão prévia.
Adicione a biblioteca Java das associações do Redis ao arquivo
pom.xml
:<dependency> <groupId>com.microsoft.azure.functions</groupId> <artifactId>azure-functions-java-library-redis</artifactId> <version>${azure.functions.java.library.redis.version}</version> </dependency>
Adicione o pacote de extensão adicionando ou substituindo o seguinte código em seu arquivo host.json:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.11.*, 5.0.0)"
}
}
Aviso
No momento, a extensão do Redis só está disponível em uma versão do pacote de versão prévia.
Cadeia de conexão Redis
Os gatilhos e associações do Azure Redis têm uma propriedade necessária para a cadeia de conexão de cache. A cadeia de conexão pode ser encontrada no menu Chaves de acesso no portal do Azure Managed Redis ou do Cache do Azure para Redis. O gatilho ou associação do Redis procura uma variável de ambiente que contém a cadeia de conexão com o nome passado para o parâmetro Connection
.
No desenvolvimento local, o Connection
pode ser definido usando o arquivo local.settings.json. Quando implantadas no Azure, as configurações de aplicativo podem ser usadas.
Ao se conectar a uma instância de cache com uma função do Azure, você pode usar três tipos de conexões em suas implantações: cadeia de conexão, identidade gerenciada atribuída pelo sistema e identidade gerenciada atribuída pelo usuário
Para desenvolvimento local, você também pode usar segredos da entidade de serviço.
Use o appsettings
para configurar cada um dos seguintes tipos de autenticação de cliente, supondo que o Connection
foi definido como Redis
na função.
Cadeia de conexão
"Redis": "<cacheName>.<region>.redis.azure.net:10000,password=..."
Identidade gerenciada atribuída pelo sistema
"Redis:redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis:principalId": "<principalId>"
Identidade gerenciada atribuída pelo usuário
"Redis:redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis:principalId": "<principalId>",
"Redis:clientId": "<clientId>"
Segredo da Entidade de Serviço
As conexões que usam segredos da entidade de serviço só estão disponíveis durante o desenvolvimento local.
"Redis:redisHostName": "<cacheName>.<region>.redis.azure.net",
"Redis:principalId": "<principalId>",
"Redis:clientId": "<clientId>"
"Redis:tenantId": "<tenantId>"
"Redis:clientSecret": "<clientSecret>"