测试过程中需要在大量资源之间跳转,频繁的点击不如直接搜索来的快,于是写了一个搜索框方便跳转。
前端的静态页面可以通过s3静态网站托管实现,但是由于中国区需要备案的原因,可以使用ecs fargate部署
步骤如下:
- 编写前端页面,打包镜像
- 使用任务定义创建ecs fargate服务
编写页面和打包镜像
编写页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ToImage</title>
<style>
* {
margin: 0;
padding: 0;
}
.container {
height: 300px;
width: 100%;
margin: 100px auto 0 auto;
}
.parent {
position: relative;
top: 50%;
left: 30%;
}
.search1 {
width: 650px;
height: 50px;
border-radius: 18px;
outline: none;
border: 1px solid #ccc;
padding-left: 20px;
padding-right: 100px;
position: absolute;
font-size: 20px;
}
.search2 {
width: 650px;
height: 50px;
border-radius: 18px;
outline: none;
border: 1px solid #ccc;
padding-left: 20px;
padding-right: 100px;
position: absolute;
top: 60px;
font-size: 20px;
}
.btn {
height: 36px;
width: 100px;
position: absolute;
background: #fff;
top: 120px;
left: 300px;
border: none;
outline: none;
font-size: 20px;
}
</style>
</head>
<body>
<div class="container">
<form id="awsform" class="parent" method="get" >
<input id="servicename" type="text" class="search1" placeholder="Please Input ServiceName..." name="servicename" />
<input id="serviceid" type="text" class="search2" placeholder="Please Input ServiceID..." name="serviceid" />
<input type="button" class="btn" value="Search" onclick="jssubmit()"/>
</form>
</div>
<script type="text/javascript">
function jssubmit() {
var formdom = document.getElementById('awsform');
var servicename = document.getElementById("servicename").value
var serviceid = document.getElementById("serviceid").value
console.log(serviceid)
switch(servicename){
case "role":
window.location.href = "https://cn-north-1.console.amazonaws.cn/iamv2/home?region=cn-north-1#/roles/details/" + serviceid;
break;
case "user":
window.location.href = "https://cn-north-1.console.amazonaws.cn/iamv2/home?region=cn-north-1#/users/details/" + serviceid;
break;
case "ec2":
window.location.href = "https://cn-north-1.console.amazonaws.cn/ec2/v2/home?region=cn-north-1#InstanceDetails:instanceId=" + serviceid;
break;
case "eni":
window.location.href = "https://cn-north-1.console.amazonaws.cn/ec2/v2/home?region=cn-north-1#NetworkInterface:networkInterfaceId" + serviceid;
break;
case "sg":
window.location.href = "https://cn-north-1.console.amazonaws.cn/ec2/v2/home?region=cn-north-1#SecurityGroup:groupId=" + serviceid;
break;
case "ebs":
window.location.href = "https://cn-north-1.console.amazonaws.cn/ec2/v2/home?region=cn-north-1#VolumeDetails:volumeId=" + serviceid;
break;
case "vpc":
window.location.href = "https://cn-north-1.console.amazonaws.cn/ec2/v2/home?region=cn-north-1#VolumeDetails:volumeId=" + serviceid;
break;
case "subnet":
window.location.href = "https://cn-north-1.console.amazonaws.cn/vpc/home?region=cn-north-1#SubnetDetails:subnetId=" + serviceid;
break;
case "s3":
window.location.href = "https://cn-north-1.console.amazonaws.cn/s3/buckets/" + serviceid ;
break;
case "eks":
window.location.href = "https://cn-north-1.console.amazonaws.cn/eks/home?region=cn-north-1#/clusters/" + serviceid ;
break;
}
return false
}
</script>
</body>
</html>
本地测试
docker run -it --rm -p 8000:80 -v /home/ec2-user/index.html:/usr/share/nginx/html/index.html nginx:alpine-slim
修改端口为8090
// default.conf
server {
listen 8090;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
打包镜像
FROM nginx:alpine-slim
COPY ./index.html /usr/share/nginx/html/index.html
COPY ./default.conf /etc/nginx/conf.d/default.conf
创建服务
访问跳转