Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Azure Cosmos DB, você pode optar por configurar o TTL (tempo de vida útil) no nível do contêiner ou substituí-lo em um nível de item depois de definir TTL para o contêiner. Você pode configurar o TTL para um contêiner usando o portal do Azure ou os SDKs específicos do idioma. As substituições de TTL no nível do item podem ser configuradas usando os SDKs.
Habilitar o TTL em um contêiner usando o portal do Azure
Use as etapas a seguir para habilitar o TTL em um contêiner sem expiração. Habilitar o TTL no nível do contêiner permite que o mesmo valor seja substituído no nível de um item individual. Você também pode definir o TTL inserindo um valor diferente de zero por segundos.
Entre no portal do Azure.
Crie uma conta do Azure Cosmos DB ou selecione uma conta existente.
Abra o painel Data Explorer.
Selecione um contêiner existente, expanda a guia Configurações e modifique os seguintes valores:
- Em Configurações, localize Tempo de Vida.
- Com base no requisito, você pode:
- Desative essa configuração.
- Defina-o como Ativado (sem padrão).
- Ligue com um valor TTL especificado em segundos.
- Selecione Salvar para salvar as alterações.
- Quando DefaultTimeToLive for nulo, o TTL estará Desativado.
- Quando DefaultTimeToLive é -1, sua configuração de TTL estará Ativada (não padrão).
- Quando DefaultTimeToLive tiver qualquer outro valor inteiro (exceto 0), a configuração de TTL será Ativada. O servidor exclui automaticamente itens com base no valor configurado.
Habilitar TTL em um contêiner usando a CLI do Azure ou o Azure PowerShell
Para criar ou habilitar o TTL em um contêiner, consulte:
Habilitar o TTL em um contêiner usando um SDK
Database database = client.GetDatabase("database");
ContainerProperties properties = new ()
{
Id = "container",
PartitionKeyPath = "/customerId",
// Never expire by default
DefaultTimeToLive = -1
};
// Create a new container with TTL enabled and without any expiration value
Container container = await database
.CreateContainerAsync(properties);
Definir TTL em um contêiner usando um SDK
Para definir o TTL em um contêiner, você precisa fornecer um número positivo diferente de zero que indique o período de tempo em segundos. Com base no valor de TTL configurado, todos os itens no contêiner após a última modificação do carimbo de hora do item _ts serão excluídos.
Database database = client.GetDatabase("database");
ContainerProperties properties = new ()
{
Id = "container",
PartitionKeyPath = "/customerId",
// Expire all documents after 90 days
DefaultTimeToLive = 90 * 60 * 60 * 24
};
// Create a new container with TTL enabled and without any expiration value
Container container = await database
.CreateContainerAsync(properties);
Definir TTL em um item usando o portal do Azure
Além de definir um TTL padrão em um contêiner, você pode definir um TTL para um item. A configuração de TTL no nível do item substitui o TTL padrão do item nesse contêiner.
Para definir o TTL em um item, você precisa fornecer um número positivo diferente de zero, que indica o período, em segundos, para expirar o item após o último carimbo de data/hora modificado do item
_ts. Você também pode fornecer um-1quando o item não deve expirar.Se o item não tiver um campo TTL, por padrão, o TTL definido para o contêiner se aplicará ao item.
Se o TTL estiver desabilitado no nível do contêiner, o campo TTL no item será ignorado até que o TTL seja habilitado novamente no contêiner.
Use as seguintes etapas para habilitar o TTL em um item:
Entre no portal do Azure.
Crie uma conta do Azure Cosmos DB ou selecione uma conta existente.
Abra o painel Data Explorer.
Selecione um contêiner existente, expanda-o e modifique os seguintes valores:
- Abra a janela Escala e Configurações.
- Em Configuração, localize Time to Live (TTL).
- Selecione Ativado (não há padrão) ou selecione Ativado e defina um valor de vida útil.
- Selecione Salvar para salvar as alterações.
Navegue até o item para o qual você deseja definir o tempo de vida útil, adicione a
ttlpropriedade e selecione Atualizar.{ "id": "1", "_rid": "Jic9ANWdO-EFAAAAAAAAAA==", "_self": "dbs/Jic9AA==/colls/Jic9ANWdO-E=/docs/Jic9ANWdO-EFAAAAAAAAAA==/", "_etag": "\"0d00b23f-0000-0000-0000-5c7712e80000\"", "_attachments": "attachments/", "ttl": 10, "_ts": 1551307496 }
Definir TTL em um item usando um SDK
public record SalesOrder(string id, string customerId, int ttl);
Container container = database.GetContainer("container");
SalesOrder item = new (
"SO05",
"CO18009186470"
// Expire sales order in 30 days using "ttl" property
ttl: 60 * 60 * 24 * 30
);
await container.CreateItemAsync<SalesOrder>(item);
Redefinir TTL usando um SDK
Você pode redefinir o TTL em um item executando uma operação de gravação ou atualização no item. A operação de gravação ou atualização define o _ts como a hora atual, e a TTL até que o item expire ser iniciada novamente. Se você quiser alterar a TTL de um item, poderá atualizar o campo exatamente como atualizaria qualquer outro campo.
SalesOrder item = await container.ReadItemAsync<SalesOrder>(
"SO05",
new PartitionKey("CO18009186470")
);
// Update ttl to 2 hours
SalesOrder modifiedItem = item with {
ttl = 60 * 60 * 2
};
await container.ReplaceItemAsync<SalesOrder>(
modifiedItem,
"SO05",
new PartitionKey("CO18009186470")
);
Desabilitar o TTL usando um SDK
Para desabilitar a TTL em um contêiner e impedir que o processo em segundo plano verifique se há itens expirados, a DefaultTimeToLive propriedade no contêiner deve ser excluída. Excluir essa propriedade é diferente de defini-la como -1. Quando você o define como -1, novos itens adicionados ao contêiner vivem para sempre, no entanto, você pode substituir esse valor em itens específicos no contêiner. Quando você remove a propriedade TTL do contêiner, os itens nunca expiram, mesmo que eles substituam explicitamente o valor TTL padrão anterior.
ContainerProperties properties = await container.ReadContainerAsync();
// Disable ttl at container-level
properties.DefaultTimeToLive = null;
await container.ReplaceContainerAsync(properties);