通过npm run命令执行时,AWS CLI命令无法运行

时间:2020-02-13 08:22:39

标签: node.js amazon-web-services aws-cli aws-sam-cli

系统规格-

node version - v10.15.0
npm version - 6.4.1
aws-cli version - aws-cli/1.16.81 Python/3.6.0 Windows/10 botocore/1.12.71
sam-cli version - SAM CLI, version 0.41.0

Running on a windows machine.

因此,我有一个节点项目,该项目将部署到aws-sam。我有sam-validatepreparepackage的脚本。但是,当我通过npm run <package-name>运行此脚本时,命令无法运行。例如,如果我运行npm run package,则会得到以下内容-

aws --region <region-name> s3api head-bucket --bucket <bucket-name>
Command not run
Command executed in 0 msec
aws --region <<region-name>> cloudformation package --template-file template.yaml --s3-bucket <bucket-name> --output-template-file template-deploy.yaml
Command not run
Command executed in 0 msec

但是令人惊讶的是,如果我分别从powershell运行这些命令,那么它可以正常工作。这使我意识到脚本是可以的,因为当我单独运行它们时,生成的命令可以正常工作。

我检查了环境变量。所有的东西(节点路径,aws cli路径等)都在那里。

我在这里想念什么?简而言之,问题是-我需要做其他事情才能通过节点脚本运行aws-clisam-cli命令吗?

1 个答案:

答案 0 :(得分:0)

我认为您的脚本可能有问题,

考虑像

一样在python中编写脚本
2020-02-09T08:02:36.7187

然后您可以从python本身运行脚本,也可以

创建一个单独的调用python函数的节点应用程序

参考This

,然后使用import subprocesses commandToBeExecutedOnShell='any command' subprocess.check_call(commandToBeExecutedOnShell, shell=True)

运行该节点应用程序