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.
- Cloud Practitioner (CLF-C02) · Tarefa 3.6: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
- Solutions Architect – Associate (SAA-C03) · Tarefa 4.1: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
- Developer – Associate (DVA-C02) · Tarefa 1.3: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
- CloudOps Engineer – Associate (SOA-C03) · Tarefa 1.3: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
- Security – Specialty (SCS-C03) · Tarefa 5.2: Prática dos fundamentos: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
- Data Engineer – Associate (DEA-C01) · Tarefa 2.3: Prática dos fundamentos: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
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.

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.

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.



