참조: Systems Manager용 형식이 지정된 날짜 및 시간 문자열 생성 - AWS Systems Manager

참조: Systems Manager용 형식이 지정된 날짜 및 시간 문자열 생성

AWS Systems Manager API 작업은 필터를 허용하여 요청에서 반환하는 결과 수를 제한합니다. 이러한 API 작업 중 일부는 특정 날짜 및 시간을 나타내도록 서식이 지정된 문자열이 필요한 필터를 허용합니다. 예를 들어 DescribeSessions API 작업은 InvokedAfterInvokedBefore 키를 SessionFilter 객체에 유효한 일부 값으로 허용합니다. 또 다른 예는 StartTimeBeforeStartTimeAfter 키를 AutomationExecutionFilter 객체에 유효한 일부 값으로 허용하는 DescribeAutomationExecutions API 작업입니다. 요청을 필터링할 때 이러한 키에 제공하는 값은 ISO 8601 표준과 일치해야 합니다. ISO 8601에 대한 자세한 내용은 ISO 8601을 참조하십시오.

서식이 지정된 이러한 날짜 및 시간 문자열은 필터에만 제한되지 않습니다. 요청 파라미터에 값을 제공할 때 특정 날짜 및 시간을 나타내는 ISO 8601 형식의 문자열이 필요한 API 작업도 있습니다. GetCalendarState 작업의 AtTime 요청 파라미터가 그 예입니다. 이러한 문자열은 만들기 어렵습니다. 이 주제의 예를 사용하여 Systems Manager API 작업에 사용할 형식이 지정된 날짜 및 시간 문자열을 생성합니다.

Systems Manager의 날짜 및 시간 문자열 형식 지정

다음은 ISO 8601 형식의 날짜 및 시간 문자열의 예입니다.

2024-05-08T15:16:43Z

2024년 5월 8일 15시 16분(협정 세계 표준시(UTC))을 나타냅니다. 문자열의 날짜 부분은 네 자리 연도, 두 자리 월 및 하이픈으로 구분된 두 자리 날짜로 표시됩니다. 다음과 같은 형식으로 표시될 수 있습니다.

YYYY-MM-DD

문자열의 시간 부분은 구분 기호인 문자 “T”로 시작한 다음, 콜론으로 구분된 두 자리 시간, 두 자리 분 및 두 자리 초로 표시됩니다. 다음과 같은 형식으로 표시될 수 있습니다.

hh:mm:ss

문자열의 시간 부분은 UTC 표준을 나타내는 문자 “Z”로 끝납니다.

Systems Manager에 대한 사용자 정의 날짜 및 시간 문자열 생성

원하는 명령줄 도구를 사용하여 로컬 컴퓨터에서 사용자 지정 날짜 및 시간 문자열을 만들 수 있습니다. ISO 8601 형식의 날짜 및 시간 문자열을 만들 때 사용하는 구문은 로컬 컴퓨터의 운영 체제에 따라 다릅니다. 다음은 Windows의 PowerShell 또는 Linux의 GNU coreutils의 date를 사용하여 ISO 8601 형식의 날짜 및 시간 문자열을 만드는 방법에 대한 예입니다.

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

Systems Manager API 작업을 실행할 때 보고 또는 문제 해결할 수 있도록 기록 날짜 및 시간 문자열을 만들어야 할 수 있습니다. 다음은 AWS Tools for PowerShell 및 AWS Command Line Interface(AWS CLI)에 대해 사용자 정의 기록 ISO 8601 형식의 날짜 및 시간 문자열을 생성하고 사용하는 방법의 예입니다.

AWS CLI
  • 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
  • 자동화 실행 기록의 마지막 주를 검색합니다.

    lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '7 days ago') aws ssm describe-automation-executions \ --filters Key=StartTimeAfter,Values=$lastWeekStamp
  • 세션 기록의 마지막 달을 검색합니다.

    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
  • 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
  • 자동화 실행 기록의 마지막 주를 검색합니다.

    $lastWeekStamp = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTH:mm:ssZ") Get-SSMAutomationExecutionList ` -Filters @{Key="StartTimeAfter";Values=$lastWeekStamp}
  • 세션 기록의 마지막 달을 검색합니다.

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