Referência: Criar strings de data e hora formatadas para o Systems Manager - AWS Systems Manager

Referência: Criar strings de data e hora formatadas para o Systems Manager

As operações da API do AWS Systems Manager aceitam filtros para limitar o número de resultados retornados por uma solicitação. Algumas dessas operações da API aceitam filtros que exigem uma string formatada para representar uma data e uma hora específicas. Por exemplo, a operação da API DescribeSessions aceita as chaves InvokedBefore e InvokedAfter como alguns valores válidos para um objeto SessionFilter. Outro exemplo é a ação da API DescribeAutomationExecutions, que aceita as chaves StartTimeAfter e StartTimeBefore como alguns dos valores válidos para um objeto AutomationExecutionFilter. Os valores fornecidos para essas chaves ao filtrar as solicitações devem corresponder ao padrão ISO 8601. Para obter informações sobre o ISO 8601, consulte ISO 8601.

Essas strings de data e hora formatadas não estão limitadas a filtros. Há também operações de API que exigem uma string no formato ISO 8601 para representar uma data e uma hora específicas ao fornecer um valor para um parâmetro de solicitação. Por exemplo, o parâmetro de solicitação AtTime da operação GetCalendarState. Essas strings são difíceis de criar. Use os exemplos neste tópico para criar strings de data e hora formatadas para usar com operações da API do Systems Manager.

Formatar strings de data e hora para o Systems Manager

Veja a seguir um exemplo de uma string de data e hora no formato ISO 8601.

2024-05-08T15:16:43Z

Ela representa: 8 de maio de 2024, às 15h16, padrão UTC (Tempo Universal Coordenado). A parte da data do calendário da string é representada por um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos separados por hifens. Isso pode ser representado no formato a seguir.

YYYY-MM-DD

A parte de hora da string começa com a letra "T" como um delimitador e, depois, é representada por uma hora de dois dígitos, um minuto de dois dígitos e um segundo de dois dígitos, separados por dois pontos. Isso pode ser representado no formato a seguir.

hh:mm:ss

A parte de hora da string termina com a letra "Z", indicando o padrão UTC.

Criar strings personalizados de data e hora para o Systems Manager

É possível criar strings personalizadas de data e hora na máquina local usando sua ferramenta de linha de comando preferencial. A sintaxe usada para criar uma string de data e hora no formato ISO 8601 difere dependendo do sistema operacional da máquina local. Veja a seguir exemplos de como você pode usar date no coreutils do GNU no Linux ou no PowerShell do Windows para criar uma string de data e hora no formato ISO 8601.

coreutils
date '+%Y-%m-%dT%H:%M:%SZ'
PowerShell
(Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")

Ao trabalhar com operações da API do Systems Manager, talvez seja necessário criar strings históricas de data e hora para fins de geração de relatórios ou solução de problemas. Veja a seguir exemplos de como você pode criar e usar strings históricas e personalizadas de data e hora no formato ISO 8601 para o AWS Tools for PowerShell e a AWS Command Line Interface (AWS CLI).

AWS CLI
  • Recupere a última semana do histórico de comandos para um documento do SSM.

    lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '7 days ago') docFilter='{"key":"DocumentName","value":"AWS-RunPatchBaseline"}' timeFilter='{"key":"InvokedAfter","value":'\"$lastWeekStamp\"'}' commandFilters=[$docFilter,$timeFilter] aws ssm list-commands \ --filters $commandFilters
  • Recupere a última semana do histórico de execução de automação.

    lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '7 days ago') aws ssm describe-automation-executions \ --filters Key=StartTimeAfter,Values=$lastWeekStamp
  • Recupere o último mês do histórico da sessão.

    lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '30 days ago') aws ssm describe-sessions \ --state History \ --filters key=InvokedAfter,value=$lastWeekStamp
AWS Tools for PowerShell
  • Recupere a última semana do histórico de comandos para um documento do SSM.

    $lastWeekStamp = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTH:mm:ssZ") $docFilter = @{ Key="DocumentName" Value="AWS-InstallWindowsUpdates" } $timeFilter = @{ Key="InvokedAfter" Value=$lastWeekStamp } $commandFilters = $docFilter,$timeFilter Get-SSMCommand ` -Filters $commandFilters
  • Recupere a última semana do histórico de execução de automação.

    $lastWeekStamp = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTH:mm:ssZ") Get-SSMAutomationExecutionList ` -Filters @{Key="StartTimeAfter";Values=$lastWeekStamp}
  • Recupere o último mês do histórico da sessão.

    $lastWeekStamp = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTH:mm:ssZ") Get-SSMSession ` -State History ` -Filters @{Key="InvokedAfter";Value=$lastWeekStamp}