我有在lambda中运行但不在python

时间:2019-05-10 17:05:42

标签: aws-lambda

我有在lambda中运行的代码,但在我的系统上无法运行。

asgName="test"

def lambda_handler(event, context):
    client = boto3.client('autoscaling')
    asgName="test"
    response = client.describe_auto_scaling_groups(AutoScalingGroupNames=[asgName])

    if not response['AutoScalingGroups']:
        return 'No such ASG'

    ...
    ...
    ...

我下面的代码我尝试在linux上运行,但提示错误“ No such ASG”

asgName="test"
client = boto3.client('autoscaling')
response = client.describe_auto_scaling_groups(AutoScalingGroupNames=[asgName])

if not response['AutoScalingGroups']:
    return 'No such ASG'

1 个答案:

答案 0 :(得分:0)

首先要检查的是您正在连接到正确的AWS区域。如果未指定,则默认为us-east-1(弗吉尼亚北部)。也可以在凭据文件中指定区域。

在代码中,您可以使用以下方式指定区域:

client = boto3.client('autoscaling', region_name = 'us-west-2')

接下来要检查的是凭据与正确的帐户相关联。 AWS Lambda函数显然已在所需的帐户中运行,但是您应确认“在linux中运行”的代码正在使用相同的AWS帐户。

您可以使用AWS Command-Line Interface (CLI)来执行此操作,该命令将使用与Linux计算机上的Python代码相同的凭据。运行:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names test

其结果应与在该计算机上运行的Python代码相同。

您可能需要指定区域:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names test --region us-west-2

(当然,请更改您的区域。)