
暂无个人介绍
前提条件已创建ECS实例并为实例分配了公网IP地址。若尚未创建,请参见实例创建方式介绍。背景信息FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。说明:大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。FTP支持以下三种认证模式:匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其他资源,进一步增强了FTP服务器的安全性。本文主要介绍被动模式下,使用本地用户访问FTP服务器的配置方法。关于匿名模式的配置方式、第三方FTP客户端工具使用方式等介绍,请参见常见问题。本教程示例步骤使用以下资源版本:实例规格:ecs.g6.large操作系统:Alibaba Cloud Linux 3.2104 LTS 64位vsftpd:3.0.3说明:当您使用不同软件版本时,可能需要根据实际情况调整命令和参数配置。步骤一:安装vsftpd1.远程连接Linux实例。 具体操作,请参见连接方式介绍。2.运行以下命令,安装vsftpd。dnf install -y vsftpd出现如下回显信息时,表示vsftpd已安装成功。Installed: vsftpd-3.0.3-35.0.1.al8.x86_64 Complete!3.运行以下命令,设置FTP服务开机自启动。systemctl enable vsftpd.service4.运行以下命令,启动FTP服务。systemctl start vsftpd.service说明:执行该命令时如果提示错误信息Job for vsftpd.service failed because the control process exited with error code,请排查是否存在下述问题,排查后重新启动FTP。21端口被占用时,使用lsof -i:21命令查看是否存在进程,如果存在进程,使用kill -9 <进程号>命令杀掉进程。网络环境不支持IPv6时,运行命令vim /etc/vsftpd/vsftpd.conf将内容listen_ipv6=YES修改为listen_ipv6=NO。MAC地址不匹配时,运行命令ifconfig查看MAC地址,并使用vim /etc/sysconfig/network-scripts/ifcfg-eth0命令新增或修改HWADDR=<MAC地址>参数。MAC地址如下所示。5.运行以下命令,查看FTP服务监听的端口。netstat -antup | grep ftp出现类似如下回显信息,表示FTP服务已启动,监听的端口号为21。[root@iZbp14h7n3cwipjln62**** ~]# netstat -antup | grep ftp tcp6 0 0 :::21 :::* LISTEN 5870/vsftpd此时,vsftpd默认已开启本地用户模式,您还需要继续进行配置才能正常使用FTP服务。步骤二:配置vsftpd为保证数据安全,本文主要介绍被动模式下,使用本地用户访问FTP服务器的配置方法。1.运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。adduser ftptest2.运行以下命令,修改ftptest用户的密码。passwd ftptest运行命令后,根据提示输入密码,并完成二次确认。[root@iZbp14h7n3cwipjln62**** ~]# passwd ftptest Changing password for user ftptest. New password: Retype new password: passwd: all authentication tokens updated successfully.说明:为了密码安全,输入的密码默认不显示。3.运行以下命令,创建一个供FTP服务使用的文件目录。本示例以/var/ftp/test为例。mkdir /var/ftp/test4.运行以下命令,创建测试文件。本示例创建测试文件为testfile.txt,该测试文件用于FTP客户端访问FTP服务器时使用。touch /var/ftp/test/testfile.txt5.运行以下命令,更改/var/ftp/test目录的拥有者为ftptest。chown -R ftptest:ftptest /var/ftp/test6.修改vsftpd.conf配置文件。a.运行以下命令,打开vsftpd的配置文件。如果您在安装vsftpd时,使用的是apt install vsftpd安装命令,则配置文件路径为/etc/vsftpd.conf。vim /etc/vsftpd/vsftpd.confb.按i,进入编辑模式。c.配置FTP服务器为被动模式。 具体的配置参数说明如下,除下面提及的参数,其他参数保持默认值即可。重要:修改和添加配置文件内的信息时,请注意格式问题。例如,添加多余的空格会造成无法重启服务的结果。#禁止匿名登录FTP服务器。 anonymous_enable=NO #允许本地用户登录FTP服务器。 local_enable=YES #监听IPv4 sockets。 listen=YES在行首添加#注释掉以下参数,关闭监听IPv6 sockets:#listen_ipv6=YES在配置文件的末尾添加下列参数,其中pasv_address需修改为FTP服务器的公网IP地址。#设置本地用户登录后所在目录。 local_root=/var/ftp/test #全部用户被限制在主目录。 chroot_local_user=YES #启用例外用户名单。 chroot_list_enable=YES #指定例外用户列表文件,列表中用户不被锁定在主目录。 chroot_list_file=/etc/vsftpd/chroot_list #开启被动模式。 pasv_enable=YES allow_writeable_chroot=YES #本教程中为Linux实例的公网IP。 pasv_address=<FTP服务器公网IP地址> #设置被动模式下,建立数据传输可使用的端口范围的最小值。 #建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。 pasv_min_port=50000 #设置被动模式下,建立数据传输可使用的端口范围的最大值。 pasv_max_port=50010更多参数的详细信息,请参见vsftp配置文件及参数说明。d.按Esc,退出编辑模式,然后输入:wq并回车以保存并关闭文件。7.创建chroot_list文件,并在文件中写入例外用户名单。 重要:没有例外用户时,也必须创建chroot_list文件,内容可为空。a.运行以下命令,创建chroot_list文件。vim /etc/vsftpd/chroot_listb.按i,进入编辑模式。c.输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。d.按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。8.运行以下命令,重启vsftpd服务。systemctl restart vsftpd.service步骤三:设置安全组搭建好FTP站点后,在实例安全组的入方向添加规则并放行下列FTP端口。具体操作,请参见添加安全组规则。说明:大多数客户端位于局域网中,IP地址是经过转换的,因此ipconfig或ifconfig命令返回的IP不一定是客户端的真实公网IP地址。若后续客户端无法登录FTP服务器,请重新确认其公网IP地址。被动模式需开放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。配置详情如下表所示。规则方向授权策略协议类型端口范围授权对象入方向允许自定义TCP21/21所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。允许所有客户端访问时,授权对象为0.0.0.0/0。入方向允许自定义TCP50000/50010所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。允许所有客户端访问时,授权对象为0.0.0.0/0。步骤四:客户端测试FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。本文以Windows Server 2012 R2 64位系统的本地主机作为FTP客户端,介绍FTP服务器的访问步骤。1.在本地主机中,打开文件管理器。2.在地址栏中输入ftp://:FTP端口,本文中为Linux实例的公网IP地址。例如:ftp://121.43.XX.XX:21。说明:如果无法访问FTP站点,建议您检查以下几方面:安全组21端口设置是否正确。具体操作,请参见步骤三:设置安全组。配置文件vsftpd.conf配置是否正确。具体操作,请参见修改配置文件vsftpd.conf。本地主机是否有防火墙拦截。3.在弹出的登录身份对话框中,输入已设置的FTP用户名和密码,然后单击登录。登录后,您可以查看到FTP服务器指定目录下的文件,例如:测试文件testfile.txt。
一、领取免费试用资源1.开通云服务器ECS免费试用。本试用教程以下列的配置信息为例,实际操作时,建议根据您的实际业务体量和需求选择。参数示例操作系统CentOS 7.7 64位。预装应用本教程无需选择。本教程以手动搭建网站为例,故无需选择预装应用。产品所在地域华东1(杭州)本教程以华东1(杭州)为例,您可根据实际需求进行选择到期释放设置建议您选择现在设置,避免到期未释放产生扣费。其他参数保持默认值或按需修改。2.前往ECS控制台,在左侧导航栏,选择实例与镜像 > 实例。在顶部菜单栏左上角处,选择和试用实例相同的地域(本教程示例华东1(杭州))。设置该实例登录密码。找到您创建的试用实例,在其右侧操作列单击 > 实例属性 > 重置实例密码,按照界面提示设置ECS实例的登录密码。说明:实例创建完成大约3~5分钟后,才支持重置实例密码,如不可重置请耐心等待后重试。单击试用实例的ID,选择安全组页签,单击安全组操作列的配置规则,在入方向添加需要放行的端口。本教程中,在安全组入方向放行80、443、22、3389、8080端口。3.开通云效DevOps代码管理免费试用。跳转至如下页面,表示试用申请成功,即可免费试用云效DevOps代码管理服务。说明:云效DevOps代码管理的代码库数量不限,单库容量Git库5GB、LFS 5GB;流水线:最大并发任务数 3,运行时长 1800 分钟/月;制品仓库容量不限;效能洞察:个人统计、项目内统计免费使用。二、上传源码 1.前往并登录云效代码管理Codeup。2.在代码库页面,选择添加库>导入代码库。3.在导入代码库对话框中,选择URL导入,源代码库地址中输入如下地址,单击确定。https://code.aliyun.com/flow-example/spring-boot-2048.git耐心等待片刻并刷新页面,返回如下页面,表示代码导入成功。三、创建自动部署流水线创建自动部署流水线1.单击云效左侧的九宫格,单击流水线,前往云效流水线Flow。2.在我的流水线页面,单击创建流水线。3.在选择流水线模板对话框,点击新建流水线,选择第一个2048小游戏的部署模板,点击创建四、配置流水线的代码源上一步我们将代码上传到了云效Codeup,所以选择Codeup,继续选择代码仓库spring-boot-2048,默认分支选择master,然后点击 。五、配置要部署的制品及目标主机1.在流程配置页面,单击主机部署。2.在编辑面板,制品选择默认构建的制品。单击新建主机组3.在选择主机类型对话框中,单击免费体验主机。4.按照界面指引,前往阿里云体验实验室,单击立即体验,然后单击创建资源,1分钟左右,即可创建免费的ECS主机。说明:因活动火爆同时开通资源人数过多,请大家错峰体验。5.将创建出的ECS的AK ID等信息复制填入,单击保存。6.填入成功后,如下图所示,即为导入主机成功。7.在编辑面板中下滑,您可以看到默认的部署脚本和部署策略。8.无需改动,我们直接单击保存并运行。六、配置要部署的制品及目标主机1.在流程配置页面,单击主机部署。2.在编辑面板,制品选择默认构建的制品。单击新建主机组3.在选择主机类型对话框中,单击阿里云ECS。4.在阿里云ECS·添加主机对话框中,添加方式选择直接添加,地域选择华东1(杭州),在可添加的主机列表中选择您的云服务器ECS,单击下一步。说明:本教程以华东1(杭州)为例,请根据实际情况选择您的云服务器ECS所在地域。5.在阿里云ECS·主机信息对话框中,单击保存。6.填入成功后,如下图所示,即为导入主机成功。7.在编辑面板中下滑,您可以看到默认的部署脚本和部署策略。8.无需改动,我们直接单击保存并运行。七、 触发流水线运行1.在上一步弹出的运行配置窗口中,填入ECS_IP地址(在阿里云体验实验室的资源栏复制即可),然后点击运行。2.如下图所示,大概经过1-2分钟,流水线即可自动完成构建和部署。3.成功部署的流水线如下图所示,点击下方的访问站点或者手机扫描二维码,即可看到2048小游戏。八、 触发流水线运行1.在运行配置对话框中,填入您的云服务器ECS的公网地址,然后单击运行。2.如下图所示,大概经过1-2分钟,流水线即可自动完成构建和部署。3.成功部署的流水线如下图所示,点击下方的访问站点或者手机扫描二维码,即可看到2048小游戏。九、 体验成功,玩一把小游戏吧
各位开发者大家好,感谢大家参加「寻找博客建站大师」,以下为活动的参与指南,请您仔细阅读便于更顺利地完成比赛。一、活动时间8月10日 - 9月10日 24:00:参与者在本页面领取免费资源云服务器ECS和云数据库RDS MySQL Serverless,并通过WordPress部署个人博客。参赛者可邀请他人为自己的参赛作品点赞,作为建站明星奖项的依据。9月10日 - 9月13日:来自阿里云数据库和弹性计算的技术专家审核参赛作品,评选出建站达人、建站创意师、建站明星奖项的获奖名单。9月20日:大赛结束,主办方宣布完整获奖名单。二、活动地址https://developer.aliyun.com/topic/freetier/blog三、活动流程第一步:进入活动页面,在领取资源板块找到 ECS 和 RDS MySQL Serverless 资源,点击立即试用注:若您的按钮显示“无试用资格”,可能是以下原因导致:1)您的账号需要完成个人实名认证或企业认证;2)同一用户仅能对同一产品申请试用一次,建议检查下是否因为有同人注册账号已经参与过活动,导致对应账号无法试用;3)历史未付费购买过该试用产品,如有过购买记录则无法再试用。第二步:调起产品开通页进行产品选配,以RDS MySQL Serverless 举例,您可以根据就近原则选择开通地域,其他配置项均可使用默认配置,勾选服务协议点击“立即试用”进行资源开通。重要:您的ECS和RDS需要开通在同一地域下才能正常走完建站流程。第三步:请跟随文章教程,使用 ECS 和 RDS MySQL Serverless 搭建个人博客教程链接:https://developer.aliyun.com/article/1297444四、评选规则博客主题(占比 10%):博客的主题明确,博客的定位及所表达的思想清晰明了。文档执行(占比 20%):根据文档完成所有操作步骤,您可以在此基础上根据自己的想法进行额外开发及建构。界面及内容丰富度(占比 30%):博客界面设计符合博客主题,博客承载有实际的内容(如文字、图片),在契合博客主题的情况下,可以增加插件等元素。搭建心得(占比 40%):在提交的内容中写明自己博客介绍、理念、使用的镜像、插件、建站体验等内容。五、赛事奖池建站大师 (1位),提交博客截图+博客简介+搭建心得,根据博客界面的丰富度、功能性及搭建心得的质量由评委进行综合评选,获奖者可获得Airpod Pro耳机一个。建站达人(3位):提交博客截图+博客简介+搭建心得的参与者可参与评选,根据博客界面的丰富度、功能性及搭建心的的质量由评委进行综合评选。3位获奖者可以各获得戴尔机械键盘1个。建站创意师(10位):提交博客截图+博客简介+搭建心得的参与者可参与评选,根据博客的定位、界面设计的创意性由评委进行综合评选。10位获奖者可以各获得数据库双肩包1个。建站明星(30位):提交博客截图+博客简介的参与者可参与评选,根据点赞数进行评选,点赞数排名Top30 且点赞数≥3的参与者可以各获得罗马仕充电宝1个。阳光普照奖:每个按照要求成功提交作品且通过审核的用户可获得阿里云开发者社区200积分。六、常见问题问:我已经是 ECS 和 RDS MySQL 的用户了,可以参加本次活动吗?答:本次活动仅向ECS和RDS免费试用用户开放,如您不是免费试用用户,您将无法上传作品。问:为何我无法试用 ECS 和 RDS MySQL Serverless ?答:1)您需要完成实名认证或企业认证;2)同一用户仅能对同一产品申请试用一次,建议检查下是否因为有同人注册账号已经参与过活动,导致对应账号无法试用;3)历史未付费购买过该试用产品,如有过购买记录则无法再试用。问:为何我无法在页面上提交参赛作品?答:您需要先开通 ECS 和 RDS MySQL Serverless 免费使用资源,开通后页面顶部的“领取资源”按钮将会变为“提交结果”按钮,如状态未变化,请刷新页面。问:为何我提交的结果一直在“审核中”?答:您的结果提交后会进入审核状态,作品将在1个工作日内审核完毕,审核通过的作品将在页面展示。如您的作品未达到活动要求,将会被拒绝审核。问:奖项可以重复获得吗?答:奖品不重复获得,按最高奖项发放,如人气奖不满 20 人,则按实际人数发放。
一、ECS实例配置1.若您是首次开通ECS云服务器,需要重置云服务器ECS密码请前往ECS控制台重置服务器密码。点击【实例】,选择ECS实例所在地域,可以看到开通的ECS实例。点击【ECS实例名称】或右侧的操作栏下的【管理】,进入此台ECS实例的管理界面。在实例基本信息的主页面右上角,点击 【重置实例密码】 。在弹出的 【重置密码】的对话框中,输入新的自定义密码,完成密码重置。重置密码后,必须重启ECS实例,重置的密码才会生效。2.配置安全组本实验需要使用Apache服务,默认监听80端口,需在ECS实例安全组的入方向添加安全组规则并放行80端口。点击左侧【安全组】,点击【安全组名称】或右侧【配置规则】,进入规则配置页面。在入方向【手动添加】访问规则。授权策略:允许协议类型:自定义TCP端口范围:HTTP(80)授权对象:根据允许授权访问的ip地址添加。若设置0.0.0.0/0或者掩码为0,代表允许或拒绝所有IP的访问,设置时请务必谨慎。3.查看ECS公网地址回到【实例】页面,查看ECS实例的公网ip地址,记下此地址。二、创建数据库账号和密码1. 登录 RDS管理控制台 。2. 在 实例列表页 选择目标实例,在实例右侧操作列,单击管理,进入RDS实例详情页。3. 创建数据库账号。a. 单击左侧导航栏账号管理,然后单击创建账号。b. 参考说明配置账号信息,然后单击 确定 。数据库账号:输入数据库账号名称,例如:test_user 。账号类型:此处选择普通账号。密码:设置账号密码,例如:Password1213。确认密码:再次输入密码。4. 创建数据库。a. 在实例详情页,单击左侧导航栏的 数据库管理 ,然后单击 创建数据库 。b. 参考说明配置数据库信息,然后单击 创建 。数据库(DB)名称:输入数据库名称,例如:wordpress 。支持字符集:默认设为utf8。授权账号:选择上一步新建的数据库账号test_user。备注说明:非必填。用于备注该数据库的相关信息,便于后续数据库管理,最多支持256个字符。5. 设置RDS实例白名单。a. 单击左侧导航栏的 白名单与安全组 ,在白名单设置中点击修改 。b. 在弹出的修改页面中,修改 组内白名单 为刚刚记下的ECS实例的公网IP,然后单击 确定 。三、部署环境连接ECS实例1. 点击右侧图标,打开WebTerminal。输入ECS服务器登录用户名和密码,登录ECS。部署环境1. 在ECS服务器上,执行以下命令,安装Apache服务及其扩展包。yum -y install httpd httpd-manual mod_ssl mod_perl yum -y install httpd httpd-devel若您的ECS是Ubuntu系统,请参考这里进行安装。返回类似如下图结果则表示安装成功:3. 执行以下命令,启动Apache服务并设置服务开机自启动。systemctl start httpd systemctl enable httpd4. 打开浏览器输入ECS服务器的公网IP,如果显示如下图的测试页面表示Apache服务安装成功。5. WordPress是使用PHP语言开发的博客平台。参考以下操作安装PHP。a. 执行以下命令,安装PHP。yum -y install php-fpm php-gd php-mysqlnd phpb. 执行以下命令,创建PHP测试页面。echo "<?php phpinfo(); ?>" > /var/www/html/phc. 执行以下命令,重启Apache服务。systemctl restart httpdd. 打开浏览器,访问 http:///phpinfo.php,显示如下页面表示PHP安装成功。e. 建议您删除phpinfo.php测试文件,消除数据泄露风险。rm -rf /var/www/html/phpinfo.php四、安装和配置WordPress1. 参考以下操作安装WordPress。a. 进入Nginx网站根目录,下载WordPress压缩包。本示例默认安装的是WordPress英文版本。cd /usr/share/nginx/html wget https://wordpress.org/wordpress-5.4.2.zip如果您需安装WordPress中文版本,需运行命令 wget https://cn.wordpress.org/latest-zh_CN.zip,下载WordPress中文版本压缩包。同时您需要注意,后续操作中压缩包的名称必须替换为latest-zh_CN.zip。b. 解压WordPress压缩包。unzip wordpress-5.4.2.zipc. 将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份。cd /usr/share/nginx/html/wordpress cp wp-config-sample.php wp-config.php2. 修改WordPress配置文件。a. 执行以下命令,移动WordPress到Apache根目录。# 在Apache的根目录/var/www/html下,创建一个wp-blog文件夹。 mkdir /var/www/html/wp-blog mv * /var/www/html/wp-blog/b. 执行以下命令,修改 wp-config.php 配置文件。database_name_here为之前步骤中创建的数据库名称,本示例为wordpress。username_here为步骤一创建的数据库用户名,本示例为test_user。password_here为步骤一创建的数据库登录密码,本示例为Password1213。数据库地址为您自己的RDS数据库的外网连接地址。sed -i 's/database_name_here/wordpress/' /var/www/html/wp-blog/wp-config.php sed -i 's/username_here/test_user/' /var/www/html/wp-blog/wp-config.php sed -i 's/password_here/Password1213/' /var/www/html/wp-blog/wp-config.php sed -i 's/localhost/数据库地址/' /var/www/html/wp-blog/wp-config.php说明: RDS数据库的外网连接地址可以在【RDS管理控制台-实例详情-数据库链接】查看,如下图。如未创建外网连接,可以直接在此创建。c. 执行以下命令,查看配置文件信息是否修改成功。cat -n /var/www/html/wp-blog/wp-config.php修改内容如下图所示:3. 执行以下命令,重启Apache服务。systemctl restart httpd4. 初始化WordPress。a. 打开浏览器并访问 http:///wp-blog/wp-admin/install.php。您可以在ECS实例列表页面查看ECS的公网IP。b. 设置您的站点名称、管理员用户名和密码,然后单击 Install WordPress 完成WordPress初始化。c. 单击 Log In ,输入用户名和密码,然后再次单击Log In打开WordPress站点。登录后,您就可以根据需要创建内容进行发布了。至此您已完成WordPress的搭建。通过本次实验您获得了ECS云服务器使用RDS MySQL数据库的使用Wordpress安装及部署
前提条件已创建ECS实例。具体操作,请参见使用向导创建实例。本教程示例场景中,ECS实例的配置如下:实例规格:ecs.g6.large操作系统:公共镜像CentOS 7.7 64位网络类型:专有网络VPCIP地址:公网IP 说明:由于操作系统和版本不同,操作时命令可能存在差异,本教程的操作命令仅为示例,请您以实际软件版本为准。已在ECS实例安全组的入方向中放行了Hadoop所需的8088和50070端口。具体操作,请参见添加安全组规则。背景信息Hadoop是一款由Apache基金会用Java语言开发的分布式开源软件框架,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的能力进行高速运算和存储。Hadoop的核心部件是HDFS(Hadoop Distributed File System)和MapReduce:HDFS:是一个分布式文件系统,可对应用程序数据进行分布式储存和读取。MapReduce:是一个分布式计算框架,MapReduce的核心思想是把计算任务分配给集群内的服务器执行。通过对计算任务的拆分(Map计算和Reduce计算),再根据任务调度器(JobTracker)对任务进行分布式计算。更多信息,请参见Hadoop官网。操作步骤在ECS实例上快速搭建Hadoop伪分布式环境的操作步骤如下:步骤一:安装JDK步骤二:安装Hadoop步骤三:配置Hadoop步骤四:配置SSH免密登录步骤五:启动Hadoop步骤一:安装JDK1.远程连接已创建的ECS实例。具体操作,请参见连接方式概述。2.执行以下命令,下载JDK 1.8安装包。wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz3.执行以下命令,解压下载的JDK 1.8安装包。tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz4.执行以下命令,移动并重命名JDK安装包。本示例中将JDK安装包重命名为java8,您可以根据需要使用其他名称。mv java-se-8u41-ri/ /usr/java85.执行以下命令,配置Java环境变量。如果您将JDK安装包重命名为其他名称,需将以下命令中的java8替换为实际的名称。echo 'export JAVA_HOME=/usr/java8' >> /etc/profile echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile source /etc/profile6.执行以下命令,查看Java是否成功安装。java -version如果返回以下信息,则表示Java已安装成功。openjdk version "1.8.0_41" OpenJDK Runtime Environment (build 1.8.0_41-b04) OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)步骤二:安装Hadoop1.执行以下命令,下载Hadoop安装包。wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz2.执行以下命令,解压Hadoop安装包至/opt/hadoop。tar -zxvf hadoop-2.10.1.tar.gz -C /opt/ mv /opt/hadoop-2.10.1 /opt/hadoop3.执行以下命令,配置Hadoop环境变量。echo 'export HADOOP_HOME=/opt/hadoop/' >> /etc/profile echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile source /etc/profile4.执行以下命令,修改配置文件yarn-env.sh和hadoop-env.sh。echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh5.执行以下命令,测试Hadoop是否安装成功。hadoop version如果返回以下信息,则表示安装成功。Hadoop 2.10.1 Subversion https://github.com/apache/hadoop -r 1827467c9a56f133025f28557bfc2c562d78e816 Compiled by centos on 2020-09-14T13:17Z Compiled with protoc 2.5.0 From source with checksum 3114edef868f1f3824e7d0f68be03650 This command was run using /opt/hadoop/share/hadoop/common/hadoop-common-2.10.1.jar步骤三:配置Hadoop1.修改Hadoop配置文件core-site.xml。a.执行以下命令,进入编辑页面。vim /opt/hadoop/etc/hadoop/core-site.xmlb.输入i,进入编辑模式。c.在节点内,插入如下内容。<property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> <description>location to store temporary files</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>d.按Esc,退出编辑模式,并输入:wq保存并退出。2.修改Hadoop配置文件hdfs-site.xml。a.执行以下命令,进入编辑页面。vim /opt/hadoop/etc/hadoop/hdfs-site.xmlb.输入i,进入编辑模式。c.在节点内,插入如下内容。<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/tmp/dfs/data</value> </property>d.按Esc,退出编辑模式,并输入:wq后保存并退出。步骤四:配置SSH免密登录1.执行以下命令,创建公钥和私钥。ssh-keygen -t rsa回显信息如下所示,表示创建公钥和私钥成功。[root@iZbp1chrrv37a2kts7sydsZ ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:gjWO5mgARst+O5VUaTnGs+LxVhfmCJnQwKfEBTro2oQ root@iZbp1chrrv37a2kts7s**** The key's randomart image is: +---[RSA 2048]----+ | . o+Bo= | |o o .+.# o | |.= o..B = + . | |=. oO.o o o | |Eo..=o* S . | |.+.+o. + | |. +o. . | | . . | | | +----[SHA256]-----+2.执行以下命令,将公钥添加到authorized_keys文件中。cd .ssh cat id_rsa.pub >> authorized_keys步骤五:启动Hadoop1.执行以下命令,初始化namenode 。hadoop namenode -format2.依次执行以下命令,启动Hadoop。start-dfs.sh在弹出的提示中,依次输入yes。start-yarn.sh回显信息如下所示。[root@iZbp1chrrv37a2kts7s**** .ssh]# start-yarn.sh starting yarn daemons starting resourcemanager, logging to /opt/hadoop/logs/yarn-root-resourcemanager-iZbp1chrrv37a2kts7sydsZ.out localhost: starting nodemanager, logging to /opt/hadoop/logs/yarn-root-nodemanager-iZbp1chrrv37a2kts7sydsZ.out3.执行以下命令,可查看成功启动的进程。jps成功启动的进程如下所示。[root@iZbp1chrrv37a2kts7s**** .ssh]# jps 11620 DataNode 11493 NameNode 11782 SecondaryNameNode 11942 ResourceManager 12344 Jps 12047 NodeManager4.打开浏览器访问http://:8088和http://:50070。显示如下界面,则表示Hadoop伪分布式环境已搭建完成。注意:需确保在ECS实例所在安全组的入方向中放行Hadoop所需的8088和50070端口,否则无法访问。具体操作,请参见添加安全组规则。
MySQL是一个关系型数据库管理系统,常用于LAMP和LNMP等网站场景中。本教程介绍如何在Linux系统ECS实例上安装、配置以及远程访问MySQL数据库。背景信息本教程中的MySQL版本仅为示例,您在实际操作时,MySQL的版本可能因软件源的更新而有所不同。关于MySQL相关安装路径说明如下:配置文件:/etc/my.cnf数据存储:/var/lib/mysql命令文件:/usr/bin和/usr/sbin准备工作快速部署时选择已有实例或手动部署MySQL时,已有ECS实例必须满足以下条件:实例已分配公网IP地址或绑定弹性公网IP(EIP)。操作系统:CentOS 7.x、CentOS 8.x、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3。实例安全组的入方向规则已放行22、80、443、3306端口。具体操作,请参见添加安全组规则。Alibaba Cloud Linux 2/3、CentOS 7.x步骤一:安装MySQL1.远程连接ECS实例。具体操作,请参见使用VNC登录实例。2.运行以下命令,更新YUM源。sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm3.运行以下命令,安装MySQL。sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck4.运行以下命令,查看MySQL版本号。mysql -V返回结果如下,表示MySQL安装成功。mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)步骤二:配置MySQL1.运行以下命令,启动并设置开机自启动MySQL服务。sudo systemctl start mysqld sudo systemctl enable mysqld2.运行以下命令,获取并记录root用户的初始密码。sudo grep 'temporary password' /var/log/mysqld.log执行命令结果示例如下。2022-02-14T09:27:18.470008Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: r_V&f2wyu_vI❓说明 示例末尾的r_V&f2wyu_vI为初始密码,后续在对MySQL进行安全性配置时,需要使用该初始密码。3.运行以下命令,对MySQL进行安全性配置。sudo mysql_secure_installationa.根据提示信息,重置MySQL数据库root用户的密码。 ❓说明 在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。Enter password for user root: #输入已获取的root用户初始密码 The existing password for the user account root has expired. Please set a new password. New password: #输入新的MySQL密码 Re-enter new password: #重复输入新的MySQL密码 The 'validate_password' component is installed on the server. The subsequent steps will run with the existing configuration of the component. Using existing password for root. Change the password for root ? ((Press y|Y for Yes, any other key for No) :Y #输入Y选择更新MySQL密码。您也可以输入N不再更新MySQL密码。 New password: #输入新的MySQL密码 Re-enter new password: #重复输入新的MySQL密码 Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :Y #输入Y确认使用已设置的密码。b.根据提示信息,删除匿名用户。By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y #输入Y删除MySQL默认的匿名用户。 Success.c.禁止root账号远程登录。Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y #输入Y禁止root远程登录。 Success.d.删除test库以及对test库的访问权限。By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Y #输入Y删除test库以及对test库的访问权限。 - Dropping test database... Success. - Removing privileges on test database... Success.e.重新加载授权表。Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y #输入Y重新加载授权表。 Success. All done!安全性配置的更多信息,请参见MySQL官方文档。步骤三:远程访问MySQL数据库建议您使用非root账号远程登录MySQL数据库。下文示例中,将创建新的MySQL用户账户,用于远程访问MySQL。1.远程连接ECS实例。关于连接方式的介绍,请参见连接方式概述。2.运行以下命令后,输入root用户的密码登录MySQL。sudo mysql -uroot -p3.依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。本示例账号为dmsTest、密码为Ecs@123****。 ❗重要 实际创建账号时,需将示例密码Ecs@123****更换为符合要求的密码,并妥善保存。密码要求:长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。可以使用以下特殊符号:()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/#创建数据库用户dmsTest,并授予远程连接权限。 create user 'dmsTest'@'%' identified by 'Ecs@123****'; #为dmsTest用户授权数据库所有权限。 grant all privileges on *.* to 'dmsTest'@'%'; #刷新权限。 flush privileges;4.执行以下命令,退出数据库。exit5.使用dmsTest账号远程登录MySQL。(推荐)您可以通过阿里云提供的数据管理服务DMS(Data Management Service)来远程访问MySQL数据库。具体操作,请参见云数据库录入。您可以通过MySQL客户端远程登录MySQL进行测试。例如:MySQL Workbench、Navicat。CentOS 8.x(手动部署)步骤一:安装MySQL1.远程连接ECS实例。具体操作,请参见使用VNC登录实例。2.切换CentOS 8源地址。CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。如果您需要使用CentOS 8系统中的一些安装包,则需要手动切换源地址。具体操作,请参见CentOS 8 EOL如何切换源?。3.运行以下命令,安装MySQL。sudo dnf -y install @mysql4.运行以下命令,查看MySQL版本信息。mysql -V查看版本结果如图所示。 步骤二:配置MySQL1.运行以下命令,启动并设置开机自启动MySQL服务。sudo systemctl start mysqld sudo systemctl enable mysqld2.运行以下命令,对MySQL进行安全性配置。sudo mysql_secure_installationa.根据提示信息,重置MySQL数据库root用户的密码。Press y|Y for Yes, any other key for No: y #输入Y并回车开始相关配置。 There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 #选择密码验证策略强度,策略0表示低,1表示中,2表示高。建议您选择高强度的密码验证策略。 Please set the password for root here. New password: #设置MySQL的新密码 Re-enter new password: #重复输入新的MySQL密码 Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y ##输入Y确认使用已设置的密码。b.根据提示信息,删除匿名用户。By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y #输入Y删除MySQL默认的匿名用户。 Success.c.禁止root账号远程登录。Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y #输入Y禁止root远程登录。 Success.d.删除test库以及对test库的访问权限。By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Y #输入Y删除test库以及对test库的访问权限。 - Dropping test database... Success. - Removing privileges on test database... Success.e.重新加载授权表。Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y #输入Y重新加载授权表。 Success. All done!安全性配置的更多信息,请参见MySQL官方文档。步骤三:远程访问MySQL数据库建议您使用非root账号远程登录MySQL数据库。下文示例中,将创建新的MySQL用户账户,用于远程访问MySQL。1.远程连接ECS实例。关于连接方式的介绍,请参见连接方式概述。2.运行以下命令后,输入root用户的密码登录MySQL。sudo mysql -uroot -p3.依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。本示例账号为dmsTest、密码为Ecs@123****。❓重要 实际创建账号时,需将示例密码Ecs@123****更换为符合要求的密码,并妥善保存。密码要求:长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。可以使用以下特殊符号:()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/#创建数据库用户dmsTest,并授予远程连接权限。 create user 'dmsTest'@'%' identified by 'Ecs@123****'; #为dmsTest用户授权数据库所有权限。 grant all privileges on *.* to 'dmsTest'@'%'; #刷新权限。 flush privileges;4.执行以下命令,退出数据库。exit5.使用dmsTest账号远程登录MySQL。(推荐)您可以通过阿里云提供的数据管理服务DMS(Data Management Service)来远程访问MySQL数据库。具体操作,请参见云数据库录入。您可以通过MySQL客户端远程登录MySQL进行测试。例如:MySQL Workbench、Navicat。
教程简介本教程提供在阿里云云服务器ECS上基于CentOS 7.9 64位操作系统搭建高可用的小程序服务端的指引。同时指导您在本地开发一个简单的支付宝小程序——ECS小助手,通过远程调用部署在ECS上的服务端,实现在小程序中输入框输入ECS实例ID查询实例详细信息的功能。小程序界面的示意图如下:我能学到什么熟悉远程登录CentOS操作系统的ECS实例。学会在ECS实例中部署一个高可用的Python服务。开发支付宝小程序页面,并与服务端进行数据交互。一、准备环境和资源准备资源部署高可用的小程序服务需要2个ECS实例(CentOS 7.9 64位)、1个CLB实例。领取免费试用权益进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。如果您已有相应资源,可以跳过该步骤直接使用。如果您是产品新用户,可按下列步骤领取免费试用权益。资源领取入口本教程配置云服务器ECS1核2GB 3个月地域:华北2(北京)操作系统:CentOS 7.9 64位试用数量:2(ECS01、ECS02)其他参数:保持默认值或按需选择传统型负载均衡CLB每月750个小时 15LCU(免费:每月750小时实例使用时间,每月15个LCU,时长3个月)地域与可用区:选择与ECS实例相同的地域,本教程选择华北2(北京)实例计费方式:按使用量计费实例类型:公网IP 版本:IPv4试用数量:1共享流量包10GB 1个月(用于抵扣CLB公网流量费)二、创建角色并绑定到ECS实例创建好实例后,您需要创建角色关联到ECS实例,用于后端服务调用SDK。在实例内部基于STS(Security Token Service)临时凭证访问云产品的API,临时凭证将周期性更新。即可以保证云账号AccessKey安全,还可以借助访问控制RAM实现精细化控制和权限管理。1.创建实例RAM角色。使用阿里云账号登录RAM控制台。在左侧导航栏,选择身份管理 > 角色。在角色页面,单击创建角色。在创建角色面板,选择可信实体类型选择为阿里云服务,然后单击下一步。阿里云服务用于授权ECS实例访问或管理您的云资源。RAM角色选择阿里云服务类型后,支持授予给ECS实例。选择角色类型为普通服务角色。输入角色名称和备注。选择受信服务为云服务器。单击完成。单击关闭。2.创建自定义策略。在下面为RAM校色授予权限时,选择这里创建的策略。使用阿里云账号登录RAM控制台。在左侧导航栏,选择权限管理>权限策略。在权限策略页面,单击创建权限策略。在创建权限策略页面,单击脚本编辑页签。输入权限策略内容,然后单击继续编辑基本信息。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeInstances", "ecs:DescribeInstanceStatus" ], "Resource": "*" } ] }输入权限策略名称:EcsRamRolePolicyTest 和备注。单击确定。3.为RAM角色授予权限。使用阿里云账号登录RAM控制台。在左侧导航栏,选择身份管理 > 角色。在角色页面,单击目标RAM角色操作列的精确授权。在添加权限面板,选择权限策略类型为自定义策略,然后输入刚刚创建的权限策略名称。单击确定。单击关闭。4.为实例授予RAM角色。登录ECS管理控制台。在左侧导航栏,选择实例与镜像 > 实例。在顶部菜单栏左上角处,选择创建ECS的地域,本教程是是华北2(北京)。找到要操作的ECS实例,选择实例设置授予/收回RAM角色。在弹窗中,选择创建好的实例RAM角色,单击确定完成授予。三、登录云服务器开通免费试用ECS服务器后,系统会创建一个ECS实例(对应一台云服务器),使用ECS实例部署应用或搭建环境前,需设置实例密码后才能登录实例。1.登录ECS控制台,在左侧导航栏,选择实例与镜像 > 实例。2.在顶部菜单栏左上角处,选择和试用实例相同的地域。3.设置该实例登录密码。在操作列单击 > 实例属性 > 重置实例密码,按照界面提示设置ECS实例的登录密码。保存密码后,在弹出的页面,单击立即重启使密码生效。 实例创建完成大约3~5分钟后,才支持重置实例密码,如不可重置请耐心等待后重试。4.单击试用实例的ID,选择安全组页签,单击安全组操作列的配置规则,在入方向添加需要放行的端口。本教程中,在安全组入方向放行SSH默认22端口和Apache默认80端口。5.远程连接ECS实例。 a. 返回实例页面,单击该实例对应操作列下的远程连接。 b. 在弹出的连接与命令对话框中,单击通过Workbench远程连接对应的立即登录。 c. 在弹出的登录实例对话框中,输入登录信息。6.重复执行以上操作,登录ECS02实例。四、安装Nginx服务1.执行命令安装Nginx。yum update && yum -y install nginx2.启动Nginx。systemctl start nginx3.测试Nginx。在浏览器地址栏输入http://,ECS服务器的弹性公网IP可以从ECS实例页面获取,出现Welcome to CentOS表示Nginx已安装成功。4.重复执行以上操作,在ECS02实例中安装Nginx服务。五、开发后端服务1.创建服务目录mkdir /data && cd /data2.创建并编辑Python服务依赖文件。vim requirements.txt3.进入Vim编辑器后,按i键进入编辑模式,粘贴以下内容。aliyun_python_sdk_core==2.13.36 aliyun_python_sdk_ecs==4.24.62 Flask==2.0.34.粘贴后,按Esc键,输入:x保存并退出编辑。5.执行如下命令安装依赖。pip3 install --upgrade pip && pip3 install -r requirements.txt6.创建并编辑Python服务代码文件。vim get_server_info.py7.进入Vim编辑器后,按i键进入编辑模式,粘贴以下内容。❔说明代码中metaUrl中EcsRamRoleTest需要和前面创建的角色名称保持一致。代码中region需要与您真实创建实例地域保持一致。# -*- coding: utf-8 -*- from flask import Flask, jsonify, request from aliyunsdkcore.client import AcsClient from aliyunsdkcore.auth import credentials import requests import json from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest, DescribeInstanceStatusRequest app = Flask(__name__) metaUrl = 'http://100.100.100.200/latest/meta-data/ram/security-credentials/EcsRamRoleTest' region = 'cn-beijing' # 获取临时身份凭证 def getStsToken(): tokenResponse = requests.get(metaUrl) return tokenResponse.json() # 用于健康检查 @app.route('/', methods=['HEAD', 'GET']) def index(): return "ok" # 在app.route装饰器中声明响应的URL和请求方法 @app.route('/ecs/getServerInfo', methods=['GET']) def getServerInfo(): tokenResult = getStsToken() accessKeyId = tokenResult['AccessKeyId'] accessSecret = tokenResult['AccessKeySecret'] securityToken = tokenResult['SecurityToken'] credential = credentials.StsTokenCredential(accessKeyId, accessSecret, securityToken) client = AcsClient(credential=credential, region_id=region) # GET方式获取请求参数 instanceId = request.args.get("instanceId") if instanceId is None: return "Invalid Parameter" # 查询实例信息 describeInstancesRequest = DescribeInstancesRequest.DescribeInstancesRequest() describeInstancesRequest.set_InstanceIds([instanceId]) describeInstancesResponse = client.do_action_with_exception(describeInstancesRequest) # 返回数据为bytes类型,需要将bytes类型转换为str然后反序列化为json对象 describeInstancesResponse = json.loads(str(describeInstancesResponse, 'utf-8')) print(describeInstancesResponse) if len(describeInstancesResponse['Instances']['Instance']) == 0: return jsonify({}) instanceInfo = describeInstancesResponse['Instances']['Instance'][0] # 查询实例状态 describeInstanceStatusRequest = DescribeInstanceStatusRequest.DescribeInstanceStatusRequest() describeInstanceStatusRequest.set_InstanceIds([instanceId]) describeInstanceStatusResponse = client.do_action_with_exception(describeInstanceStatusRequest) describeInstanceStatusResponse = json.loads(str(describeInstanceStatusResponse, 'utf-8')) instanceStatus = describeInstanceStatusResponse['InstanceStatuses']['InstanceStatus'][0]['Status'] # 封装结果 result = { # cpu数 'Cpu': instanceInfo['Cpu'], # 内存大小 'Memory': instanceInfo['Memory'], # 操作系统名称 'OSName': instanceInfo['OSName'], # 实例规格 'InstanceType': instanceInfo['InstanceType'], # 实例公网IP地址 'IpAddress': instanceInfo['PublicIpAddress']['IpAddress'][0], # 公网出带宽最大值 'InternetMaxBandwidthOut': instanceInfo['InternetMaxBandwidthOut'], # 实例状态 'instanceStatus': instanceStatus } return jsonify(result) if __name__ == "__main__": app.run()8.粘贴后,按Esc键,输入:x保存并退出编辑。9.重复执行以上操作,在ECS02实例中开发后端服务。六、安装uWSGI Server写完服务端代码后,您需要安装并使用uWSGI来启动Flask服务。1.执行命令安装uWSGI。pip3 install uwsgi2.新建uwsgi配置文件。cd /data &&vim uwsgi.ini3.进入Vim编辑器后,按i键进入编辑模式。[uwsgi] #uwsgi启动时所使用的地址和端口 socket=127.0.0.1:5000 #指向网站目录 chdir=/data #python启动程序文件 wsgi-file=get_server_info.py #python程序内用以启动的application变量名 callable=app #处理器数 processes=1 #线程数 threads=2 #状态检测地址 stats=127.0.0.1:9191 #保存启动之后主进程的pid pidfile=uwsgi.pid #设置uwsgi后台运行,uwsgi.log保存日志信息 自动生成 daemonize=uwsgi.log4.粘贴后,按Esc键,输入:x保存并退出编辑。5.运行uwsgi server。uwsgi uwsgi.ini6.执行以下命令查看uwsgi服务启动情况,看到如下图效果是服务启动成。ps aux | grep uwsgi7.重复执行以上操作,在ECS02实例中安装uWSGI Server。七、配置Nginx并重启启动好后端服务后,我们需要添加Nginx配置来代理后端服务。1.创建配置文件。vim /etc/nginx/conf.d/app.conf2.进入Vim编辑器后,按i键进入编辑模式。server { listen 80 default_server; server_name app.example.com; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; location / { # 转发端口 uwsgi_pass 127.0.0.1:5000; include uwsgi_params; } }3.粘贴后,按Esc键,输入:x保存并退出编辑。4.重启Nginx。nginx -s reload5.验证配置是否成功。❔说明如果未运行成功,可以在/data/uwsgi.log日志文件查看原因。curl http://127.0.0.1/ecs/getServerInfo命令执行结果是Invalid Parameter表示服务配置成功。6.重复执行以上操作,在ECS02实例中配置Nginx并重启。八、配置监听负载均衡实例监听负责检查连接请求,然后根据调度算法定义的转发策略将请求流量分发至后端服务器。1.登录传统型负载均衡CLB控制台。2.在实例管理页面,单击已创建的CLB实例ID。3.在监听页签单击添加监听。4.在协议&监听配置向导,完成以下主要参数的配置,其余参数保持默认配置,然后单击下一步。监听配置说明示例值选择负载均衡协议选择监听的协议类型。HTTP监听端口设置前端协议端口,即用来接收请求并向后端服务器进行请求转发的监听端口。监听端口范围:1~65535。80监听名称自定义监听的名称。HTTP_805.在后端服务器配置向导,选择默认服务器组,可以看到已添加的ECS01和ECS02,如果没默认添加点击继续添加,选择刚刚创建的ECS01和ECS02实例。6.输入ECS01和ECS02的端口,本教程都设置为80,然后单击下一步。7.在健康检查配置向导,保持默认配置,单击下一步,然后单击提交。等待配置成功后,单击知道了。九、注册支付宝小程序开发支付宝小程序前需要您入驻支付宝开放平台,具体操作请参见开发者入驻。1.进入支付宝开放平台注册页根据指引填写信息和提交相应的资料,完成账号申请。2.在支付宝开放平台上创建小程序应用,具体操作请参见创建小程序。❔说明您可以通过此账号关联本地开发项目和小程序,上传您的小程序项目到支付宝开放平台。十、安装小程序开发环境并创建项目启动好后端服务后,我们接下来要开发开发小程序。先安装小程序开发环境。1.安装Node.js开发环境,请到Node.js页面下载并安装Node.js环境。2.下载并安装支付宝小程序开发者工具。详细信息请参见下载说明。3.打开小程序开发者工具。4.单击加号创建支付宝小程序空白项目。5.按照流程,选择支付宝,模板选择空白模板,填入如下项目信息后,单击完成。项目名称:例如ECSAssistant。项目路径:例如/Users/demo/ECSAssistant。框架语言:原生小程序。十一、开发小程序安装好开发环境后,我们来编写小程序代码。1.生成的的小程序示例项目结构如下。可以看到小程序的项目结构中有三个前缀为app的文件,它们定义了小程序的一些全局配置。app.json 应用配置。用于配置小程序的页面列表、默认窗口标题、导航栏背景色等。app.acss 应用样式。定义了全局样式,作用于当前小程序的所有页面。app.js 应用逻辑。可用于注册小程序应用,可配置小程序的生命周期,声明全局数据,调用丰富的 API。小程序所有的页面文件都在pages/路径下,页面文件有四种文件类型,分别是.js、.axml、.acss和.json后缀的文件。相比全局配置文件,页面配置文件只对当前页面生效。其中.axml文件定义了当前页面的页面结构。此外,小程序中的所有页面都需要在app.json文件中声明。更多配置请参见小程序全局配置介绍。ECSAssistant ├── app.acss ├── app.js ├── app.json └── pages └── index ├── index.axml ├── index.js └── index.json2.编辑app.json文件,将小程序页面Title修改为ECS小助手,修改后的app.json文件内容如下。{ "pages": [ "pages/index/index" ], "window": { "defaultTitle": "ECS小助手" } }3.在pages/index目录下,编辑index.axml文件,定义index页面的页面结构,修改后的index.axml文件内容如下。❔说明AXML中标签写法和HTML类似,并且支持使用变量表达式进行模板渲染,更多请参见AXML 介绍。支付宝小程序内置了丰富的UI组件,更多请参见基础组件概览。<view class='container'> <input placeholder='请输入你的ECS实例ID' class='search-input' value='{{ inputValue }}' onBlur='bindblur'></input> <view class='resultView' hidden='{{ showView }}'> <text class='result'>CPU数:{{queryResult.Cpu}} 核</text> <text class='result'>内存大小:{{queryResult.Memory}} MB</text> <text class='result'>操作系统:{{queryResult.OSName}}</text> <text class='result'>实例规格:{{queryResult.InstanceType}}</text> <text class='result'>公网IP地址:{{queryResult.IpAddress}}</text> <text class='result'>网络带宽:{{queryResult.InternetMaxBandwidthOut}} MB/s</text> <text class='result'>在线状态:{{queryResult.instanceStatus == 'Running' ? '运行中':'已关机'}}</text> </view> </view>4.在pages/index目录下,新建index.acss文件,定义index的页面样式,将index.acss文件内容替换为右侧代码。.container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box; } .search-input { position: relative; margin-bottom: 50rpx; padding-left: 80rpx; line-height: 70rpx; height: 80rpx; box-sizing: border-box; border: 2px solid #ff8f0e; border-radius: 100rpx; overflow: hidden; text-overflow: ellipsis; transition: border 0.2s; } .resultView { margin-top: 70rpx; } .result { position: relative; left: 30rpx; display: list-item; font-size: small; }5.在pages/index目录下,编辑index.js文件,定义搜索框的失去焦点事件,修改后的index.js文件内容如下。❔说明支付宝提供了丰富的前端API和服务端API,您可以基于这些API来实现您的小程序功能,更多请参见小程序 API 使用说明。代码中替换为您创建的CLB实例的公网IP地址。Page({ data: { queryResult: null, showView: "false" }, bindblur: function(e) { let that = this; my.httpRequest({ url: "http://<CLB_PUBLIC_IP>/ecs/getServerInfo", method: "GET", data: { instanceId: e.detail.value }, success(res) { if (res.status == 200) { that.setData({ queryResult: res.data, showView: !that.data.showView }); } else { that.setData({ showView: "false" }); my.showToast({ content: "请输入你的ECS实例ID", type: 'fail', duration: 3000, }); } } }); } });6.保存后,编辑器会自动刷新,看到如下界面,表示小程序运行成功了。十二、完成完成以上操作后,您已经成功部署了服务端程序,并且在本地开发好了小程序。您可以登录ECS控制台,复制刚刚创建的ECS实例ID,输入到小程序输入框中,就可以看到结果了。您可以通过停机一台ECS模拟故障进而验证服务的可用性。操作如下:1.登录ECS控制台,找到目标实例,在操作列单击,在面板单击停止。2.等ECS状态为已停止后,再次在小程序中查询ECS实例ID,看到返回正常内容,则表明服务可用。十三、清理及后续清理1.ECS提供的试用实例有按量付费实例和包年包月实例。请在阿里云免费试用确认您试用的实例类型,并参考以下规则清理:如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。包年包月实例到期会自动释放,释放实例的同时释放数据。如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。2.CLB免费试用权益有期限限制,权益到期后未释放的CLB实例可能产生费用。完成教程后,请参考以下场景处理CLB实例:如果无需使用CLB实例,您可以登录传统型负载均衡CLB控制台,在左侧导航栏,选择传统型负载均衡CLB(原SLB)>实例管理,在实例管理页面,找到目标CLB实例,在操作列单击>释放设置,按照界面提示手动释放实例。如果需继续使用CLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的CLB实例会因欠费而被自动停机,停机7天内CLB实例将保留,7天后CLB实例和数据都将被自动释放。后续如果您期望上线您的小程序,您需要做下面几件事:1.申请域名,可以参考域名注册基本流程如何注册阿里云域名。2.申请SSL证书,并配置到服务器上,可以参考申请免费DV单域名试用证书。3.上传小程序并提交审核,可以参考小程序发布上线。待审核通过后,手动上线小程序,就可以在支付宝客户端中查看和使用小程序了。十四、延伸阅读快速搭建网站搭建云上博客部署LAMP环境(CentOS 7)自助建站方式汇总
搭建高可用的微信小程序服务教程简介本教程提供在阿里云云服务器ECS上基于CentOS 7.9操作系统搭建高可用的小程序服务端的指引。同时指导您在本地开发一个简单的微信小程序——ECS小助手,通过远程调用部署在ECS上的服务端,实现在小程序中输入框输入ECS实例ID查询实例详细信息的功能。小程序界面的示意图如下:我能学到什么熟悉远程登录CentOS操作系统的ECS实例。学会在ECS实例中部署一个高可用的Python服务。开发微信小程序页面,并与服务端进行数据交互。一、准备环境和资源准备资源部署高可用的小程序服务需要2个ECS实例(CentOS 7.9 64位)、1个CLB实例。领取免费试用权益进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。如果您已有相应资源,可以跳过该步骤直接使用。如果您是产品新用户,可按下列步骤领取免费试用权益。资源领取入口本教程配置云服务器ECS1核2GB 3个月地域:华北2(北京)操作系统:CentOS 7.9 64位试用数量:2(ECS01、ECS02)其他参数:保持默认值或按需选择传统型负载均衡CLB每月750个小时 15LCU(免费:每月750小时实例使用时间,每月15个LCU,时长3个月)地域与可用区:选择与ECS实例相同的地域,本教程选择华北2(北京)实例计费方式:按使用量计费实例类型:公网IP 版本:IPv4试用数量:1共享流量包10GB 1个月(用于抵扣CLB公网流量费)二、一键配置准备好资源后,您可以通过一键配置快速完成资源配置或应用搭建。一键配置基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,旨在帮助开发者通过IaC(Infrastructure as Code)的方式体验资源的自动化配置。如需查看软件版本、安装命令等配置的具体信息,可查看教程的手动配置版。模板完成的内容包括:为ECS实例配置安全组创建角色并绑定到ECS实例安装Nginx服务并写入配置安装uWSGI Server并写入配置安装Python环境并写入代码操作步骤1.打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并在模板内容区域展示YAML文件的详细信息。2.ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域。您可以在顶部导航栏选择华北2(北京)地域,保持页面所有选项不变,单击下一步进入配置模板参数页面。3.在配置模板参数页面修改资源栈名称,选择您申请免费试用时创建的ECS实例,设置要创建的用于ECS实例扮演的角色名称,选择创建的CLB实例。填写完所有必选信息并确认后单击创建开始一键配置。4.当资源栈信息页面的状态显示为创建成功时表示一键配置完成。三、注册微信小程序在开发小程序之前,您需要先注册微信小程序。1.进入小程序页面,单击前往注册,根据指引填写信息和提交相应的资料,完成账号申请。2.使用申请的微信公众平台账号登录小程序后台,单击开发管理> 开发设置,可以看到小程序的AppID,请记录AppID,后续操作中需要使用。四、安装小程序开发环境并创建项目启动好后端服务后,我们接下来要开发开发小程序。先安装小程序开发环境。1.安装Node.js开发环境,请到Node.js页面下载并安装Node.js环境。2.下载并安装微信小程序开发工具。详细信息请参见开发工具下载。3.打开小程序开发工具,使用微信扫码登录。4.单击加号创建微信小程序示例项目。5.参考以下填写项目信息,最后单击新建。项目名称:例如ECSAssistant。目录:例如D:\workspace\wechat\ECSAssistant。AppID:小程序的唯一标识,从小程序控制台获取。开发模式:小程序。后端服务:不使用云服务。6.配置项目允许访问非HTTPS域名。在顶部配置栏,选择设置>项目设置,在本地设置页签,选中不校验合法域名、web-view(业务域名)、TLS版本一级HTTPS证书。五、开发小程序安装好开发环境后,我们来编写小程序代码。1.生成的的小程序示例项目结构如下。可以看到小程序的项目结构中有三种前缀为app的文件,它们定义了小程序的一些全局配置。app.json 应用配置。用于配置小程序的页面列表、默认窗口标题、导航栏背景色等。更多信息,请参见全局配置。app.acss 应用样式。定义了全局样式,作用于当前小程序的所有页面。app.js 应用逻辑。可配置小程序的生命周期,声明全局数据,调用丰富的API。小程序所有的页面文件都在pages/路径下,页面文件有四种文件类型,分别是.js、.wxml、.wxss、和.json后缀的文件。相比全局配置文件,页面配置文件只对当前页面生效。其中.wxml文件定义了当前页面的页面结构。小程序中的所有页面都需要在app.json文件中声明。更多信息,请参见代码构成。此外,项目顶层还有开发工具配置文件project.config.json和爬虫索引文件sitemap.json。ECSAssistant ├── app.js ├── app.json ├── app.wxss ├── pages │ ├── index │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ └── logs │ ├── logs.js │ ├── logs.json │ ├── logs.wxml │ └── logs.wxss ├── project.config.json └── sitemap.json2.编辑app.json文件,将小程序页面Title修改为ECS小助手,修改后的app.json文件内容如下。{ "pages":[ "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "ECS小助手", "navigationBarTextStyle":"black" }, "style": "v2", "sitemapLocation": "sitemap.json" }3.编辑pages/index/index.wxss文件,定义index的页面样式,修改后的index.wxss文件内容如下。.search-input { position: relative; margin-bottom: 50rpx; padding-left:80rpx; line-height: 70rpx; height: 80rpx; box-sizing: border-box; border: 2px solid #ff8f0e; border-radius: 100rpx; overflow: hidden; text-overflow: ellipsis; transition: border 0.2s; } .resultView { margin-top: 70rpx; } .result { position: relative; left: 30rpx; display: list-item; font-size: small; }4.编辑pages/index/index.js文件,定义搜索框的失去焦点事件,修改后的index.js文件内容如下。❔说明将代码中换成您刚刚创建的CLB实例的公网IP。Page({ data: { queryResult: null, showView: 'false', }, bindblur: function(e) { let that = this; wx.request({ url: 'http://<CLB_PUBLIC_IP>/ecs/getServerInfo', method: 'GET', data: { instanceId: e.detail.value }, success(res) { if(res.statusCode == 200){ that.setData({ queryResult: res.data, showView: !that.data.showView, }); }else{ that.setData({ showView: 'false', }); wx.showToast({ title: '请输入你的ECS实例ID', duration: 1500, icon: 'none', mask: true }) } } }) } })5.编辑pages/index/index.wxml文件,编写展示界面,修改后的index.wxml文件内容如下。<view class='container'> <input placeholder='请输入你的ECS实例ID' class='search-input' value='{{ inputValue }}' bindblur='bindblur'></input> <view class='resultView' hidden='{{ showView }}'> <text class='result'>CPU数:{{queryResult.Cpu}} 核</text> <text class='result'>内存大小:{{queryResult.Memory}} MB</text> <text class='result'>操作系统:{{queryResult.OSName}}</text> <text class='result'>实例规格:{{queryResult.InstanceType}}</text> <text class='result'>公网IP地址:{{queryResult.IpAddress}}</text> <text class='result'>网络带宽:{{queryResult.InternetMaxBandwidthOut}} MB/s</text> <text class='result'>在线状态:{{queryResult.instanceStatus == 'Running' ? '运行中':'已关机'}}</text> </view> </view>6.保存后,编辑器会自动刷新。看到如下界面,表示小程序运行成功了。六、完成完成以上操作后,您已经成功部署了服务端程序,并且在本地开发好了小程序。您可以登录ECS控制台,复制刚刚创建的ECS实例ID,输入到小程序输入框中,就可以看到结果了。您可以通过停机一台ECS模拟故障进而验证服务的可用性。操作如下:1.登录ECS控制台,找到目标实例,在操作列单击,在面板单击停止。2.等ECS状态为已停止后,再次在小程序中查询ECS实例ID,看到返回正常内容,则表明服务可用。七、清理及后续清理1.ECS提供的试用实例有按量付费实例和包年包月实例。请在阿里云免费试用确认您试用的实例类型,并参考以下规则清理:如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。包年包月实例到期会自动释放,释放实例的同时释放数据。如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。2.CLB免费试用权益有期限限制,权益到期后未释放的CLB实例可能产生费用。完成教程后,请参考以下场景处理CLB实例:如果无需使用CLB实例,您可以登录传统型负载均衡CLB控制台,在左侧导航栏,选择传统型负载均衡CLB(原SLB)>实例管理,在实例管理页面,找到目标CLB实例,在操作列单击>释放设置,按照界面提示手动释放实例。如果需继续使用CLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的CLB实例会因欠费而被自动停机,停机7天内CLB实例将保留,7天后CLB实例和数据都将被自动释放。后续如果您期望上线您的小程序,您需要做下面几件事:1.申请域名,可以参考域名注册基本流程如何注册阿里云域名。2.申请SSL证书,并配置到服务器上,可以参考申请免费DV单域名试用证书。3.上传小程序并提交审核,可以参考小程序发布上线。待审核通过后,手动上线小程序,就可以在微信客户端中查看和使用小程序了。八、延伸阅读快速搭建网站搭建云上博客部署LAMP环境(CentOS 7)自助建站方式汇总搭建高可用的支付宝小程序服务教程简介本教程提供在阿里云云服务器ECS上基于CentOS 7.9 64位操作系统搭建高可用的小程序服务端的指引。同时指导您在本地开发一个简单的支付宝小程序——ECS小助手,通过远程调用部署在ECS上的服务端,实现在小程序中输入框输入ECS实例ID查询实例详细信息的功能。小程序界面的示意图如下:我能学到什么1.熟悉远程登录CentOS操作系统的ECS实例。2.学会在ECS实例中部署一个高可用的Python服务。3.开发支付宝小程序页面,并与服务端进行数据交互。一、准备环境和资源准备资源部署高可用的小程序服务需要2个ECS实例(CentOS 7.9 64位)、1个CLB实例。领取免费试用权益进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。如果您已有相应资源,可以跳过该步骤直接使用。如果您是产品新用户,可按下列步骤领取免费试用权益。资源领取入口本教程配置云服务器ECS1核2GB 3个月地域:华北2(北京)操作系统:CentOS 7.9 64位试用数量:2(ECS01、ECS02)其他参数:保持默认值或按需选择传统型负载均衡CLB每月750个小时 15LCU(免费:每月750小时实例使用时间,每月15个LCU,时长3个月)地域与可用区:选择与ECS实例相同的地域,本教程选择华北2(北京)实例计费方式:按使用量计费实例类型:公网IP 版本:IPv4试用数量:1共享流量包10GB 1个月(用于抵扣CLB公网流量费)二、一键配置准备好资源后,您可以通过一键配置快速完成资源配置或应用搭建。一键配置基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,旨在帮助开发者通过IaC(Infrastructure as Code)的方式体验资源的自动化配置。如需查看软件版本、安装命令等配置的具体信息,可查看教程的手动配置版。模板完成的内容包括:为ECS实例配置安全组创建角色并绑定到ECS实例安装Nginx服务并写入配置安装uWSGI Server并写入配置安装Python环境并写入代码操作步骤1.打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并在模板内容区域展示YAML文件的详细信息。2.ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域。您可以在顶部导航栏选择华北2(北京)地域,保持页面所有选项不变,单击下一步进入配置模板参数页面。3.在配置模板参数页面修改资源栈名称,选择您申请免费试用时创建的ECS实例,设置要创建的用于ECS实例扮演的角色名称,选择创建的CLB实例。填写完所有必选信息并确认后单击创建开始一键配置。4.当资源栈信息页面的状态显示为创建成功时表示一键配置完成。三、注册支付宝小程序开发支付宝小程序前需要您入驻支付宝开放平台,具体操作请参见开发者入驻。1.进入支付宝开放平台注册页根据指引填写信息和提交相应的资料,完成账号申请。2.在支付宝开放平台上创建小程序应用,具体操作请参见创建小程序。❔说明您可以通过此账号关联本地开发项目和小程序,上传您的小程序项目到支付宝开放平台。四、安装小程序开发环境并创建项目启动好后端服务后,我们接下来要开发开发小程序。先安装小程序开发环境。1.安装Node.js开发环境,请到Node.js页面下载并安装Node.js环境。2.下载并安装支付宝小程序开发者工具。详细信息请参见下载说明。3.打开小程序开发者工具。4.单击加号创建支付宝小程序空白项目。5.按照流程,选择支付宝,模板选择空白模板,填入如下项目信息后,单击完成。项目名称:例如ECSAssistant。项目路径:例如/Users/demo/ECSAssistant。框架语言:原生小程序。 五、开发小程序安装好开发环境后,我们来编写小程序代码。1.生成的的小程序示例项目结构如下。可以看到小程序的项目结构中有三个前缀为app的文件,它们定义了小程序的全局配置。app.json 应用配置。用于配置小程序的页面列表、默认窗口标题、导航栏背景色等。app.acss 应用样式。定义了全局样式,作用于当前小程序的所有页面。app.js 应用逻辑。可用于注册小程序应用,可配置小程序的生命周期,声明全局数据,调用丰富的 API。小程序所有的页面文件都在pages/路径下,页面文件有四种文件类型,分别是.js、.axml、.acss(可选)和.json后缀的文件。相比全局配置文件,页面配置文件只对当前页面生效。其中.axml文件定义了当前页面的页面结构。此外,小程序中的所有页面都需要在app.json文件中声明。更多配置请参见小程序全局配置介绍。ECSAssistant ├── app.acss ├── app.js ├── app.json └── pages └── index ├── index.axml ├── index.js └── index.json2.编辑app.json文件,将小程序页面Title修改为ECS小助手,修改后的app.json文件内容如下。{ "pages": [ "pages/index/index" ], "window": { "defaultTitle": "ECS小助手" } }3.在pages/index目录下,编辑index.axml文件,定义index页面的页面结构,修改后的index.axml文件内容如下。❔说明AXML中标签写法和HTML类似,并且支持使用变量表达式进行模板渲染,更多请参见AXML 介绍。支付宝小程序内置了丰富的UI组件,更多请参见基础组件概览。<view class='container'> <input placeholder='请输入你的ECS实例ID' class='search-input' value='{{ inputValue }}' onBlur='bindblur'></input> <view class='resultView' hidden='{{ showView }}'> <text class='result'>CPU数:{{queryResult.Cpu}} 核</text> <text class='result'>内存大小:{{queryResult.Memory}} MB</text> <text class='result'>操作系统:{{queryResult.OSName}}</text> <text class='result'>实例规格:{{queryResult.InstanceType}}</text> <text class='result'>公网IP地址:{{queryResult.IpAddress}}</text> <text class='result'>网络带宽:{{queryResult.InternetMaxBandwidthOut}} MB/s</text> <text class='result'>在线状态:{{queryResult.instanceStatus == 'Running' ? '运行中':'已关机'}}</text> </view> </view>4.在pages/index目录下,新建index.acss文件,定义index的页面样式,将index.acss文件内容替换为右侧代码。.container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box; } .search-input { position: relative; margin-bottom: 50rpx; padding-left: 80rpx; line-height: 70rpx; height: 80rpx; box-sizing: border-box; border: 2px solid #ff8f0e; border-radius: 100rpx; overflow: hidden; text-overflow: ellipsis; transition: border 0.2s; } .resultView { margin-top: 70rpx; } .result { position: relative; left: 30rpx; display: list-item; font-size: small; }5.在pages/index目录下,编辑index.js文件,定义搜索框的失去焦点事件,修改后的index.js文件内容如下。❔说明支付宝提供了丰富的前端API和服务端API,您可以基于这些API来实现您的小程序功能,更多请参见小程序 API 使用说明。代码中替换为您创建的CLB实例的公网IP地址。Page({ data: { queryResult: null, showView: "false" }, bindblur: function(e) { let that = this; my.httpRequest({ url: "http://<CLB_PUBLIC_IP>/ecs/getServerInfo", method: "GET", data: { instanceId: e.detail.value }, success(res) { if (res.status == 200) { that.setData({ queryResult: res.data, showView: !that.data.showView }); } else { that.setData({ showView: "false" }); my.showToast({ content: "请输入你的ECS实例ID", type: 'fail', duration: 3000, }); } } }); } });6.保存后,编辑器会自动刷新,看到如下界面,表示小程序运行成功了。六、完成完成以上操作后,您已经成功部署了服务端程序,并且在本地开发好了小程序。您可以登录ECS控制台,复制刚刚创建的ECS实例ID,输入到小程序输入框中,就可以看到结果了。您可以通过停机一台ECS模拟故障进而验证服务的可用性。操作如下:1.登录ECS控制台,找到目标实例,在操作列单击,在面板单击停止。2.等ECS状态为已停止后,再次在小程序中查询ECS实例ID,看到返回正常内容,则表明服务可用。七、清理及后续清理1.ECS提供的试用实例有按量付费实例和包年包月实例。请在阿里云免费试用确认您试用的实例类型,并参考以下规则清理:如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。包年包月实例到期会自动释放,释放实例的同时释放数据。如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。2.CLB免费试用权益有期限限制,权益到期后未释放的CLB实例可能产生费用。完成教程后,请参考以下场景处理CLB实例:如果无需使用CLB实例,您可以登录传统型负载均衡CLB控制台,在左侧导航栏,选择传统型负载均衡CLB(原SLB)>实例管理,在实例管理页面,找到目标CLB实例,在操作列单击>释放设置,按照界面提示手动释放实例。如果需继续使用CLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的CLB实例会因欠费而被自动停机,停机7天内CLB实例将保留,7天后CLB实例和数据都将被自动释放。后续如果您期望上线您的小程序,您需要做下面几件事:1.申请域名,可以参考域名注册基本流程如何注册阿里云域名。2.申请SSL证书,并配置到服务器上,可以参考申请免费DV单域名试用证书。3.上传小程序并提交审核,可以参考小程序发布上线。待审核通过后,手动上线小程序,就可以在支付宝客户端中查看和使用小程序了。八、延伸阅读快速搭建网站搭建云上博客部署LAMP环自助建站方式汇总
点击免费下载《玩转AIGC》随着人工智能技术的不断发展,AIGC作为其中一种重要的应用,正越来越受大众关注与重视。AI从理解语言、理解文字、理解图片和视频,走向了生成内容,这称之为AIGC,即人工智能自动生成内容,是一种‘人机共创’新模式。目前,AIGC主要的应用场景分为互联网人机交互界面,如问答式购物,问答式搜索,问答式内容推进等;游戏和互娱AI内容生产,如游戏原画及素材生成,剧情生成,NPC人物生成等;消费电子智能家居和家电,如智能音箱,智能手表,其他可穿戴智能设备等。企业服务创意和素材生成,如商业文案生成,法律文件审核,企业广告策划等。本书将围绕文本生成、图像生成以及视频生成这三块主流AIGC的应用来给大家讲解详细的操作指南以及实践方案。以下是来自弹性计算GPU云服务器的8个AIGC最佳实践,可以帮助大家更好、更快速的搭建属于自己的AIGC应用,玩转AIGC。快来一键getAIGC能力吧!👉点击链接查看电子书详情页阿里云开发者藏经阁 汇聚阿里巴巴技术实践精华,涵盖云原生、物联网、大数据、AI 等技术领域,深度分享阿里工程师实战经验,顶级技术内容一手掌握。点击进入藏经阁,畅游技术海洋。
2023年09月
2023年08月
2023年07月
2023年06月
2022年11月
感觉自己生活中用得最多的云相关产品就是云存储,云盘通过同步给我的工作带来了非常多的便利,跨平台、实时同步、自动备份等功能对于文字工作者非常美妙。(一直有在用阿里云盘,免费不限速太美丽了,希望越来越好)