-
Notifications
You must be signed in to change notification settings - Fork 48
终端用户使用界面部署
supinyu edited this page May 27, 2024
·
11 revisions
部署目前有3种方式:
- Docker镜像部署
- 部署到Amazon S3,通过Amazon Cloudfront提供访问地址
- 使用Amplify部署
准备工作
- 拿到完成的前端代码。
- 有AWS海外区账号,能够访问控制台,(需要访问Amazon ECR、Amazon EKS、Amazon EC2、Amazon IAM)拿到AK SK。
- 一台可以正常访问Nodejs、NPM、Docker的电脑(用于打包Docker),或在海外区Amazon EC2开一台Linux 2023的EC2。
- 进行UI构建的电脑/EC2,安装Nodejs(version 20.9.0)与Docker,通过aws configure命令将AK SK配置进环境。
# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker
# 安装Nodejs 把下述命令保存进一bash文件
# 如deploy_dependency.sh 然后 bash ./deploy_dependency.sh
#!/bin/bash
CURRENT_DIR=$(cd $(dirname $0); pwd)
FILE_NAME=node-v20.9.0-linux-x64
wget https://nodejs.org/dist/v20.9.0/${FILE_NAME}.tar.xz
tar -xvf ${FILE_NAME}.tar.xz
cd ${FILE_NAME}/bin
./node -v
sudo ln -s ${CURRENT_DIR}/${FILE_NAME}/bin/node /usr/local/bin/node
sudo ln -s ${CURRENT_DIR}/${FILE_NAME}/bin/npm /usr/local/bin/npm
echo 'Install Nodejs Success'
sudo node -v
- 检查Docker暴露的端口 (Dockerfile、nginx.conf)默认8800
- 配置后端访问API的环境变量 配置进 .env 文件(前端代码跟目录下)
- 控制台创建Amazon ECR 存储库
- docker build (第九步里执行 platform根据目标运行平台选择 不写默认会遵从构建机的平台 my_tag换成推送命令里的Tag)
# run on linux ec2/lambda/ecs(amd64)
# docker buildx build --platform linux/amd64 --network host -t my_tag .
# run on lambda/macOS(arm64)
# docker buildx build --platform linux/arm64 --network host -t my_tag .
- docker push (build命令换成第六步里的命令)
- 推送成功后,就可以在Amazon ECR控制台上看到托管的Docker镜像,随后根据实际情况配置进Amazon EKS运行。
参考:将基于 React 的单页应用程序部署到 Amazon S3 CloudFront - AWS Prescriptive Guidance 可以使用其中的Cloudformation
逻辑如下:
- 准备一台构建环境,已安装Nodejs 20或以上版本。
- 进入前端代码跟目录,将服务端API地址写入 .env 文件。
- 进入前端代码跟目录,执行npm i && npm run build
- 控制台创建一个S3 Bucket,将第三步构建结果(build文件夹里的文件 保留原有目录结构)上传(不要上传build),其余选项按默认即可。
- 在S3 Bucket的属性选项卡里,页面最底部,启用静态网站托管,输入index.html。
- 控制台打开Cloudfront,创建一个Cloudfront回源第四步创建的S3 Bucket。回到S3 Bucket,权限允许刚刚创建的Cloudfront进行读访问。随后访问Cloudfront地址即可正常显示页面。
- 如需限制访问,可以在Cloudfront限制入口IP。
1、登陆Amplify控制台
2、请选择右上角的新建应用程序(Create new app),在 Amplify 托管入门页面上,选择 GitHub,然后选择继续(Next)
3、 如果这是首次连接 GitHub 存储库,则浏览器会在 GitHub.com 上打开一个新页面,请求允许在您的 GitHub 帐户中进行 AWS Amplify 授权。选择要安装 Amplify GitHub 应用程序的 GitHub 账户。
4、您将被重定向到 Amplify 控制台中应用程序的添加存储库分支页面。在最近更新的存储库列表中,选择要连接的存储库的名称。在分支列表中,选择要连接的存储库分支的名称。选择 Next(下一步)。
5、在配置构建设置页面上,选择下一步
6、在查看页面上,选择保存和部署(Save and deploy)
REACT_APP_BACKEND_URL : 这个环境变量是后端的API地址
7、当构建完成后,所有项目将部署到由 Amplify Hosting 管理的托管环境。您可以在 amplifyapp.com 域上查看您的应用程序。
userName "bi_example@amazon.com"
password "HiGenBI@2024"
针对网站的不安全因素,需要设置成True