当前位置: 首页 > 知识库问答 >
问题:

Jenkins:base为10的int()的无效文本:“inner”构建

姜鸿
2023-03-14

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

安全组在vpc VPC-D79691B9中创建了sg-ca09bcae。Traceback(最近的调用为last):文件“./create_sg.py”,第32行,在'fromport':int(From_port_1.stripe("“))中,将build标记为failure finished:failure>valueerror:int()的无效文本,其base为10:'inte'build step'execute shell'

我很确定错误是因为我通过Jenkins参数传递的字符串参数,但在Jenkins参数中没有将From和to端口作为整数发送的选项。

如何在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)

共有1个答案

严瀚昂
2023-03-14

您将以分离参数的形式获得描述

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包含'inter',它不是整数。

在堆栈的某个地方,当脚本被调用时,它正在使用空间来拆分参数,并且描述泄露给其他参数。

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] 
 类似资料:
  • 给定一个有符号的32位整数x,返回其数字颠倒的x。如果反转x导致值超出有符号32位整数范围[-2**31, 2**31 - 1],则返回0。 假设环境不允许存储64位整数(有符号或无符号)。 这是我的意见书 int()方法应该允许我传递一个字符串值(“12”),但是它返回一个错误,说它是int()的无效文本。 第3行中的变量sp是str而不是float,所以我不知道为什么它不在leetcode提交

  • 问题内容: 我正在创建一个读取文件的程序,如果文件的第一行不为空白,它将读取接下来的四行。在这些行上执行计算,然后读取下一行。如果该行不为空,则继续。但是,我收到此错误: 它正在读取第一行,但无法将其转换为整数。 我该怎么做才能解决此问题? 代码: 问题答案: 仅作记录: 我在这里…

  • 我正在使用创建通知。根据我的文件: 在我的< code>urls.py中。我通过在我的视图中使用它来生成测试通知。py: 我可以轻松获取此url中的未读通知数量: 它返回,如我所愿。但是使用我无法获取通知列表,我收到此错误: 作为我使用任何帮助将不胜感激。 完全回溯 环境: 请求方法:GET请求URL:http://127.0.0.1:8000/inbox/notifications/api/un

  • 问题内容: 我编写了一个程序来求解,然后将其投影在图形上。问题是,每当出现错误时: ValueError:int()以10为底的无效文字。 有什么建议? 这是回溯: 每当我输入一个小于1但大于0的数字时,就会出现问题。在此示例中为0.3。 这是我的代码: 问题答案: 您的回溯告诉您采用整数,您试图给出一个十进制数,因此您需要使用: 这应该按预期工作: 计算机以各种不同的方式存储数字。Python有

  • 问题内容: 我正在为某个项目编写代码来确定信用卡的有效性,但是我碰壁了,看来到目前为止我尝试过的所有方法都没有用。 这给了sumofodds函数一个错误,其中j = int(card [i]) 错误是“无效的文字为Int()与Base 10 有没有人可以给我一些帮助? 这是那些想知道的人的完整追溯 问题答案: 好吧,无论您输入什么内容,实际上都不是以10为底的数字。这包括非数字字符或空格的任何内容

  • Django总是在向服务器发送的每个POST请求上抛出<code>ValueError</code>。从浏览表单和SE来看,这似乎是我的Django模型的一个问题。但是,我不确定为什么模型会抛出这个错误,或者为什么Django会调用它们,因为这是在POST事件中抛出的。 有问题的视图: 我的应用程序模型: 追溯: 任何帮助或想法都将不胜感激,这真的让我摸不着头脑。