我正在使用 AWS EC2 Windows 实例,我的目标是将它们与维护窗口或补丁基准(我不确定是哪个)相关联,以安排自动化,当实例的更新可用时,它会自动更新自身。我为实例创建了一个维护窗口,但我认为我的问题是弄清楚如何链接系统以检查更新并在更新可用时运行它们。
我正在尝试将类型为 datetime 的 AWS EC2 实例对象的时间与表示为 datetime.datetime.now 的另一个日期时间进行比较。有问题的代码行看起来像,
if launchTime < datetime.datetime.now()-datetime.timedelta(seconds=20):
Run Code Online (Sandbox Code Playgroud)
其中launchTime 是datetime 类型。但是,当我运行它时,我收到错误
can't compare offset-naive and offset-aware datetimes: TypeError
Run Code Online (Sandbox Code Playgroud)
而且我不确定如何以可以成功比较它的方式转换 launchTime。
编辑下面的固定代码 -----------------------------------------
if launchTime.replace(tzinfo=None) < datetime.datetime.now()-datetime.timedelta(minutes=4):
Run Code Online (Sandbox Code Playgroud)
还有完整的代码,以防将来有人发现它有价值。Python 3 可以停止已运行“x”时间的 EC2 实例。在这种情况下,如果实例运行了五分钟。终止它。lambda 本身也通过 Cloudwatch 设置为每 4 分钟运行一次。
import boto3
import time
import datetime
#for returning data about our newly created instance later on in fuction
client = boto3.client('ec2')
def lambda_handler(event, context):
response = client.describe_instances()
#for each instance currently running/terminated/stopped
for r in response['Reservations']:
for i in r['Instances']: …
Run Code Online (Sandbox Code Playgroud) 我试图将DateTime
变量与另一个DateTime
变量进行比较,如果它们彼此相隔24小时,那么就做一些事情.所以,例如,
if (todaysDate == OtherDate)
{
//do stuff only if otherDate is within 24 hours of todaysDate
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用这里的运算符https://msdn.microsoft.com/en-us/library/ff986512(v=vs.110).aspx来比较日期,但这些比较似乎都没有给我我想要的是如此奇怪如何实现这一目标.
我目前有一个返回 JSON 对象的 Python lambda 函数。然而,我想知道是否有一种方法可以返回一个返回而不是 JSON 的 html 网页,而不是得到带有 JSON 数据的白屏?目前返回数据看起来像
return {
'statusCode': 200,
'headers': {},
'body': json.dumps({
'HOW-TO: ': prompt,
'instanceId': instanceId,
'PUBLIC_IP_ADDRESS': publicIp,
'instanceRegion':Instance_region
})
Run Code Online (Sandbox Code Playgroud)
但很好奇是否有办法返回 HTML 页面?