Defina regras de ciclo de vida para exportações temporárias

AWSBeginner
Pratique Agora

Introdução

Uma equipe mantém exportações temporárias por noventa dias, enquanto registros permanentes no mesmo bucket devem permanecer fora dessa política. Você configurará e inspecionará uma regra de ciclo de vida delimitada e depois limpará os recursos de prática.

Conclua primeiro Organize documentos com chaves e metadados para conhecer prefixos, propriedades, downloads e limpeza. A conexão da CLI, o bucket, a exportação e o registro permanente estão preparados nesta VM nova. Use Terminal e a aba AWS View, ao lado. Você verificará a configuração armazenada em vez de esperar por ações futuras baseadas na idade dos objetos.

Relação com as certificações

Este laboratório oferece prática nos seguintes tópicos de exame.

Inspecione dados temporários e permanentes

Nesta etapa, você identificará o escopo pretendido da política e inspecionará o registro permanente que deve ser excluído dela.

Uma regra de ciclo de vida especifica quais objetos gerenciar e o que fazer conforme envelhecem. Uma transição muda a classe de armazenamento; a expiração remove objetos armazenados elegíveis. Nenhuma dessas ações altera um arquivo local. Comece identificando quais chaves armazenadas pertencem a esta regra.

Entre no espaço de trabalho com cd, que muda de diretório:

cd /home/labex/project

Liste o bucket preparado recursivamente para ver as chaves completas dos objetos, incluindo prefixos:

aws s3 ls s3://labex-export-retention/ --recursive

Há duas chaves: exports/monthly.csv e records/retention-policy.txt. A exportação é maior que 128 KB; o registro permanente é um pequeno arquivo de texto. Um prefixo é o início de uma chave de objeto, não um diretório real. Uma regra filtrada para exports/ corresponde à exportação, mas exclui records/retention-policy.txt.

Baixe o registro permanente com cp e inspecione seus bytes com cat:

aws s3 cp s3://labex-export-retention/records/retention-policy.txt permanent-record.txt
cat permanent-record.txt
Permanent record: retain until approved removal.

No AWS View, expanda records/retention-policy.txt para ver o mesmo texto armazenado. Você comparará esse registro após configurar a regra. Uma política de ciclo de vida não deve expirar acidentalmente dados não relacionados apenas porque compartilham um bucket.

Escreva e aplique uma regra de ciclo de vida delimitada

Nesta etapa, você armazenará uma regra de ciclo de vida que descreve os requisitos de retenção da equipe.

S3 Standard é a classe padrão para dados acessados com frequência. S3 Standard-IA (acesso infrequente) mantém a recuperação imediata, mas cobra pela recuperação e tem duração mínima de armazenamento de trinta dias. Aqui, as exportações passam a ser acessadas com pouca frequência após trinta dias e são mantidas até o dia noventa, portanto passam sessenta dias em Standard-IA. Objetos menores que 128 KB não são transferidos de classe pelo comportamento padrão de ciclo de vida; a exportação preparada é maior que esse limite. Esses são critérios de seleção, não uma promessa de economias específicas.

Expiração em noventa dias é apropriada para exportações descartáveis, não para registros permanentes. Este bucket tem o versionamento desativado; a expiração pode remover permanentemente objetos elegíveis. Em um bucket com versões, expiração da versão atual e exclusão de versões não atuais têm efeitos diferentes e precisam de ações consideradas separadamente.

Esquema: a regra se aplica a exports/. Os limites em dias descrevem elegibilidade; eles não garantem execução em um instante exato.

Linha do tempo de retenção de exportações

JSON descreve a configuração usando objetos ({}), arrays ([]), nomes de campos entre aspas, strings e valores numéricos de dias. O array Rules contém a política completa do bucket. ID nomeia a regra, Status a ativa e Filter.Prefix restringe seu escopo. Transitions e Expiration especificam as duas ações.

O comando do shell cat > lifecycle.json <<'JSON' grava as linhas seguintes em um arquivo até o JSON final. Este é um here-document; o delimitador entre aspas mantém o conteúdo literal. Copie o bloco completo, incluindo seu delimitador final:

cat > lifecycle.json <<'JSON'
{
  "Rules": [
    {
      "ID": "temporary-export-retention",
      "Status": "Enabled",
      "Filter": {"Prefix": "exports/"},
      "Transitions": [{"Days": 30, "StorageClass": "STANDARD_IA"}],
      "Expiration": {"Days": 90}
    }
  ]
}
JSON

Revise o arquivo antes de aplicá-lo:

cat lifecycle.json

Confirme que o prefixo é exports/, com sua barra final. Um prefixo vazio teria como alvo todos os objetos do bucket, incluindo o registro permanente.

aws s3api expõe operações individuais da API do S3. put-bucket-lifecycle-configuration grava a configuração; --bucket escolhe o bucket, e file://lifecycle.json faz a CLI ler seu argumento JSON do arquivo local. Esta operação substitui toda a configuração de ciclo de vida do bucket; ao atualizar uma configuração existente, inclua as regras que deseja manter. Este exercício começa sem uma:

aws s3api put-bucket-lifecycle-configuration --bucket labex-export-retention --lifecycle-configuration file://lifecycle.json

Um comando bem-sucedido não exibe corpo de resposta. A seguir, inspecione o que o serviço efetivamente armazenou em vez de confiar apenas no arquivo local.

Revise a política armazenada e o registro não afetado

Nesta etapa, você lerá a política no S3 e confirmará que tanto os dados novos quanto o registro permanente excluído da regra continuam acessíveis.

Recupere a configuração de ciclo de vida do bucket:

aws s3api get-bucket-lifecycle-configuration --bucket labex-export-retention

O array Rules da resposta contém uma regra Enabled: prefixo exports/, transição para STANDARD_IA em trinta dias e expiração em noventa dias. O serviço pode incluir campos adicionais na resposta; compare os campos da regra com o requisito. Esta resposta é uma evidência oficial da configuração armazenada, enquanto um arquivo JSON local sozinho não mostra que uma regra foi aplicada.

AWS View mostra a mesma regra armazenada acima dos objetos. Ele não exibe uma transição ou exclusão concluída: esses limites estão no futuro.

Exemplo: a regra de ciclo de vida apenas para exports e o registro permanente inalterado.

Este exemplo mostra a configuração armazenada e os bytes atuais do registro. Ele não representa uma ação concluída baseada na idade do objeto.

head-object lê as propriedades de um objeto sem baixar seu corpo. Inspecione a exportação recém-criada:

aws s3api head-object --bucket labex-export-retention --key exports/monthly.csv

Seu ContentLength é maior que 131072 bytes. Ela permanece em Standard hoje; o campo StorageClass pode ser omitido para essa classe padrão. A regra não reescreve imediatamente a classe de armazenamento de um novo objeto apenas porque você a ativou. O processamento agendado é assíncrono após a elegibilidade, não uma contagem regressiva cronometrada a partir da execução deste comando.

Baixe novamente o registro permanente excluído da regra:

aws s3 cp s3://labex-export-retention/records/retention-policy.txt permanent-record-after.txt

cmp compara arquivos byte a byte. && exibe uma mensagem apenas se a comparação for bem-sucedida:

cmp permanent-record.txt permanent-record-after.txt && echo 'Permanent record unchanged'

A mensagem confirma que seu conteúdo permanece intacto. Ambas as chaves ainda aparecem no bucket:

aws s3 ls s3://labex-export-retention/ --recursive

O prefixo armazenado estabelece que o registro permanente está fora desta regra. Sua presença hoje também confirma que você não o excluiu nem sobrescreveu acidentalmente ao configurar a política; isso, por si só, não comprova o comportamento futuro do agendador.

Remova a política e os recursos do exercício

Nesta etapa, você removerá a política armazenada e depois excluirá os objetos e o bucket do laboratório sem esperar pela expiração futura.

Remover uma configuração de ciclo de vida impede que essa política governe o bucket; isso não remove seus objetos por si só. Exclua a política com a operação individual da API:

aws s3api delete-bucket-lifecycle --bucket labex-export-retention

Confira que ela não está mais configurada:

aws s3api get-bucket-lifecycle-configuration --bucket labex-export-retention

Espera-se que este comando falhe com NoSuchLifecycleConfiguration. O bucket ainda existe, mas sua política de ciclo de vida não. AWS View remove o resumo da regra e mantém os dois objetos.

O registro permanente foi excluído da expiração automática. Agora, você o removerá deliberadamente como parte da limpeza deste exercício descartável, usando sua chave exata. Remova primeiro a exportação temporária:

aws s3 rm s3://labex-export-retention/exports/monthly.csv
aws s3 rm s3://labex-export-retention/records/retention-policy.txt

Confirme que a listagem bem-sucedida não contém linhas de objetos:

aws s3 ls s3://labex-export-retention/ --recursive

Remova o bucket vazio com rb e confirme que o armazenamento ainda responde:

aws s3 rb s3://labex-export-retention
aws s3 ls

A mensagem remove_bucket indica o bucket deste exercício; a lista final não tem buckets, e AWS View mostra No buckets. Sua política local e as cópias do registro permanecem para revisão. Você configurou uma política futura de retenção e limpou explicitamente os recursos de prática; essas são operações separadas.

Resumo

Você transformou requisitos de dados temporários em uma regra de ciclo de vida S3 com escopo restrito, selecionou uma classe de armazenamento considerando acesso e duração mínima e configurou a expiração. Você leu a regra no S3 e confirmou que o registro permanente permaneceu fora de seu prefixo e inalterado.

Evidência de configuração é diferente de execução futura agendada. Você terminou removendo a política e excluindo explicitamente os recursos de armazenamento do laboratório, sem esperar por ações baseadas na idade dos objetos.