Ошибка: имя 'переменная' не определено в python + AWS Lambda - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать лямбда-функцию, которая запускает задание Дженкинса, используя python. Ниже приведен мой python код.

from botocore.vendored import requests
def lambda_handler(event, context):    
    jenkins_job_name    ="test-job"        
    Jenkins_url         ="http://IP:80"
    jenkins_user        ="test-user"
    jenkins_pwd         ="passwd"
    buildWithParameters =False
    jenkins_params      ={'token': 'xxxxxx', 
                          'result2':'success',
                          'result1': 'success'}


try:
    auth= (jenkins_user, jenkins_pwd)
    crumb_data= requests.get("{0}/crumbIssuer/api/json".format(Jenkins_url),auth = auth,headers={'content-type': 'application/json'})
    if str(crumb_data.status_code) == "200":

        if buildWithParameters:
            data = requests.get("{0}/job/{1}/buildWithParameters".format(Jenkins_url,jenkins_job_name),auth=auth,params=jenkins_params,headers={'content-type': 'application/json','Jenkins-Crumb':crumb_data.json()['crumb']})
        else:
            data = requests.get("{0}/job/{1}/build".format(Jenkins_url,jenkins_job_name),auth=auth,params=jenkins_params,headers={'content-type': 'application/json','Jenkins-Crumb':crumb_data.json()['crumb']})

        if str(data.status_code) == "201":
            print ("Jenkins job is triggered")
        else:
            print ("Failed to trigger the Jenkins job")

    else:
        print("Couldn't fetch Jenkins-Crumb")
        raise 

except Exception as e:
    print ("Failed triggering the Jenkins job")
    print ("Error: " + str(e))

Но появляется ошибка "Ошибка: имя 'jenkins_user' не определено" , даже если то же самое уже определено в коде. Может кто-то помочь мне в этом?

1 Ответ

0 голосов
/ 09 января 2020

Я не знаю, было ли мое исправление хорошим. Но как-то оно работает сейчас. Я изменил код, как показано ниже:

from botocore.vendored import requests

try:

    def lambda_handler(event, context):    
        jenkins_job_name    ="test-job"        
        Jenkins_url         ="http://IP:80"
        jenkins_user        ="test-user"
        jenkins_pwd         ="passwd"
        buildWithParameters =False
        jenkins_params      ={'token': 'xxxxxx', 
                              'result2':'success',
                              'result1': 'success'}

    auth= (jenkins_user, jenkins_pwd)
    crumb_data= requests.get("{0}/crumbIssuer/api/json".format(Jenkins_url),auth = auth,headers={'content-type': 'application/json'})
    if str(crumb_data.status_code) == "200":

        if buildWithParameters:
            data = requests.get("{0}/job/{1}/buildWithParameters".format(Jenkins_url,jenkins_job_name),auth=auth,params=jenkins_params,headers={'content-type': 'application/json','Jenkins-Crumb':crumb_data.json()['crumb']})
        else:
            data = requests.get("{0}/job/{1}/build".format(Jenkins_url,jenkins_job_name),auth=auth,params=jenkins_params,headers={'content-type': 'application/json','Jenkins-Crumb':crumb_data.json()['crumb']})

        if str(data.status_code) == "201":
            print ("Jenkins job is triggered")
        else:
            print ("Failed to trigger the Jenkins job")

    else:
        print("Couldn't fetch Jenkins-Crumb")
        raise 

except Exception as e:
    print ("Failed triggering the Jenkins job")
    print ("Error: " + str(e))

...