У меня есть код, который запускается в лямбда, но не в Python - PullRequest
0 голосов
/ 10 мая 2019

У меня есть код, который запускается в лямбда-выражении, но он не работает в моей системе.

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, но появляется ошибка «Нет такого 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 голосов
/ 11 мая 2019

Первое, что нужно проверить, это то, что вы подключаетесь к правильному региону AWS . Если не указано, по умолчанию используется us-east-1 (Северная Вирджиния). Регион также можно указать в файле учетных данных.

В своем коде вы можете указать регион с помощью:

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

Следующее, что нужно проверить, это то, что учетные данные связаны с правильной учетной записью. Очевидно, что функция AWS Lambda работает в выбранной вами учетной записи, но вы должны подтвердить, что код, работающий «в linux», использует ту же учетную запись AWS.

Это можно сделать с помощью интерфейса командной строки AWS (CLI) , который будет использовать те же учетные данные, что и ваш код Python на компьютере с Linux. Run:

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

(Конечно, измените свой регион соответствующим образом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...