在Jenkins中,如何运行调用AWS CLI的Python脚本

问题描述

我正在尝试配置Jenkins构建以运行使用AWS CLI的Python脚本。

从命令行运行时,脚本运行没有问题 UnderscoredTextField(textBindingManager: TextBindingManager(limit: 1))

但是,当我尝试在Jenkins版本中运行相同的命令时,会得到以下信息:

cd /home/pi python3 AmzTools/Run_Notifications.py

我首先想到的是AWS的配置不正确,所以我尝试为SUDO和jenkins用户配置它,但是我仍然遇到相同的错误

我如何配置Jenkins构建,使其以我的用户在这种情况下为22:06:19 Started by user Paul Anderson 22:06:19 Running as SYstem 22:06:19 Building in workspace /home/pi 22:06:19 [pi] $ /bin/sh -xe /tmp/jenkins10138978078974220181.sh 22:06:19 + BUILD_USER=pi 22:06:19 + python3 AmzTools/Run_Notifications.py 22:06:22 UNEXPECTED EXCEPTION - add handing for this 22:06:22 Traceback (most recent call last): 22:06:22 File "/home/pi/AmzTools/AWS/Notifications.py",line 72,in get_offer_notifications 22:06:22 sqs = boto3.resource('sqs') 22:06:22 File "/usr/local/lib/python3.7/dist-packages/boto3/__init__.py",line 92,in resource 22:06:22 return _get_default_session().resource(*args,**kwargs) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/boto3/session.py",line 389,in resource 22:06:22 aws_session_token=aws_session_token,config=config) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/boto3/session.py",line 263,in client 22:06:22 aws_session_token=aws_session_token,config=config) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/session.py",line 861,in create_client 22:06:22 client_config=config,api_version=api_version) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/client.py",line 76,in create_client 22:06:22 verify,credentials,scoped_config,client_config,endpoint_bridge) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/client.py",line 285,in _get_client_args 22:06:22 verify,endpoint_bridge) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/args.py",line 45,in get_client_args 22:06:22 endpoint_url,is_secure,scoped_config) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/args.py",line 111,in compute_client_args 22:06:22 service_name,region_name,endpoint_url,is_secure) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/client.py",line 358,in resolve 22:06:22 service_name,region_name) 22:06:22 File "/usr/local/lib/python3.7/dist-packages/botocore/regions.py",line 122,in construct_endpoint 22:06:22 partition,service_name,line 135,in _endpoint_for_partition 22:06:22 raise noregionError() **22:06:22 botocore.exceptions.noregionError: You must specify a region.** 22:06:38 Terminated 22:06:38 Build was aborted 22:06:38 Aborted by Paul Anderson 22:06:38 Finished: ABORTED )运行,或者以其他方式使它工作?

解决方法

我已经弄清楚我要去哪里了,所以在其他人遇到相同问题的情况下发布答案。

事实证明,我在配置AWS时没有登录Jenkins用户,因此当该构建以Jenkins用户身份调用AWS CLI时,它看不到凭据。我只需要以jenkins身份登录并设置我的AWS配置。

我尝试了su - jenkins,但是它要求输入密码,默认情况下未设置。

我设置了密码-sudo passwd jenkins

以jenkins用户身份登录-su - jenkins

然后使用我的凭证aws configure

配置了AWS CLI

感谢@marcin提醒我继续寻找该地区。