Google Cloud Firewall-无法识别的参数

时间:2018-11-01 13:37:05

标签: google-cloud-platform firewall

我正在使用Google Cloud CLI创建VM,并且还需要通过CLI创建防火墙规则;

我有一个bash脚本,带有一些预定义的变量,例如端口,描述等;创建虚拟机,然后为其应用防火墙规则;

要应用我使用的规则

gcloud compute firewall-rules create

但是我得到的错误是GCP文档here

中定义的参数
ERROR: (gcloud.compute.firewall-rules.create) unrecognized arguments:
./1541078390.sh: line 84: --allow: command not found
./1541078390.sh: line 86: --source-ranges: command not found
./1541078390.sh: line 87: --priority: command not found

我尝试了不同但相似的方法,并且不断尝试。 我有什么想念的吗?

脚本的示例是

ports="udp:2555"
vm="client"
priority=100
description="Port 2555"

gcloud compute firewall-rules create "${ports%%:*} rule" \ 
    --allow "${ports}" \ (line 84)
    --source-tags "$vm" \ 
    --source-ranges "0.0.0.0/0" \ (line 86)
    --priority "$priority" \(line 87)
    --description "$description" \
    --direction INGRESS

2 个答案:

答案 0 :(得分:1)

我认为您在使用反斜杠后可能会有空白。确保删除所有空格,然后重试。

根据您的示例,在第83、85和86行上应该有一个空格

欢呼

答案 1 :(得分:0)

我发现了为什么会这样。

在终端中手动执行命令后,它会输出详细错误,这些错误很明显是“正则表达式”验证失败的“无法识别”参数。因此,我根据错误中推荐的一种对参数语法进行了修改,并且奏效了;

TL; DR

“无法识别”的参数格式错误;