我有一個(gè)在EC2實(shí)例上測試過的python腳本,該腳本在服務(wù)器上可以正常運(yùn)行,但是當(dāng)我嘗試從Jenkins作業(yè)傳遞相同的參數(shù)時(shí),如下所示。我收到錯(cuò)誤消息:安全組在vpc vpc-d79691b9中創(chuàng)建了sg -ca09bcae。追溯(最近一次呼叫最近):文件“ ./create_sg.py”,位于'FromPort'中的第32行:int(FROM_PORT_1.strip(“”))),標(biāo)記為構(gòu)建失敗完成:FAILURE> ValueError:int的無效文字()以10為基數(shù):“在”構(gòu)建步驟“執(zhí)行外殼”中我很確定該錯(cuò)誤是由于我通過Jenkins參數(shù)傳遞的字符串參數(shù)引起的,但是在jenkins參數(shù)中沒有選擇將From和To端口都作為整數(shù)發(fā)送。如何在Jenkins構(gòu)建作業(yè)中將參數(shù)設(shè)置為整數(shù)?創(chuàng)建SG的Python代碼:#!/usr/bin/env pythonimport sysimport boto3from botocore.exceptions import ClientErrorregion = "us-west-1"VPC_ID=sys.argv[1]SECURITY_GROUP_NAME=sys.argv[2]DESCRIPTION=sys.argv[3]IP_PROTOCOL_1=sys.argv[4]FROM_PORT_1=sys.argv[5]TO_PORT_1=sys.argv[6]CIDR_IP_1=sys.argv[7]ec2 = boto3.client('ec2')response = ec2.describe_vpcs()vpc_id = VPC_IDtry: response = ec2.create_security_group(GroupName=SECURITY_GROUP_NAME,Description=DESCRIPTION,VpcId=VPC_ID) security_group_id = response['GroupId'] print('Security Group Created %s in vpc %s.' % (security_group_id, vpc_id)) data = ec2.authorize_security_group_ingress( GroupId=security_group_id, IpPermissions=[ {'IpProtocol': IP_PROTOCOL_1, 'FromPort': int(FROM_PORT_1), 'ToPort': int(TO_PORT_1), 'IpRanges': [{'CidrIp': CIDR_IP_1}]} ] ) print('Ingress Successfully Set %s' % data)except ClientError as e: print(e)@nosklo,建議我嘗試以下操作:VPC_ID=sys.argv[1] SECURITY_GROUP_NAME=sys.argv[2]DESCRIPTION=' '.join(sys.argv[3:-4])IP_PROTOCOL_1=sys.argv[-4]FROM_PORT_1=sys.argv[-3]TO_PORT_1=sys.argv[-2] CIDR_IP_1=sys.argv[-1]與端口相對(duì)于我在參數(shù)中傳遞的值一起列出的0。
2 回答

PIPIONE
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
我沒有任何測試方法,但是錯(cuò)誤消息將無效int
值顯示為單詞“ inside”。這表明Description參數(shù)直接被替換為命令行,而沒有任何引號(hào),因此sys.argv[5]
確實(shí)是字符串“ within”。您可以嘗試在描述周圍加上引號(hào):`“開發(fā)環(huán)境中的安全組”。

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為您正在尋找的是os.getenv:
import os
VPC_ID = os.getenv('VPC_ID')
print(VPC_ID)
應(yīng)該管用。
添加回答
舉報(bào)
0/150
提交
取消