我用于 Docker 主机的 AmazonLinux2 AMI 似乎没有安装 AWS CLI。日志中有来自尝试运行aws命令的用户数据脚本的错误:
/var/lib/cloud/instance/scripts/part-001: line 7: aws: command not found
Run Code Online (Sandbox Code Playgroud)
然后我使用 SSH 连接到实例进行健全性检查,并且aws肯定找不到:
[ec2-user@ip-X-X-X-X ~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
[ec2-user@ip-X-X-X-X ~]$ aws --version
-bash: aws: command not found
Run Code Online (Sandbox Code Playgroud)
我认为所有 AmazonLinux AMI 上都默认安装了 AWS CLI?我不记得以前需要自己安装它。
本文甚至说 CLI v1 已默认安装在 AmazonLinux2 上:
那么,怎么可能在这个库存 AMI 上找不到它呢?是否只有部分 AmazonLinux2 AMI 预装了 CLI?作为参考,我正在使用此 AMI:
amzn2-ami-minimal-hvm-2.0.20200917.0-x86_64-ebs (ami-0a6993b2978bd23cb)
我在JavaScript服务文件中有一个reset方法,该方法将服务中的所有变量都重置为null。一些变量保存间隔计时器参考。我注意到使用reset方法似乎取消了间隔(实际上应该不是这种情况,但确实在我的Angular应用中)。
我的问题是,将间隔引用设置为null是否与使用clearInterval(name)正式清除间隔具有相同的效果?我应该注意什么技术差异吗?
var myInterval = window.setInterval(function () { console.log('interval fired'); }, 500);
// Are these two equivalent?
myInterval = null;
clearInterval(myInterval);
Run Code Online (Sandbox Code Playgroud)
我注意到规范中似乎有一个WindowTimers接口,这就是clearInterval方法的来源。我的猜测是,调用clearInterval会将命名引用从某种列表或数组中删除。如果我将计时器设置为null,是否将它作为无法执行的null对象留在WindowTimers列表中?