【问题标题】:Identify and reboot workspaces in AWS using Lambda使用 Lambda 识别并重启 AWS 中的工作区
【发布时间】:2021-09-19 05:09:35
【问题描述】:

我必须使用 boto3 在 python 中编写 AWS lambda 函数。该函数的主要目的是检测目录中所有不健康的工作空间,并重新启动状态为不健康的工作空间。

我创建了一个触发 SNS 并反过来触发 lambda 的 cloudwatch 警报。 我不知道如何使用 python 遍历目录中的工作区,这将检测到不健康状态。 谁能提供python中的示例代码,以便我可以编写lambda。

谢谢

import json
import boto3

client = boto3.client('workspaces')

def lambda_handler(event, context):
    
    statusCode = 200
    print("Alarm activated")
    DirectoryId = "d-966714f11"
    UnhealthyWorkspace = []
    
    if(DirectoryId == 'd-966714f114'):
        response = client.describe_workspaces(
            WorkspaceIds = (should be in an array)
        )

    us = response["Contents"]

    for i in us:
        if(State == 'Unhealthy'):
            print(i)
            UnhealthyWorkspace.append(i)
    

    response1 = client.reboot_workspaces(
        RebootWorkspaceRequests=[
            {
                'WorkspaceId' : UnhealthyWorkspace
            }
        ]
    )

【问题讨论】:

    标签: python-3.x amazon-web-services aws-lambda boto3 amazon-workspaces


    【解决方案1】:

    使用describe_workspaces() 检索所有工作区的列表。

    然后,遍历工作区列表并检查:State = 'UNHEALTHY'

    【讨论】:

    • 您好,感谢您的回复。我已经用我在python中知道的任何东西(在问题中更新)编写了一些代码,但我很确定它不会工作。你介意看一下并提出其中的问题吗。谢谢。
    • 我建议你试试看!流程逻辑中存在一些错误,但您会在调试代码时发现它。您可以将DirectoryId 传递给describe_workspaces()。要遍历结果,请使用for workspace in response['Workspaces']:,然后您可以将元素称为workspace['Status']workspace['WorkspaceId']reboot_workspaces() 调用采用 JSON 记录列表,而不是列表的 JSON。或者,只需在 for 主循环中一次调用一个实例 reboot_workspaces()
    猜你喜欢
    • 2018-04-14
    • 2018-12-13
    • 2023-01-17
    • 2020-11-12
    • 2019-01-15
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多