惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog
腾讯CDC
L
LangChain Blog
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
量子位
Apple Machine Learning Research
Apple Machine Learning Research
Cloudbric
Cloudbric
B
Blog RSS Feed
B
Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
S
Schneier on Security
Project Zero
Project Zero
宝玉的分享
宝玉的分享
美团技术团队
MyScale Blog
MyScale Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Spread Privacy
Spread Privacy
T
Threatpost
A
Arctic Wolf
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
爱范儿
爱范儿
Recorded Future
Recorded Future
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
SecWiki News
SecWiki News
H
Hacker News: Front Page
AWS News Blog
AWS News Blog
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
C
Check Point Blog
L
Lohrmann on Cybersecurity
F
Full Disclosure
TaoSecurity Blog
TaoSecurity Blog
Google Online Security Blog
Google Online Security Blog
云风的 BLOG
云风的 BLOG
The Last Watchdog
The Last Watchdog
Martin Fowler
Martin Fowler

阿猪的博客

如何使用CNB构建Hexo项目并部署到腾讯云COS 好坑爹!派息后买入的股票怎么也扣股息税? 游哈尔滨 跨年往事 安装Ta-Lib时报错"Could not build wheels" 网站被恶意镜像了该怎么办 延迟退休正式到来!来看看有什么规定 我的基金怎么就被强制卖出了? Hexo-AlgoliaSearch插件报错“Error has occurred during indexing posts” 找工作避坑不完全指南 办理信用卡应该注意什么 华为Pad开启了“共享至电脑”,但是Windows下无法正常访问 webdriver-manager报错一例 Windows无法从环境变量中找到Python的正确位置 习大大2024年新年贺词 号外!号外!Twikoo可以直接屏蔽垃圾评论啦! 如何将Coding的代码仓同步到Github 博客被攻击了 华为Pad开启了“共享至电脑”,但是Ubuntu下无法正常访问 如何恢复Etcher刻录过的U盘 如何在Ubuntu下快速切换网络代理状态 在腾讯云函数中使用Pandas报错`No module named 'numpy.core._multiarray_umath'` 对空的DataFrame使用apply方法未得到预期结果 SQLite中使用关键字作为列名称导致报错 Logging模块重复输出内容的原因及解决方法 如何在Selenium中保持网站的登录状态 如何下载与Chrome浏览器的版本相匹配的ChromeDriver 如何下载旧版本Python的安装包 如何为不同的Python项目自动选择不同的解释器 使用腾讯云函数搭建Web站点 WordPress CORS问题一例 踩坑阿里云函数计算搭建WordPress 让Chirpy主题支持折叠展示代码块 实现ChatGPT的文字输出效果 python中使用'''注释代码后引起报错 使用python自带的email模块解析邮件 使用pandas_bokeh在地图上显示数据 如何通过复权因子计算复权价格 国内量化平台不完全汇总
在AWS Amplify中部署Jekyll站点
阿猪 · 2023-04-17 · via 阿猪的博客

  Amplify是大名鼎鼎的AWS提供的Web和移动应用程序托管服务,按实际使用量付费,并提供12个月的免费试用(注意存储、构建和访问量过大可能会产生额外收费,详见定价页面)。本文介绍使用Amplify部署Jekyll站点的方法。

一、进入AWS Amplify

  登录AWS的控制台,点击顶部右侧的“区域”,选择一个你喜欢的服务器地点。建议选择离我们地理距离相对较近的东京、香港、新加坡。实际测试中发现Amplify是提供CDN的,所以也不必太纠结选择哪个区域。
  在顶部的搜索框中搜索“Amplify”,点击第一个搜索结果“AWS Amplify”,进入Amplify的控制台。接着滑动到页面的最下方,找到“托管Web应用程序”,点击“开始使用”。

二、指定代码仓

  Amplify支持直接从GitHub、GitLab获取代码,也支持孤陋寡闻的阿猪从没听说过的BitBucket和AWS CodeCommit,还支持直接上传代码。
  我们这里选择从自己的GitHub代码仓获取代码。点击“GitHub”,然后点击“继续”,跳转到GitHub的授权页面。
  在授权页面中点击右下角绿色的“Authorize AWS Amplify”按钮,跳转到GitHub的“Install & Authorize AWS Amplify”页面,根据需要选择将GitHub账户中的哪些代码仓授权给Amplify。你可以只选择存放Jekyll的代码仓,也可以选择全部代码仓。选择好后,点击页面底部的“Install&Authorize”按钮。

三、构建设置

  授权成功后,页面会跳转回Amplify,进入构建(CI/CD)设置页面。
  第1步是“添加存储库分支”,这里根据你的实际情况选择。一般是使用main分支。

  第2步是配置用于构建页面和部署的脚本。Amplify会自动识别出应用的类型是Jekyll,并提供对应的预设脚本。

  但是经过测试,阿猪发现这个预设脚本无法正常完成部署任务,日志中会出现如下错误信息:

1
[WARNING]: /usr/local/rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/bundler/resolver.rb:290:in `block in verify_gemfile_dependencies_are_found!': Could not find gem 'jekyll-sitemap' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound)`

  按照错误信息的提示,大致是因为jekyll-sitemap这个gem没有被正确的安装。需要在执行构建任务之前先升级RubyGems到3.3.22以上版本,然后执行bundle install命令,以确保Amplify环境安装了部署Jekyll所必需的gems。以下是修改后的完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: 1
frontend:
phases:
preBuild:
commands:
- gem install bundler
- bundle install
build:
commands:
- jekyll b
artifacts:
baseDirectory: _site
files:
- '**/*'
cache:
paths: []

  第3步是审核,直接点击页面中的“保存并部署”按钮即可。

四、构建和部署

  接下来Amplify会开始执行构建和部署,我们可以在页面中看到状态进度。
  执行完成后,会看到下图所示的三个绿色对勾。这个时候Jekyll站点已经部署完成了,点击下图红框位置的链接即可正常访问。这个链接使用的是Amplify提供的免费二级域名。

五、绑定自己的域名

  如果你希望绑定自己的域名,可以参考下边的操作:
  点击Amplify控制台左侧的“域管理”,进入“域管理”界面,然后点击右上角的“添加域”按钮。在“添加域”界面的搜索框中填入自己的域名,然后点击“配置域”按钮。

  这里看个人的喜好,如果喜欢使用www.example.com形式的网址,那么不需要做任何改动,直接点击“保存”按钮即可。如果不喜欢使用www前缀,可以稍后在Amplify控制台左侧的“重写和重定向”中修改重定向记录,将`https://www.example.com`302重定向至`https://example.com`。

  Amplify强制使用HTTPS,并且免费提供Amazon自家的SSL证书。安装SSL证书的过程是自动化的,我们只需要确保域名可以正常解析就行了。

  首先是添加一条CNAME记录验证你对域名的所有权。登录到你的域名解析管理后台,按照上图所示黑框中的要求添加一条CNAME记录。
记录类型 CNAME
主机记录 .example.com之前的字符串
记录值 CNAME之后的字符串

  接着耐心等待Amplify验证,并将SSL配置信息记录同步给AWS全球的各个节点。这可能需要 30 分钟。完成后会看到我们的自定义域名变为了可用状态。

  现在Amplify这边的操作已经完成了,还差最后一步添加DNS解析记录。按照Amplify的要求,我们需要为域名添加一条ANAME记录,如下图所示。

  如果你的域名解析服务提供商不支持ANAME记录,你可以将你的域名解析服务提供商改成Amazon,这里不再展开介绍。也可以直接使用CNAME记录替代,登录你的域名解析管理后台,添加一条CNAME记录:
记录类型 CNAME
主机记录 @
记录值 <替换为你的记录值>.cloudfront.net

  如果你同时使用www前缀,需要再添加一条对应的CNAME记录:

记录类型 CNAME
主机记录 www
记录值 <替换为你的记录值>.cloudfront.net

  域名解析记录一般会即刻生效,但是受网络节点中的DNS缓存和本地DNS缓存、浏览器缓存的影响,可能有几分钟甚至更久的延迟。你可以尝试刷新本地DNS缓存、清空浏览器缓存,然后通过在浏览器中查看SSL证书信息来判断你的Jekyll站点是否已经托管在Amplify。