Jenkins:基为10的int()的文本无效:“within”Build

2024-06-01 14:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在EC2实例上测试的python脚本,它在服务器上运行得非常好,但是当我试图从Jenkins作业传递相同的参数时,如下所示。我收到错误消息:

Security Group Created sg-ca09bcae in vpc vpc-d79691b9. Traceback (most recent call last): File "./create_sg.py", line 32, in 'FromPort': int(FROM_PORT_1.strip("")), marked build as failure Finished: FAILURE> ValueError: invalid literal for int() with base 10: 'within' Build step 'Execute shell'

Jenkins Job Parameters

我很确定这个错误是因为我传递给Jenkins参数的字符串参数,但是在Jenkins参数中没有一个选项将端口作为整数发送。在

如何在Jenkins构建作业中将参数设置为整数?在

创建SG的Python代码:

#!/usr/bin/env python

import sys
import boto3
from botocore.exceptions import ClientError
region = "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_ID

try:
    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.strip("")),
             'ToPort': int(TO_PORT_1.strip("")),
             'IpRanges': [{'CidrIp': CIDR_IP_1}]}
        ]
    )
    print('Ingress Successfully Set %s' % data)
except ClientError as e:
    print(e)

Tags: infromipid参数portsysgroup
1条回答
网友
1楼 · 发布于 2024-06-01 14:25:04

你得到的描述是分开的参数

VPC_ID=sys.argv[1] # -> vpc-d79691b9
SECURITY_GROUP_NAME=sys.argv[2] # -> Security_Group_Test_Dev
DESCRIPTION=sys.argv[3] # -> Security
IP_PROTOCOL_1=sys.argv[4] # -> group
FROM_PORT_1=sys.argv[5] # within
TO_PORT_1=sys.argv[6] # dev
CIDR_IP_1=sys.argv[7] # environment

这意味着变量FROM_PORT_1包含的'within'不是整数。在

在堆栈中的某个地方,当脚本被调用时,它正在使用空间来拆分参数,并且说明会泄漏到其他参数。在

你可以用一个词的描述来检查我的假设是否正确。在

您应该在调用python代码的部分修复它,但是如果无法修复,下面介绍如何使用python代码解决该错误:

^{pr2}$

相关问题 更多 >