<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>通过AWS SAP认证 &#8211; 顶云AWS爱好者</title>
	<atom:link href="https://www.iloveaws.cn/category/%E9%80%9A%E8%BF%87aws-sap%E8%AE%A4%E8%AF%81/feed" rel="self" type="application/rss+xml" />
	<link>https://www.iloveaws.cn</link>
	<description>AWS中文视频在线课程 - 打造您的云端技能 获取AWS认证 成为AWS专家</description>
	<lastBuildDate>Sat, 16 Dec 2023 12:38:04 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.iloveaws.cn/wp-content/uploads/2019/06/cropped-uugai.com_1560993984449-32x32.png</url>
	<title>通过AWS SAP认证 &#8211; 顶云AWS爱好者</title>
	<link>https://www.iloveaws.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>亚马逊API网关</title>
		<link>https://www.iloveaws.cn/5932.html</link>
					<comments>https://www.iloveaws.cn/5932.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Mon, 11 Dec 2023 09:31:31 +0000</pubDate>
				<category><![CDATA[03-计算与负载均衡]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5932</guid>

					<description><![CDATA[HELLO大家好，我们这个课时讨论亚马逊 &#8230;]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-1024x576.png" alt="" class="wp-image-5933" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>HELLO大家好，我们这个课时讨论亚马逊的API网关的内容。</p>



<p>亚马逊API网关是一个您可以使用它创建应用程序编程接口（API）的服务。 这些API实质上是连接您的业务逻辑或在AWS上运行的应用程序的前门。</p>



<p>API Gateway支持RESTful API，包括REST API和HTTP API，以及WebSocket API。 接下来让我们通过可视化的方式来看一下通过API Gateway部署的API是如何工作的。</p>



<h2 class="wp-block-heading">亚马逊API网关概述</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-1024x576.png" alt="" class="wp-image-5934" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片2.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>这里是一个AWS Region，我们部署了某种类型的API。</p>



<p>然后这里是互联网，然后PPT左边区域有各种不同类型的客户端。</p>



<p>这些客户端可以是运行在移动设备上的应用程序，也可以是在互联网上运行的某个服务，或者是某个网站或Web应用程序。</p>



<p>而左边这些客户端需要通过互联网，访问在AWS上运行的某个业务逻辑或某个服务，它们需要通过访问这个部署的API来实现这一点。</p>



<p>然后这个API在连接到各种后端服务，比如Lambda。Lambda它可以是公有的，也可以是部署在VPC中的Lambda函数；</p>



<p>后端服务可以是负载均衡器后面的EC2实例，或者是其他的AWS服务；它也可以是一些外部服务，例如某个公有的终端节点。</p>



<p>因此，可以将这个API网关视为一个终端节点，您可以将这些各种基于互联网的服务或VPC内的服务连接到该API网关，您将它们连接到API网关后，API网关能够执行各种操作，比如修改请求中的信息以对其进行格式化，以便将其发送到它的后端类似Lambda函数等目标。</p>



<p>在API网关这里，您可以配置自己的API，也可以导入模板，例如Swagger格式或Open API 3.0定义，这些定义使用YAML或JSON格式。</p>



<h2 class="wp-block-heading">API网关部署类型</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-1024x576.png" alt="" class="wp-image-5942" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片3-1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>API网关支持3种不同的部署类型。</p>



<p>首先是边缘优化的API终端节点，它会为来自世界各地大部分地区的请求提供较低的访问延迟，因为它是位于Amazon CloudFront之后的，它利用了CloudFront边缘节点位置和CloudFront的CDN能力。</p>



<p>然后是区域API终端节点,非常适用于您的服务来自同一个AWS区域。您可以在前面放置CDN，并且还可以使用Web应用程序防火墙。</p>



<p>最后是私有API终端节点，这种部署方式API完全位于您的VPC内，因此可以安全地将API仅公开给VPC中的服务，或通过Direct Connect连接的应用程序。</p>



<h2 class="wp-block-heading">REST API的架构</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-1024x576.png" alt="" class="wp-image-5943" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片4-1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>接下来，我们来讨论下REST API的架构 这里有一个已发布的API和一个连接到这个API的互联网Web应用程序。在API这里，我们可以配置一个叫做“方法请求”的内容。它定义了我们允许使用API的方法,必须在请求中发送的参数和正文，以及如何进行集成，也就是将“方法请求”映射到“集成请求”。</p>



<p>这些方法method与您在HTTP方法中看到的非常相似，比如有DELETE，GET，POST和PUT。每个method可以映射到一个集成请求，然后就可以将请求转发到各类的终端节点。比如可以使用Lambda或Lambda代理。</p>



<p>也就是说，我们将“方法请求”的请求参数，映射到与我们连接的后端所需的格式。这个后端可以是Lambda函数、HTTP终端节点、EC2实例或其他AWS服务。</p>



<p>“方法请求”和“集成请求”使我们在配置API时具有一定的灵活性。可以只传递方法，也可以在它们到达后端之前修改它们的某些内容。</p>



<p>然后当从终端节点的响应返回时，还会有一些选项，我们可以转换或直接传递信息。我们可以修改HTTP状态码或响应主体，将它们映射到前端所需的格式，最后这个响应返回给Web应用程序。</p>



<p>以上就是REST API的大致的架构。</p>



<p>对于HTTP API会稍有不同。</p>



<p>HTTP API不在有这个“方法请求”，取代它的是“路由”，它能够将请求发送到 AWS Lambda 函数或任何可路由的 HTTP 终端节点。</p>



<h2 class="wp-block-heading">API网关集成</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-1024x576.png" alt="" class="wp-image-5944" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片5-1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>接下来是API网关集成相关的内容，目前有几种不同的集成类型。</p>



<p>对于Lambda函数，您可以使用代理集成或自定义集成。</p>



<p>自定义集成为您提供了更大的灵活性，而代理集成只是将请求直接传递给Lambda，因此，Lambda需要知道以何种格式解释输入的信息。</p>



<p>对于HTTP终端节点，您可以使用HTTP代理或HTTP自定义集成。</p>



<p>而对于AWS服务操作，只有非代理类型。</p>



<h2 class="wp-block-heading">API网关 &#8211; 缓存</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-1024x576.png" alt="" class="wp-image-5945" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片6-1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>缓存是提高API性能的重要功能。 通过为API调用配置API Gateway缓存，您可以添加缓存，并指定大小（以千兆字节为单位）。</p>



<p>缓存允许您缓存终端节点的响应请求，它可以减少对后端的调用次数，并降低对API的请求的延迟。</p>



<p>我举个例子，假设我们有一个API，一些用户正在访问这个API，这里有一个缓存。 第一步会首先检查缓存，如果缓存中没有内容，那么请求继续进行到这里的生产阶段，这里的生产阶段是您实际部署API的地方，也就是说，您是将API部署到一个阶段中的，在这个例子，该阶段启用了缓存，大小为0.5 GB，并且进行了加密，并在其中设置了TTL为900。</p>



<p>然后第二步就是访问实际的终端节点，访问信息将被缓存。那下次访问时，后续的请求将从缓存返回，而不会到达终端节点。这将减少延迟，并可能降低成本（如果您按请求付费的话）。</p>



<h2 class="wp-block-heading">API网关 &#8211; 限流</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-1024x576.png" alt="" class="wp-image-5946" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片7-1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>我们还可以对API网关进行限流。</p>



<p>您可以针对API设置稳定状态速率和请求提交突发的限制。这些在AWS账户级别是有限制的，您还可以使用阶段在API级别上添加限制。</p>



<p>默认情况下，稳定状态请求速率限制为每秒10,000个请求，您账户中所有API的最大并发请求为5000。如果超过每秒10,000个请求或5,000个并发请求，那么将会返回429“请求过多”的错误响应</p>



<p>因此，要尽量避免这种情况。</p>



<p>您也可以在您的应用程序中添加一些处置的代码，以便在发生此情况时，您的应用程序知道如何重新提交请求，而不会超过限流限制。</p>



<h2 class="wp-block-heading">API网关 &#8211; API密钥和使用计划</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-1024x576.png" alt="" class="wp-image-5947" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片8-1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>最后，我们讨论使用计划和API密钥的内容。</p>



<p>假设我们有一个API，然后有一些普通用户在使用较低级别的计划，这些普通用户可能付的费用很少。我们还有一些高级用户，我们希望他们应该获得更好的服务。</p>



<p>这样的话我们就会配置使用计划，包括高级和基本使用计划。高级计划将获得比基本计划更高的性能。每个计划都启用了限流，但对于高级用户，有更高的限制阈值。</p>



<p>那么，我们如何知道请求来自高级用户还是基本用户呢？</p>



<p>答案是通过APIKEY，这些密钥将添加到提交到公共终端节点的请求中。</p>



<p>因此，我们可以根据API密钥进行区分。我们可以知道谁是基本用户，谁是高级用户。然后，可以配置这些用户连接到不同的阶段甚至不同的终端节点。您还可以在每个阶段上配置每个方法的限流限制。</p>



<p>以上就是API网关的核心理论的内容，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-1024x576.png" alt="" class="wp-image-5941" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/12/幻灯片9.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5932.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>亚马逊EKS</title>
		<link>https://www.iloveaws.cn/5901.html</link>
					<comments>https://www.iloveaws.cn/5901.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Tue, 21 Nov 2023 03:22:43 +0000</pubDate>
				<category><![CDATA[03-计算与负载均衡]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5901</guid>

					<description><![CDATA[HELLO大家好，在本课时我将介绍Amazon Elastic Kubernetes服务，也就是亚马逊的EKS服务。]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-1024x576.png" alt="" class="wp-image-5902" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>HELLO大家好，在本课时我将介绍Amazon Elastic Kubernetes服务，也就是亚马逊的EKS服务。<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-1024x576.png" alt="" class="wp-image-5903" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片2.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>首先，什么是EKS呢？</p>



<p>EKS是一项托管服务，用于在AWS上或本地数据中心运行Kubernetes应用程序，而无需安装、操作或维护您自己的Kubernetes控制面板或节点。</p>



<p>Kubernetes是一个开源系统，用于自动化部署、缩放和管理容器化的应用程序。因此，如果我们想要管理和扩展在Docker上运行的容器，那么Kubernetes就是一个最佳的工具。</p>



<p>当您需要使用托管 Kubernetes 实施跨多个环境标准化容器编排时就可以使用EKS。 也就是说，如果您想使用标准化容器编排工具集，以便在AWS和您本地数据中心等不同环境中管理容器，那么您可以使用EKS。</p>



<p>EKS的一些特点，包括：</p>



<ul class="wp-block-list">
<li>混合部署，您可以跨AWS和本地数据中心管理Kubernetes集群和应用程序。</li>



<li>批处理作业，使用Kubernetes Jobs API在集群上运行顺序或批量工作负载,计划、调度和执行批处理工作负载。</li>



<li>机器学习，您可以将Kubeflow与EKS结合使用，建模您的机器学习工作流程，并使用最新的EC2 GPU加速实例，如AWS Inferentia。</li>



<li>以及运行Web应用程序，可以通过EKS构建自动缩放并跨多个可用区的高度可用的Web应用程序。</li>
</ul>



<h2 class="wp-block-heading"><br>EKS架构</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-1024x576.png" alt="" class="wp-image-5904" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片3.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>接下来我们一起看下EKS的架构。</p>



<p>EKS是运行在AWS区域的服务，比如这里是一个AWS区域，然后一个VPC，里面有多个可用区，AWS的EKS在这里运行。亚马逊EKS服务是一个托管的Kubernetes服务运行在EC2、Fargate以及AWS Outposts，并且跨多个可用区运行。</p>



<p>EKS集群中还包括EKS控制面板，它是跨多个可用区的，高可用的，且可以根据负载自动缩放控制面板实例，且能够检测并替换运行状况不良的控制面板实例，并为其提供自动化的版本更新和修补。</p>



<p>当然还包括工作节点。、</p>



<p>EKS支持ALB、NLB以及CLB这几种负载均衡器。</p>



<p>容器组在Kubernetes中被称为Pods。</p>



<h2 class="wp-block-heading">EKS弹性伸缩<br></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-1024x576.png" alt="" class="wp-image-5905" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片4.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>那么接下来让我们看下关于EKS弹性伸缩相关的知识点，参加考试需要了解使用EKS进行伸缩的不同机制。</p>



<p>在集群Auto Scaling部分，首先是Vertical Pod Autoscaler，它可以为pod自动调整CPU和内存预留，为应用程序调整至合适大小，它是针对pod的垂直层面的。</p>



<p>然后是Horizontal Pod Autoscaler，它可以根据资源的 CPU 利用率，自动缩放deployment, replication controller, 以及 replica set中pods的数量，前面这些都是K8S的组件。</p>



<p>这两个关键的区别在于，Vertical Pod Autoscaler它是调整CPU和内存的数量和大小，您需要了解垂直扩展的工作原理；而Horizontal Pod Autoscaler是调整基础设施中的PODS的数量，一个是垂直扩展，一个是水平扩展，可以理解吧？</p>



<p>以上是集群Auto Scaling部分。</p>



<p>然后是工作负载Auto Scaling，EKS支持两个Auto Scaling产品：</p>



<p>包括Kubernetes cluster Autoscaler ,以及Karpenter open source AutoScaling project</p>



<p>cluster Autoscaler 与AWS Scaling组一起使用，而这个Karpenter与EC2 fleet一起工作。</p>



<h2 class="wp-block-heading"><br>亚马逊EKS与ELB<br></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-1024x576.png" alt="" class="wp-image-5906" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片5.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>那么EKS和负载均衡器是如何一起工作的呢?</p>



<p>EKS主要支持网络负载均衡器和应用程序负载均衡器，虽然对CLB也有一些支持，但CLB随着时间的推移，它正在逐渐淘汰，所以我们主要讨论NLB和ALB。</p>



<p>AWS负载均衡器控制器负责管理Kubernetes集群的负载均衡器。</p>



<p>那怎么安装这个控制器呢，可以使用Helm V3或更高版本或者通过应用Kubernetes manifest安装这个负载均衡器控制器。</p>



<p>这个控制器预置以下这些资源：</p>



<p>当您创建 Kubernetes&nbsp;<strong>Ingress</strong>&nbsp;时的 AWS 应用程序负载均衡器</p>



<p>当您创建&nbsp;<strong>LoadBalancer</strong>&nbsp;类型的 Kubernetes 服务时的 AWS 网络负载均衡器</p>



<p>在之前，以<em>实例为</em>目标使用 Kubernetes 网络负载均衡器，而&nbsp;<em>IP</em>&nbsp;目标使用 AWS 负载均衡器控制器。</p>



<p>在使用 AWS负载均衡器控制器版本&nbsp;<strong>2.3.0</strong>&nbsp;或更高版本，您可以使用任一目标类型创建网络负载均衡器</p>



<h2 class="wp-block-heading"><br>亚马逊EKS Distro<br></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-1024x576.png" alt="" class="wp-image-5907" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片6.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>接下来，我们讨论EKS Distro的内容。</p>



<p>EKS Distro 是 亚马逊EKS在云中部署的相同开源 Kubernetes 软件和依赖项的发行版。</p>



<p>它允许你在任何地方手动运行Kubernetes集群。</p>



<p>它包括开源 Kubernetes、etcd、网络和存储插件的二进制文件和容器，并且经过兼容性测试。</p>



<p>您可以在GitHub上和访问其他开源软件一样安全访问Distro的版本，或者通过亚马逊S3以及ECR</p>



<p>EKS Distro缓解了跟踪更新、确定兼容性以及在分布各处的团队中统一使用 Kubernetes 版本的需求。</p>



<p>您可以在AWS EC2或者在您本地的硬件上使用您选择的工具创建Distro集群。</p>



<h2 class="wp-block-heading">ECS Anywhere和EKS Anywhere<br></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-1024x576.png" alt="" class="wp-image-5908" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片7.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>最后，我们讲一下ECS Anywhere和EKS Anywhere。</p>



<p>这两个服务允许您在您管理的基础设施上运行ECS以及EKS,有AWS提供支持。这里所说的不是outposts，outposts上是肯定可以运行它们的。</p>



<p>这里所说的是您自己的硬件，比如您可以在您的本地的基础设施比如裸金属服务器上，或者也可以在Vmware vSphere上部署ECS Anywhere和EKS Anywhere。</p>



<p>好的，以上就是本课时的全部内容，感谢大家的观看，希望能够给大家带来帮助。<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-1024x576.png" alt="" class="wp-image-5909" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/11/幻灯片8.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5901.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>(实操)使用S3预签名URL共享对象</title>
		<link>https://www.iloveaws.cn/5764.html</link>
					<comments>https://www.iloveaws.cn/5764.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Sun, 08 Oct 2023 02:05:16 +0000</pubDate>
				<category><![CDATA[04-存储]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5764</guid>

					<description><![CDATA[HELLO大家好，在本课时我们讨论使用S3预签名URL共享对象。 S3预签名URL是一种允许用户在有限的时间段内访问特定存储桶中的对象的方法。]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-1024x576.jpeg" alt="" class="wp-image-5765" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片1.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>HELLO大家好，在本课时我们讨论使用S3预签名URL共享对象。 S3预签名URL是一种<strong>允许用户在有限的时间段内访问特定存储桶中的对象的方法</strong>。</p>



<p>比如您可能有一些特定的用户，他们没有AWS账户，因此您无法通过账户授权他们访问权限；但您需要这些用户能够在一个有限的时间段内，访问一些重要的更新，一个视频或者是其他类型的对象，在这种情况下S3预签名URL是一个很好的选择。</p>



<h2 class="wp-block-heading">使用S3预签名URL共享对象</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-1024x576.jpeg" alt="" class="wp-image-5766" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片2.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br><strong>您可以使用API、CLI来创建S3的预签名URL</strong>，您可以构建一个应用程序来通过API自动执行此操作，来实现您应用程序的某个功能。<strong>当然也可以通过S3的管理控制台创建S3的预签名URL</strong>，在本课时我们主要通过CLI的方式来进行实操演示。</p>



<p>这个就是创建预签名URL的命令，<code>aws s3 presign</code> ，后面是存储桶名称 以及您要共享的对象名称，iloveawscn-saa是我的存储桶，huandengpian1.jpg是这个存储桶中的对象。</p>



<p>执行后将生成这个对象的预签名的URL，PPT这里显示的就是我的执行结果。您也可以以秒为单位指定此URL的有效时间，不指定默认为1小时过期。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-1024x576.jpeg" alt="" class="wp-image-5767" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片3.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>接下来我们切换到S3，演示如何创建预签名URL。</p>



<p>切换到我们的iloveawscn-saa存储桶，我将上传一个文件，文件名为presignurl.jpeg。</p>



<p>让我们先完成这个上传操作。</p>



<p>那在默认情况下，这个对象是无法公开访问的。 我们来看一下，选择这个对象，复制下对象URL，然后切换到浏览器访问一下，可以看到访问会被拒绝。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-1024x576.jpeg" alt="" class="wp-image-5768" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片4.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>那现在我们假设我们需要允许一部分用户访问这个特定的对象。那现在我们就通过CLI命令，生成这个对象的预签名URL，然后使用预签名URL来访问这个对象。</p>



<p>我们切换到CLI界面，我们粘贴下命令：</p>



<p><code>aws s3 presign s3://iloveawscn-saa/presignurl.jpeg --expires-in 60</code></p>



<p>我们看下这个命令,aws s3 presign s3://然后是您的存储桶名称/后面是对象名称，也就是我们刚刚上传的文件名。</p>



<p>然后的参数是我配置的过期时间，这里指定的是60秒，稍后您会看到这个预签名URL的有效和过期后的演示。</p>



<p>回车运行命令。</p>



<p>可以看到得到了一个非常长的网址，我们将这个网址复制一下，然后回到浏览器，将它粘贴进行，然后按回车键访问。</p>



<p>我们可以成功访问我们上传的图片文件，也就是说我们通过CLI生成并使用预签名URL成功访问了对象。然后就可以将这个预签名URL发送给需要访问的那部分用户。</p>



<p>以上是使用CLI创建预签名URL的一种非常简单的方法。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-1024x576.jpeg" alt="" class="wp-image-5769" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片5.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>我们的命令参数指定了60秒的有效期，那现在已经过了60秒我们刷新下浏览器，看下是否还可以访问该对象。</p>



<p>可以看到访问被拒绝，信息提示请求已过期，并为我们提供了一些有关该预签名URL过期时间的一些信息。</p>



<p>可以看到通过CLI来设置预签名URL非常的方便。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-1024x576.jpeg" alt="" class="wp-image-5770" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片6.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>那接下来我们切换到S3控制台，我们来看下通过控制台如何配置预签名URL。</p>



<p>进入到我们的存储桶，选择我们要创建预签名URL的对象，然后点击“操作”，点击“使用预签名URL共享”</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-1024x576.jpeg" alt="" class="wp-image-5771" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片7.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><br>可以看到提示任何人都可以使用此预签名URL访问对象，直到过期为止，即使存储桶和对象是私有的也是如此。</p>



<p>然后配置过期时间，这里就是对应我们CLI命令行的过期时间的参数，比如我们配置1分钟，然后点击“创建预签名URL”</p>



<p>然后可以看到预签名URL已创建，我们就可以通过这个预签名URL访问该对象。</p>



<p>好的，以上就是本课时的内容，本课时我们实操演示了通过CLI以及管理控制台创建S3预签名URL来达到临时共享对象的目的，感谢大家的观看，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-1024x576.jpeg" alt="" class="wp-image-5772" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/10/幻灯片8.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5764.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>S3加密</title>
		<link>https://www.iloveaws.cn/5697.html</link>
					<comments>https://www.iloveaws.cn/5697.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Fri, 25 Aug 2023 09:25:59 +0000</pubDate>
				<category><![CDATA[04-存储]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5697</guid>

					<description><![CDATA[Hello大家好｡ 在本课时我们将讨论S3加密相关的内容]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-1024x576.png" alt="" class="wp-image-5699" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Hello大家好｡ 在本课时我们将讨论S3加密相关的内容。</p>



<p>S3加密相关是认证考试的一个重要的主题考点，您需要了解亚马逊S3的几种不同类型的加密方式。|</p>



<p><strong>首先是静态数据的加密</strong>，静态数据加密是指数据存储在亚马逊S3 数据中心的磁盘上时，对数据进行保护；这个很好理解，对存储在磁盘上静止的数据进行加密就是静态数据加密；</p>



<p><strong>然后是传输过程中的数据加密</strong>，是指数据发往和离开Amazon S3时对数据进行加密保护。您可以使用安全套接字层/传输层安全性 (SSL/TLS) 或客户端加密来保护传输中的数据。</p>



<p>那对于静态数据加密，有几个不同的选项，我们一起来看一下</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-1024x576.png" alt="" class="wp-image-5700" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片2.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>首先大家要知道，<strong>这几种加密方式的不同之处主要取决于您选择如何管理加密密钥。</strong></p>



<h3 class="wp-block-heading"><strong>SSE-S3</strong></h3>



<p>首先，我们看下<strong>S3托管密钥的服务器端加密， 缩写为SSE-S3。</strong><br>顾名思义这种方式密钥由亚马逊S3服务进行管理，每个对象均使用唯一密钥进行加密；然后作为额外的保护，将使用定期轮换的主密钥在加密这个唯一密钥本身。<br>使用256位高级加密标准AES-256来加密您的数据。</p>



<p>加密和解密的动作都是在S3进行的，当您的数据写入存储桶时，数据将会被加密；而当从存储桶读取数据时，数据将会被解密。但是这并不意味着数据会明文在网络中传输，<br>因为我们在访问S3时是使用了证书通过HTTPS的方式，当数据通过网络传输时，其实是通过一个加密的隧道。但实际数据本身，一旦到达目的地仍然是明文的。<br>因此，如果我们有个客户端，客户端将一个对象上传到S3，S3将对其进行加密；然后当客户端从S3中读取该对象时，S3将对其进行解密。</p>



<h3 class="wp-block-heading"><strong>SSE-KMS</strong></h3>



<p>第二种加密的选项是<strong>在AWS KMS中存储KMS密钥的服务器端加密，缩写为SSE-KMS。</strong></p>



<p>这种方式密钥是由KMS服务进行管理的,KMS即亚马逊的密钥管理服务。您可以使用KMS的AWS托管密钥，或者您也可以创建客户托管密钥对数据进行加密。</p>



<p>加密和解密也是在存储桶上进行的，当客户端将数据写入S3，S3对该数据进行加密；当客户端读取数据时，S3对数据进行解密。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-1024x576.png" alt="" class="wp-image-5701" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片3.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>SSE-C</strong></h3>



<p>第三种加密的选项称为<strong>具有客户提供密钥的服务器端加密，缩写为SSE-C。</strong></p>



<p>这种方式密钥是由客户也就是您进行管理，而不是存储在AWS上。<br>但是加密和解密的动作仍然是在AWS上进行。<br>这种方式提供给客户对于密钥更多的控制权。<br>以上三种是S3服务器端加密的3种选项。</p>



<h3 class="wp-block-heading"><strong>客户端加密选项</strong></h3>



<p>那接下来的加密选项不是服务器端加密，而是客户端加密选项。</p>



<p>客户端加密意味着数据要在客户端完成加密，客户也就是您需要管理加密过程、加密密钥和密钥轮转等等；密钥不会存储在AWS上，<br>你也可以使用KMS的CMK客户托管密钥，将其导出并使用。</p>



<p>客户端加密是在客户端进行，AWS对此一无所知，你自行在客户端加密数据，然后将其上传到S3，这样存储桶内存储的就是加密后的数据；<br>当您下载数据后，是在客户端侧进行解密。在AWS上无法解密这些数据，因为密钥是由您管理的，可能存储在您的数据中心的某个系统内。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-1024x576.png" alt="" class="wp-image-5702" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片4.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>默认加密配置</strong></h3>



<p>可以为S3存储桶配置默认加密，配置时可以选择我们想要使用的加密类型，就是前面讲的那些加密选项。</p>



<p>配置后，写入存储桶的所有新的对象将使用您指定的加密类型进行加密。</p>



<p>请注意，这里我重点提到了新的对象，之前在存储桶中已经存在的对象不会被加密。就是说当您启用了默认加密功能，如果您存储桶中在启用前已经存在的对象，他们将不会被加密。新的对象，也就是您启用默认加密后在上传的对象将会被加密。</p>



<p>这里提到的默认加密配置，是使用前面讨论的服务器端加密选项之一。</p>



<p>正如我前面讲到的，启用后S3将在您将对象上传到S3时进行加密，然后在您将其从S3中下载时对其进行解密。</p>



<p>在启用默认加密之前，存储桶中已经存在的对象的加密状态不会更改。</p>



<h3 class="wp-block-heading"><strong>阻止上传未加密的对象</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-1024x576.png" alt="" class="wp-image-5703" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片5.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>最后，我们来看下如何通过存储桶策略阻止上传未加密的对象。</p>



<p>我们看下这个策略的内容，首先，任何主体，对资源这里配置我们的存储桶的arn的putobject也就是上传对象的操作都是被拒绝的。存储桶ARN后面加上/*,代表我们放入存储桶中的所有对象。</p>



<p>然后注意condition配置，字符串不等于s3：x-amz-servrer-side-encryption的值为AES256。这个存储桶策略的意思是除非上传对象使用SSE-S3进行加密，才允许上传到这个指定的存储桶。如果您希望使用SSE-KMS，就可以用AWS:KMS替换这里的AES256。</p>



<p>然后下面这段策略，前面和上面内容一样，拒绝任何主体上传对象到我们指定的这个存储桶，然后condition配置，null对应s3:x-amz-server-side-encryption值为真。</p>



<p>这段策略的作用是在上传对象时，如果没有对其进行加密，那么就不允许进行上传。</p>



<p>这是一个PUT请求的例子，我们可以在这里看到服务器端加密标头值为AES256,因此这个对象将会被加密并允许上传到这个存储桶。</p>



<p>好的，以上就是本课时的内容，本课时我们讨论了S3加密的内容，感谢大家的观看，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-1024x576.png" alt="" class="wp-image-5704" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/08/幻灯片6.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li>AWS爱好者的网址是www.iloveaws.cn，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>



<li>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5697.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>(实操)生命周期配置</title>
		<link>https://www.iloveaws.cn/5634.html</link>
					<comments>https://www.iloveaws.cn/5634.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Sun, 30 Jul 2023 02:36:35 +0000</pubDate>
				<category><![CDATA[04-存储]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5634</guid>

					<description><![CDATA[Hello大家好｡ 在本课时我们将了解如何使用S3的生命周期配置来管理我们的对象。]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-1024x576.png" alt="" class="wp-image-5635" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>Hello大家好｡ 在本课时我们将了解如何使用S3的生命周期配置来管理我们的对象。</p>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-1024x576.png" alt="" class="wp-image-5636" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片2.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>回到S3控制台，选择iloveawscn-saa这个存储桶，然后点击上面的“管理”。 在这里，我们可以创建生命周期规则，我们点击“创建生命周期规则”。</p>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-1024x576.png" alt="" class="wp-image-5637" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片3.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>首先我们创建一个转换S3存储类的规则，生命周期规则名称我们就叫zhuanhuan。 然后选择规则应用的范围，在这里可以通过定义的筛选条件限制此规则的范围，筛选条件可以是前缀、对象标签、对象大小或者适合您的使用案例的任何组合来筛选对象，您可以在这里定义您的筛选条件，只将符合条件的对象应用即将定义的转换生命周期规则，可以理解吧？</p>



<p>当然也可以将规则直接应用于存储桶内的所有对象，我选择应用到所有对象。然后会弹出一个提示，点击“我了解。。。”复选框。</p>



<p>然后在往下，我们就可以看到支持的生命周期规则操作：包括在存储类之间移动对象的当前版本，非当前版本；可以将对象的当前版本设为过期，永久删除对象的非当前版本，以及删除过期对象删除标记或未完成的分段上传。</p>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-1024x576.png" alt="" class="wp-image-5638" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片4.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>现在，我想要转换对象当前的版本，所以我们选择“在存储类之间移动对象的当前版本”， “创建对象以来的天数”我们输入30，“选择存储类转换”我们选择“标准-IA”。这条规则的意思就是：对象上传到存储桶后，我希望在30天之后，将对象从S3标准存储类迁移到标准IA存储类。比如您觉得您的对象在30天后应该就很少在使用，就可以通过配置这条规则到期后将他转换为标准IA，可以节省存储成本。</p>



<p>这是第一次的转换。</p>



<p>那如果我们要是预计我们的对象在比如90天之后，使用到的可能性非常非常低的话，我们就可以配置在对象存储90天后，将其自动迁移到Glacier对其进行归档，Glacier有最低容量费用，我们在前面的课时讲过，所以这里需要我们了解，然后点击这个“我了解。。”复选框。</p>



<p>好的，这就是我要创建的转换规则。</p>



<p>然后往下，您可以看到对象的当前版本和非当前版本操作，对于当前版本，对象在0天上传后，30天后对移动到标准IA，然后在90天后移动到Glacier Flexible retrieval。</p>



<p>好，让我们创建这个规则。</p>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-1024x576.png" alt="" class="wp-image-5639" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片5.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>那前面是创建的转换规则，我们接下来创建一个过期操作规则。</p>



<p>我们点击“创建生命周期规则”，然后生命周期规则名称，我们输入guoqi。选择规则范围,选择“应用到存储桶中的所有对象”。</p>



<p>然后这个规则我们要选择“永久删除对象的非当前版本”，然后输入对象变为非当前对象以来的天数，我们输入30天，也就是说这条规则的作用是，30天后，那些非当前版本，以前的版本将会自动被删除。注意右边这里还可以定义要保留的较新版本的数量，是可选的。</p>



<p>还有一个小提示，大家看生命周期规则操作这里是复选框，大家可以在一个规则里面定义多个操作，我这里是为了容易理解分别创建了两个规则各定义了一个操作，大家理解了吧？</p>



<p>好，我们现在创建这个规则。</p>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-1024x576.png" alt="" class="wp-image-5640" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片6.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>好的，我们现在创建了两条规则，您可以创建多条规则达到您的目的，创建规则之前您要对这条规则可能对对象产生的影响非常的清楚，我们前面提过，我举个例子：</p>



<p>很多的S3存储类型都有最低存储持续时间费用，比如S3标准IA是30天，那如果你创建的规则是不到30天就将对象从标准IA转换到其他存储类，那肯定会浪费一些费用，所以用生命周期规则，达到成本优化的目的，前提是要了解这些知识点，否则转换来转换去有可能产生费用比一直放在S3标准里还要多。这部分大家要注意。</p>



<p>一旦创建了规则，这些规则都会被启用，选择规则后，可以禁用规则，或者删除规则。</p>



<p>我们目前不需要转换或者删除对象，所以我现在将这两个规则禁用。</p>



<p></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-1024x576.png" alt="" class="wp-image-5641" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-1024x576.png 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-460x259.png 460w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-768x432.png 768w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-1536x864.png 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-120x68.png 120w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7-310x174.png 310w, https://www.iloveaws.cn/wp-content/uploads/2023/07/幻灯片7.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>好的，以上就是本课时的内容，本课时我们实操演示了S3生命周期规则的配置，感谢大家的观看，希望能够给大家带来帮助。</p>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li><a href="http://xn--AWSwww-y50k01m049ahdz76jqs0a27b.iloveaws.cn">AWS爱好者的网址是www.iloveaws.cn</a>，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>



<li>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5634.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>S3版本控制,复制和生命周期配置</title>
		<link>https://www.iloveaws.cn/5533.html</link>
					<comments>https://www.iloveaws.cn/5533.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Mon, 26 Jun 2023 09:28:21 +0000</pubDate>
				<category><![CDATA[04-存储]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5533</guid>

					<description><![CDATA[Hello大家好｡ 在本课时我们将讨论S3的三个功能特性，这三个特性有一些相关性，即版本控制，复制和生命周期配置。]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-1024x576.jpeg" alt="" class="wp-image-5534" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片1.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>Hello大家好｡ 在本课时我们将讨论S3的三个功能特性，这三个特性有一些相关性，即版本控制，复制和生命周期配置。</p>



<h1 class="wp-block-heading">S3版本控制</h1>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-1024x576.jpeg" alt="" class="wp-image-5535" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片2.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>首先版本控制，是将对象的多个版本保存在同一存储桶的方法。换句话说，您上传一个对象，就是一个文件，然后在其他地方又编辑了这个文件， 然后在将这个文件的新版本上传到S3。</p>



<p>在这种情况下，S3将保留这个文件的多个版本，也就是说您可以看到旧版本和新的修改后的版本的文件。 如果需要，您也可以还原旧版本文件。 所以，使用版本控制可以保留、检索和恢复存储桶中每个对象的每个版本。</p>



<p>存储桶启用了版本控制后，使您能够从意外删除或覆盖中恢复对象。</p>



<p>这个知识点请大家牢记，因为它们可能会作为考试的题目，这些是S3版本控制的几个主要的优点。</p>



<h1 class="wp-block-heading">S3复制</h1>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-1024x576.jpeg" alt="" class="wp-image-5536" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片3.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>接下来，S3复制。 复制有两种形式：</p>



<p>一种称为跨区域复制，CRR，这个功能已经存在很长时间了。 我们在一个区域有一个存储桶，在另外一个区域中有另一个存储桶。 配置了S3复制后，写入左侧区域中存储桶的任何数据也会自动复制到右侧的不同区域的存储桶。</p>



<p>接下来是同区域复制功能，SRR，这个功能和上面的差不多，只是源和目的在同一个区域内，SRR是相对来说比较新推出的功能。 这两个S3复制功能，都是支持跨账户的，无论您使用的是相同区域复制还是跨区域复制，源存储桶和目标存储桶都可以为不同的AWS账户。 注意，使用S3复制功能，必须启用版本控制。您必须先启用版本控制，在配置复制，否则无法启用任何类型的复制。</p>



<h1 class="wp-block-heading">生命周期配置</h1>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-1024x576.jpeg" alt="" class="wp-image-5537" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片4.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>然后，生命周期配置。 S3的生命周期管理，支持两种类型的操作，将对象转换到不同的存储类别，还有就是使对象过期，使对象过期换句话说就是删除对象。 以上就是转换操作和过期操作。</p>



<h2 class="wp-block-heading">S3生命周期配置：支持的转换</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-1024x576.jpeg" alt="" class="wp-image-5538" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片5.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>那么不同存储类别之间进行转换，受支持的转换和相关限制我们就需要了解一下：</p>



<p>右边的这个瀑布模型展示了受支持的转换: 左边是S3存储的类别，我们之前的课时讲过，包括S3标准，S3标准IA，智能分层，S3单区IA，S3 Glacier以及，S3 Glacier的深度归档。</p>



<p>那通过这些不同颜色的线，您可以进行以下转换：</p>



<p>从S3标准存储类转换为任何其他存储类。</p>



<p>从任何存储类转换为S3 Glacier 和 S3 深度归档存储类。</p>



<p>从S3标准IA存储类转换为S3智能分层，S3单区IA等图中它下面这5种存储类。</p>



<p>从S3智能分层存储转换为S3单区IA等图中它下面的4种存储类。</p>



<p>以及从这两种S3 Glacier存储类转换为S3 Glacier 深度归档存储类。</p>



<p>好的，右侧这个图大家应该都懂了吧</p>



<h2 class="wp-block-heading">S3生命周期配置：不支持的转换</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-1024x576.jpeg" alt="" class="wp-image-5539" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片6.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>那么不支持哪些类型的生命周期转换呢？</p>



<p>您不能从任何存储类型转换为S3标准存储类，</p>



<p>也不能从任何存储类转换成低冗余存储类RRS，RRS我们之前介绍过，这是一种很老的存储类型，目前已经很少在使用。</p>



<p>不能从S3智能分层转换为S3标准IA，</p>



<p>以及不能从S3单区IA转换成S3智能分层、S3标准IA，以及S3 Glacier Instant Retrieval 存储类 。</p>



<p>好的，上面这些内容要记住，在考试中会遇到相关的题目，会为您提供一些具体的要求，要求您保留数据，可能还会删除数据，归档数据，或者出于合规性原因将数据保留一段时间。然后，您必须根据这些来确定您将使用哪些存储类和那种转换动作。</p>



<p>好的，以上就是本课时的内容，感谢大家的观看，希望本课时能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-1024x576.jpeg" alt="" class="wp-image-5540" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/06/幻灯片7.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li><a href="http://xn--AWSwww-y50k01m049ahdz76jqs0a27b.iloveaws.cn">AWS爱好者的网址是www.iloveaws.cn</a>，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>



<li>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5533.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWS Lambda &#8211; 函数版本，别名，API网关，CodeDeploy协同</title>
		<link>https://www.iloveaws.cn/5329.html</link>
					<comments>https://www.iloveaws.cn/5329.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Sun, 14 May 2023 12:53:08 +0000</pubDate>
				<category><![CDATA[03-计算与负载均衡]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5329</guid>

					<description><![CDATA[Hello大家好，我们今天继续讨论AWS Lambda的内容]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-1024x576.jpeg" alt="" class="wp-image-5330" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.001.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Hello大家好，我们今天继续讨论AWS Lambda的内容。</p>



<h2 class="wp-block-heading">Lambda函数的版本</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-1024x576.jpeg" alt="" class="wp-image-5331" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.002.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Lambda函数的版本和别名是辅助资源，我们可以通过创建这些资源管理函数的部署和调用。</p>



<p>首先，让我们来看一下Lambda 函数版本的概念。 您可以使用版本来管理函数的部署。例如，您现在生产环境上运行了一个函数，假设是V1版本，您可以发布一个这个函数的新版本，比如发布V2版本，以用于新版本测试，而不会影响生产环境V1版本的用户。</p>



<p>这里有一个**$LATEST<strong>的概念，$LATEST您可以理解成它是最新的</strong>“未发布版本”**，当您创建和使用Lambda函数时，您就是在处理$ LATEST版本，您可以一直修改$LATEST直到您满意为止。这是一个可变函数，因为您可以对其进行修改。</p>



<p>然后当修改完成后，您需要发布来使用Lambda函数，这个时候您就需要创建一个版本，比如V1版本。您每次发布函数时，Lambda 都会为函数创建一个新版本。</p>



<p>在您发布版本后，函数的代码和大多数设置都会被锁定，也就是不可改变的了，这也是为了给该版本的用户维持一致的体验，您无法在进行修改。比如一旦发布V1版本，V1版本就无法在修改了。</p>



<p>修改函数后可以通过将其发布为新的版本以投入使用，比如V2、V3等。 每一个版本都有各自的ARN，所以您可以单独调用V1版本，也可以单独调用V2版本，或者$LATEST。</p>



<p>那函数版本都包括什么呢？**它包括您的代码以及所有关联的依赖项，调用函数的运行环境，函数的设置以及环境变量等等。**发布函数版本之后，这些都是不可变的，比如如果您想调整内存，您需要创建一个新版本如V2，然后进行发布。</p>



<p>您可以访问每个版本的Lambda函数，当您进行金丝雀测试时会非常有帮助。</p>



<h2 class="wp-block-heading">Lambda 函数别名</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-1024x576.jpeg" alt="" class="wp-image-5332" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.003.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>接下来我们来讨论Lambda 函数别名，aliases。</p>



<p><strong>Lambda 别名类似于指向特定函数版本的指针</strong>，您可以定义任何您想要使用的别名，比如一些比较常见的别名例子为：开发、测试、生成环境的别名。您可以定义这些别名然后分别将其指向不同的Lambda版本。</p>



<p>每个别名都有唯一的 ARN，而且别名是可以更改指向的，可以更新别名以便指向函数的新的或其他版本。</p>



<p>我们举个的例子，组织一般都会分为开发、生产、测试环境，比如对应我们的3个函数版本，LATEST、V1和V2。然后：</p>



<ul class="wp-block-list">
<li>我们可以创建一个DEV的别名，将其指向LATEST版本；</li>



<li>在创建一个TEST别名，将其指向V2版本；</li>



<li>以及创建一个PROD别名，将其指向V1版本。</li>
</ul>



<p>以上三个别名的ARN都是不同的，这样如果有用户访问DEV别名的ARN时，就会被重定向到LATEST函数版本；访问TEST别名时，就会重定向到V2版本，PROD别名同理。</p>



<p>对于用户的角度，可以访问DEV，TEST和PROD三个别名，重定向到对应的函数版本；然后我们可以更改这三个别名指向我们希望的其他的函数版本。</p>



<p>使用别名可以支持蓝绿部署，可以为Lambda函数分配权重，这样的话访问别名之后就不只是对应一个函数版本了。</p>



<p>比如访问PROD别名时，可以配置将访问的95%的流量指向V1，也就是生成环境的稳定版本；然后将5%的访问流量切到V2版本，用于测试新版本。这是通过配置权重来实现的。</p>



<h2 class="wp-block-heading">函数别名与API网关</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-1024x576.jpeg" alt="" class="wp-image-5333" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.004.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>我们继续。</p>



<p>一般情况下，新版本发布都会遵循三个阶段，开发阶段、测试阶段及发布至生产环境。 新版本会在开发环境做测试，如果测试确认没问题之后，会先发布到测试环境，通常测试环境会导入生成环境的部分访问流量做测试，如果测试确认没问题，在慢慢将更多的流量导入测试环境的新版本，最终完成新版本的发布。</p>



<p>接下来我们拿一个API网关的环境，来说明下针对不同的阶段函数别名的运用：</p>



<p>这里有一个开发Stage（开发阶段），指向DEV的别名，然后向$LATEST的Lambda函数路由100%的流量。 还有一个测试Stage（测试阶段），指向TEST别名，向Lambda函数的V2版本路由100%的流量。 生产Stage（生产阶段），指向PROD别名，向Lambda函数的V1版本路由100%的流量。</p>



<p>V2是我们的新版本，假设目前内部已经测试确认了，我们需要将V2版本发布到生产环境，也就是PROD别名。可以通过配置权重将生产的访问量慢慢切换到V2版本。比如配置PROD别名，将95%的流量指向V1，然后将5%的流量指向V2版本。</p>



<p>我们在这个例子中要注意的是，上面这个切换版本的步骤，是发生在Lambda别名级别，我们调整的是PROD别名；</p>



<p>在API网关这一侧，指向的别名一直没有改变，我们不必修改API网关配置。</p>



<p>所以，在上面这种或者类似的场景中，如果我们需要部署和切换不同的函数版本，使用函数别名来进行配置的话就会非常的方便；当有新的函数版本时，我们只需要通过别名配置将流量慢慢切换到新的函数版本，而不需要每次发布时调整API网关的配置。</p>



<p>通过这个例子，希望大家对于函数别名的功能和使用场景有所了解，发布新版本时，使用别名只需要调整别名的指向，而不需要调整其前面的，对于上面这个例子的API网关的配置。</p>



<h2 class="wp-block-heading">Lambda与CodeDeploy</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-1024x576.jpeg" alt="" class="wp-image-5334" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/26-AWS-Lambda-Part-4.005.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>最后，我们来看一下 Lambda和CodeDeploy。</p>



<p><strong>CodeDeploy可以帮助您实现自动化的Lambda别名的流量转移功能</strong>，也就是Traffic shifting功能，如果您使用SAM无服务器应用程序模型来创建，这个功能是直接内置的。</p>



<p>我们来看一下整个的流程： 这里有一个PROD别名，以及两个函数版本，V1和V2。V1是当前线上的版本，V2是您刚刚发布的新版本。</p>



<p>假设目前线上都是在访问函数的V1版本，而V2版本0%没有访问量，您希望将V1的访问量慢慢转移到新版本V2，这样完成新版本的上线使用。</p>



<p>注意这里说的不是手动一下切到V2版本，而是通过配置，自动将当前V1版本的100%的访问量，慢慢的按一定百分比转移到新版本V2上。逐步将访问量切换到新版本而不是立刻切换，也是为了当新版本有问题时将影响降到最低。</p>



<p>CodeDeploy就可以帮您实现这个过程。</p>



<p>那多久且每次转移多少百分比的访问量到新的版本呢？这就需要定义部署策略，我们来看一下都有哪些策略： <strong>第一种部署策略为线性的方式</strong>，也就是您可以定义每隔N分钟，增加10%的流量，直到100%。 比如，Linear10PercentEvery1Minute，定义每1分钟转移10%的访问量到V2版本直到100% 。 以及 Linear10PercentEvery2Minutes，定义每2分钟转移10%的访问量到V2版本直到100%， 或者配置为每3分钟以及每10分钟转移10%流量直到100%，以上这些就是线性的方式。</p>



<p><strong>第二种部署的策略为金丝雀方式</strong>，您可以选择： Canary10Percent5Minutes ，5分钟切换10%的流量，然后如果没有收到任何错误，切换剩下的所有流量到新版本V2。 Canary10Percent10Minutes，或者10分钟切换10%的流量，然后如果没有收到任何错误，切换剩下的所有流量到新版本V2。以及定义15、30分钟，切换10%的流量，然后在切换剩下的所有流量到新版本V2。</p>



<p><strong>第三种部署的策略为All-at-once</strong>，这种方式就不会在按照一定的百分比切换访问量了，而是将所有的流量从原来的版本一次性切换到新的版本。</p>



<p>最后我们可以配置Hooks挂钩,<strong>在流量转换开始到新版本之前 和 流量转换完成后运行健康检查</strong>。</p>



<p>比如我们如果配置了转移前的hook，在部署V2版本时测试此版本函数是否正常；然后当流量转移到新版本V2之后，还会运行一个流量转移后的Hook，确保一切正常，当测试时发现问题时，自动对版本进行回滚，所以这个Hooks挂钩的作用是非常大的。</p>



<p>好的，以上就是我们今天课时的内容，我们讨论了AWS Lambda &#8211; 第四部分的内容，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-1024x576.jpeg" alt="" class="wp-image-5335" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li><a href="http://xn--AWSwww-y50k01m049ahdz76jqs0a27b.iloveaws.cn">AWS爱好者的网址是www.iloveaws.cn</a>，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>



<li>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5329.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWS Lambda &#8211; 同步/异步调用，事件源，目标</title>
		<link>https://www.iloveaws.cn/5295.html</link>
					<comments>https://www.iloveaws.cn/5295.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Thu, 04 May 2023 02:15:20 +0000</pubDate>
				<category><![CDATA[03-计算与负载均衡]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5295</guid>

					<description><![CDATA[Hello大家好，我们今天继续讨论AWS Lambda的内容]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-1024x576.jpeg" alt="" class="wp-image-5296" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.001.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Hello大家好，我们今天继续讨论AWS Lambda的内容。</p>



<h2 class="wp-block-heading">同步调用</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-1024x576.jpeg" alt="" class="wp-image-5297" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.002.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Lambda函数有三种调用方式。</p>



<p>第一种方式是同步调用。</p>



<p>当我们使用API、CLI以及API网关等调用函数时，就是同步调用。</p>



<p>当您同步调用函数时，Lambda会运行该函数并等待响应，当函数完成时将结果同步返回，所以您的代码将等待这个响应结果。</p>



<p>如果在这调用过程中需要错误控制，这是需要在您在客户侧实现的。您负责确定处理错误的策略，如可以重试、将事件发送到队列以进行调试，或者忽略该错误。</p>



<p>我们看两个例子：</p>



<ol class="wp-block-list">
<li>第一个，您的SDK要调用Lambda函数，然后Lambda函数会运行，SDK等待响应。如果响应不是您期望的结果，如返回错误时，您希望重试调用函数，这是您需要实现的。</li>



<li>第二个例子，是客户端通过API网关调用函数。客户端调用RESTAPI，API网关将请求发送给Lambda函数，函数就会执行。然后向API网关返回响应，然后您从API网关收到响应。</li>
</ol>



<p>这两个例子都是同步调用。在同步调用过程中如果出现了错误，需要您自行处理错误，如忽略、重试、发送到队列进行调试等等。</p>



<p>好，我们继续。</p>



<h2 class="wp-block-heading">异步调用</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-1024x576.jpeg" alt="" class="wp-image-5298" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.003.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>接下来是异步调用。</p>



<p>当事件源是S3、SNS等服务调用函数时是通过异步调用的方式。</p>



<p>在异步调用函数时，您不必等待函数代码的响应。将事件交给 Lambda，剩下的事情由Lambda 进行处理。</p>



<p>在异步调用时， Lambda 会针对函数错误重试两次。比如在上传至S3图片处理缩略图的案例中，如调用函数时发生错误，那么将会在重试两次。</p>



<p>您需要确保这个过程是幂等的，这是非常重要的。假设您的函数重试了2次写入数据库操作，对数据库做了一些更改，您要保证每次的操作结果是一致的。如果不是幂等的，重试2次产生了两次不同的更改，那么可能会出问题。</p>



<p>我们看个例子，上传一个文件到S3，然后其触发一个Lambda函数，这就是一个异步调用，当调用发生错误时会进行重试，如果所有重试都失败了，<strong>您可以通过定义一个死信队列，它可以是一个SQS队列，或者SNS主题，保存失败的的事件供近一步处理。</strong></p>



<p>对于我们的这个例子是通过SQS作为死信队列，<strong>当所有的重试都失败之后，不是丢弃这些事件，而是将失败的事件发送至死信队列，供后续处理。</strong></p>



<p>好，以上是异步调用。</p>



<h2 class="wp-block-heading">事件源映射</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-1024x576.jpeg" alt="" class="wp-image-5299" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.004.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>第三种调用类型称为事件源映射。</p>



<p>事件源映射是一个从事件源读取并调用 Lambda 函数的Lambda 资源。它从 Amazon SQS 队列、Amazon Kinesis 流或 Amazon DynamoDB 流中轮询批量读取项目，并将它们发送到您的函数。 所有的记录都会按照正确的顺序进行处理，除了SQS标准队列。</p>



<ul class="wp-block-list">
<li>对于SQS标准队列，项目不一定按顺序处理，函数可能会处理任意的批次，</li>



<li>对于Kinesis数据流，将按每个Shard的顺序处理记录，</li>



<li>对于SQS FIFO，将按每个消息组的顺序进行处理，</li>



<li>对于DynamoDB流，它将对DynamoDB流的每个分区进行排序处理。</li>
</ul>



<p>我们举个例子看一下事件源映射，这里是kinesis作为事件源，然后这是您的Lambda函数，Lambda事件源映射会作用在这两者之间，它会轮询kinesis，然后kinesis可能会返回一批记录，事件源映射将调用我们的Lambda函数进行处理，这就是事件源映射的工作原理。</p>



<p>如果在这个过程中您的函数返回错误，那么将重新处理整个批次直到成功，要注意这一点。</p>



<p>这也就是说，如果是Kinesis或DynamoDB Stream，他们将停止分片处理，因为它是按顺序处理的，如果第一批无法处理，将无法获得下一批，直到第一批已成功处理。</p>



<p>对于SQS FIFO，它将会停止处理，除非您定义了SQS 死信队列，在定义了死信队列的情况下，SQS会将失败的批次发送到死信队列，然后继续处理。</p>



<p>再一次强调，您需要确保的您的Lambda函数是幂等的，以防如果发生错误后两次处理同一批次事件出现问题。</p>



<h2 class="wp-block-heading">配置目标</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-1024x576.jpeg" alt="" class="wp-image-5300" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/25-AWS-Lambda-Part-3.005.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>目前您还可以配置您的Lambda函数将结果发送到一个称为目标destinations的地方。 目标可以配置在异步调用以及事件源映射，我们下面就来详细讨论下。</p>



<p>对于异步调用，您可以为成功和失败的事件定义目标。如果您没有定义目标，如果您的Lambda函数会返回一些信息，就无法看到，这些信息会被完全忽略。您可以配置将这些信息发送到SQS、SNS、另一个Lambda函数、或者EventBridge bus。</p>



<p>也就是说，Lambda函数从事件队列中获取事件进行异步处理时，如果返回成功，我们可以定义一个成功的目标，如SQS、SNS、Lambda等等；如果处理失败了，我们也可以将这些记录发送到定义的失败的事件目标。</p>



<p><strong>所以可以配置两种destinations，成功事件和失败事件的目标。</strong></p>



<p>好，有的学友可能会问了，那前面的死信队列和这个目标配置的功能是不是有些相似？</p>



<p>是的 ，配置失败的事件目标 和 死信队列的用途非常相似，AWS建议在异步调用您的Lambda函数时，使用目标配置来代替死信队列。当然两者有一些重叠的功能，且他们两个是可以同时使用的。使用目标配置，支持配置更多的目标类型：如SQS、SNS、Lambda、或者EventBridge bus，而死信队列只能配置为SQS和SNS。</p>



<p>接下来，对于事件源映射，只能配置失败事件的目标，用于接收处理失败的事件。如果一批事件处理失败了，则事件源映射将有关该批次的详细信息发送SQS或SNS。</p>



<p>来看一下这个图。事件源映射读取Kinesis的记录，会将其发送给Lambda函数。在这个过程中如果处理这些记录出现失败，我们可以选择将它们发送到SQS或SNS作为失败的事件目标，然后 Kinesis可以继续处理，这样的好处是当有无法处理某些记录时不会一直卡在这里。</p>



<p>如果您是处理SQS队列中的内容，当然也可以直接从SQS创建死信队列，作为上面目标的替代方案。 所以，达成的方案可能会有多种，但是作为解决方案架构师，您需要深入了解需求后，然后选择最佳方案和最佳实践。</p>



<p>好的，以上就是我们今天课时的内容，我们讨论了AWS Lambda &#8211; 第三部分的内容，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1024x576.jpeg" alt="" class="wp-image-5301" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/05/71-Amazon-ElastiCache.001.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li><a href="http://xn--AWSwww-y50k01m049ahdz76jqs0a27b.iloveaws.cn">AWS爱好者的网址是www.iloveaws.cn</a>，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>
</ul>



<p>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5295.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWS Lambda &#8211; 第二部分</title>
		<link>https://www.iloveaws.cn/5198.html</link>
					<comments>https://www.iloveaws.cn/5198.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Mon, 03 Apr 2023 01:54:30 +0000</pubDate>
				<category><![CDATA[03-计算与负载均衡]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5198</guid>

					<description><![CDATA[Hello大家好，我们今天继续讨论AWS Lambda的内容。]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-1024x576.jpeg" alt="" class="wp-image-5199" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.001.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Hello大家好，我们今天继续讨论AWS Lambda的内容。</p>



<h2 class="wp-block-heading">Lambda的网络</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-1024x576.jpeg" alt="" class="wp-image-5200" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.002.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>首先，我们来讨论一下Lambda的网络，联网相关的内容。</p>



<p>在部署Lambda时，在默认情况下，Lambda函数是部署和运行在AWS的一个安全的VPC中，是在您的VPC之外的。在这种环境下，Lambda函数是可以访问Internet 外部的API，以及通过Internet和AWS的服务进行通信，比如Lambda函数可以通过DynamoDB的公有Endpoint地址与其进行通信。</p>



<p>但是，注意，在这种情况下如果您有一个VPC，且在您的VPC内私有子网有一些资源，比如只能通过私有地址访问的RDS，那么在这种情况下，您的Lambda函数是无法访问到私有子网中的资源的，比如这个RDS。因为AWS的这个安全VPC和您的私有子网之间没有相关的路由。</p>



<p>那如何解决这个问题呢？方案就是将您的Lambda函数连接到您账户中的VPC，函数在运行时就可以访问VPC内的私有资源。</p>



<p>将Lambda函数连接到了VPC时，Lambda 在函数的 VPC 配置中会为VPC的每个子网和安全组组合创建一个ENI，然后通过在安全组配置相应访问规则，Lambda函数就可以通过私有子网访问RDS。</p>



<p>那现在还有一个问题，现在Lambda函数在VPC内，之前的外部API就无法访问了。如果需要访问外部的API，就需要通过公有子网的NAT网关或者实例，然后通过internet网关 访问外部的API。</p>



<p>最后，让我们看看函数如何访问DynamoDB，当然函数同样是可以通过NAT网关或者NAT实例，然后通过internet网关访问DynamoDB。但是这种方式不是通过私有网络访问的，而且我们可能需要为NAT网关/实例以及internet网关支付费用。所以这种方式是可行的，但是不是最佳实践。</p>



<p>最佳实践是通过创建DynamoDB的网关终端节点，然后私有子网的Lambda函数通过终端节点访问DynamoDB，这样的话访问都是通过私有网络，而不通过internet，当然前提是要您配置好相应的路由表。</p>



<p>好，如果在以后遇到Lambda函数部署的问题，您需要掌握上面讲的函数部署在VPC外，以及连接至VPC后，对应函数需要访问的资源,评估并确定方案 ；以及面对不同的业务场景，选择最佳的实现方案。</p>



<p>最后，无论您的Lambda函数是部署在VPC外还是连接到了VPC，都可以与CloudWatch Logs通信。也就是说这两种情况函数都是可以发送日志到CloudWatch Logs的。 这是AWS内部实现的，不需要我们考虑两者网络的情况。</p>



<h2 class="wp-block-heading">Lambda 日志、监控以及追踪</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-1024x576.jpeg" alt="" class="wp-image-5201" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.003.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>好，接下来我们讨论Lambda 日志、监控以及追踪。</p>



<p>首先有CloudWatch，我们知道Lambda和CloudWatch服务集成，Lambda的执行日志都会发送并存储至Cloudwatch logs，而无论Lambda函数部署在您的VPC内还是VPC外。</p>



<p>可以通过Cloudwatch指标，查看Lambda的一些指标，如：成功调用、错误率、延迟、超时等等。</p>



<p>Lambda函数的日志写入Cloudwatch，需要分配函数执行角色，并添加相应的如写入Cloudwatch权限，这样才能够正常写入日志，这一点要注意。</p>



<p>接下来是X-Ray，X-Ray是用于分布式追踪，可以使用X-Ray来追踪Lambda函数。只需要在Lambda的配置中开启，AWS就会为您启动一个X-Ray守护进程；或者也可以在代码中使用AWS SDK添加X-Ray指针。同样，需要注意Lambda函数的执行角色要分配相应的与X-Ray访问的权限。</p>



<p>好的，以上就是我们今天课时的内容，我们讨论了AWS Lambda &#8211; 第二部分的内容，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-1024x576.jpeg" alt="" class="wp-image-5202" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/04/24-AWS-Lambda-Part-2.004.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li><a href="http://xn--AWSwww-y50k01m049ahdz76jqs0a27b.iloveaws.cn">AWS爱好者的网址是www.iloveaws.cn</a>，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>
</ul>



<p>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5198.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWS Lambda &#8211; 第一部分</title>
		<link>https://www.iloveaws.cn/5135.html</link>
					<comments>https://www.iloveaws.cn/5135.html#respond</comments>
		
		<dc:creator><![CDATA[沉默恶魔]]></dc:creator>
		<pubDate>Wed, 15 Mar 2023 10:16:13 +0000</pubDate>
				<category><![CDATA[03-计算与负载均衡]]></category>
		<category><![CDATA[通过AWS SAP认证]]></category>
		<category><![CDATA[AWS SAP认证]]></category>
		<guid isPermaLink="false">https://www.iloveaws.cn/?p=5135</guid>

					<description><![CDATA[SAP认证考试会涉及到很多Lambda的内容，想要通过认证考试虽然不一定非要精通开发，但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-1024x576.jpeg" alt="" class="wp-image-5136" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.001.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Hello大家好，我们今天开始讨论AWS Lambda的内容。</p>



<p>SAP认证考试会涉及到很多Lambda的内容，想要通过认证考试虽然不一定非要精通开发，但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。</p>



<p>我们开始吧！</p>



<h2 class="wp-block-heading">Lambda与其他服务一起使用</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-1024x576.jpeg" alt="" class="wp-image-5137" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.002.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Lambda 可以与多个AWS服务进行集成，从而调用函数，执行一些自动化任务。比如：API网关、Kinesis、DynamoDB、S3、IOT、CloudWatch Events、CloudWatch Logs、SNS、Cognito、SQS等等，这些服务都和Lambda进行了集成，可以与其一起工作。</p>



<p>您可以配置触发器来调用函数，以响应如：资源生命周期事件、响应传入的 HTTP 请求、使用队列中的事件或按计划运行等。</p>



<p>Lambda通过与多个AWS服务的集成，可以胜任很多场景的自动化的工作。</p>



<h2 class="wp-block-heading">使用Lambda结合S3自动创建缩略图</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-1024x576.jpeg" alt="" class="wp-image-5138" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.003.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>接下来我们就看两个比较常见的Lambda的使用案例，他们也经常出现在考试的题目中。</p>



<p>第一个案例是为每个上传到S3存储桶的图像文件自动创建缩略图，大致流程是这样的：</p>



<ol class="wp-block-list">
<li>当有新的图像文件存储到S3存储桶中后，S3将触发我们配置的一个Lambda函数；</li>



<li>这个Lambda函数的功能为创建缩略图，且将缩略图比如存放在另外指定的S3存储桶中供使用；</li>



<li>以及将一些图像的元数据如：图像名称、大小、创建日期等推送到DynamoDB中存储。</li>
</ol>



<h2 class="wp-block-heading">使用Lambda结合CloudWatch Events 执行Cron job</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-1024x576.jpeg" alt="" class="wp-image-5139" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.004.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>另一个非常常见的案例是使用Lambda 结合 CloudWatch Events 执行Cron job。</p>



<p>我们在日常工作中经常会有一些定期要执行的任务，在以往一般都是通过在EC2上使用CRON来定期调用、执行相应的任务。</p>



<p>这样的话就需要启动EC2实例，尽管可能这台EC2大部分时间不工作，我们还是需要为其付费，而且还要负责维护这台EC2实例。那现在可以：</p>



<ol class="wp-block-list">
<li>通过定义CloudWatch Events</li>



<li>然后我们可以定义一个时间间隔，比如每个小时去触发我们配置的Lambda函数，执行一个最长可为15分钟的任务。</li>
</ol>



<p>这是通过无服务器架构执行Cron任务的最佳实践，CloudWatch Events和Lambda都是无服务器的，不需要我们管理任何基础设施以及为基础设施付费。</p>



<h2 class="wp-block-heading">Lambda支持的运行环境</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-1024x576.jpeg" alt="" class="wp-image-5140" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.005.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>我们继续，Lambda支持的运行环境。</p>



<p>Lambda运行环境支持多种语言，如：Node.js 、Python、Ruby 、Java、Go以及.NET等。</p>



<p>您也可以通过自定义运行环境来使用其他的编程语言，通过这种方式Lambda几乎支持任何语言。</p>



<p>如果在考试题目中出现Docker相关的场景，那么在大多数情况下Lambda都不是一个很好的选择。</p>



<p>如果出现Docker的场景，一般AWS想让您考虑使用ECS、Fargate，或者和Docker配合很好的批处理Batch，而不是Lambda。</p>



<p>虽然有的时候可以通过自定义运行环境来使用Lambda 执行Docker同样的工作，但是一般不推荐这么做。所以，如果看到Docker，优先考虑ECS、Fargate或者Batch，而不是Lambda。</p>



<h2 class="wp-block-heading">Lambda的使用限制</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-1024x576.jpeg" alt="" class="wp-image-5141" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.006.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>接下来我们讨论Lambda的使用限制。其中有一些是需要我们记住的，这样才能够判断在一些场景中是否适合使用Lambda。</p>



<ul class="wp-block-list">
<li>首先是内存，也就是提供给您的Lambda函数的内存，是在128MB到3GB之间，最高为3个G，所以如果您运行的函数如果需要超过3GB的内存，那么就无法使用Lambda。在2020年12月1日左右，AWS对外公布Lambda已经最高支持10G的内存了，比之前提高了3倍以上。</li>



<li>然后CPU，Lambda是与配置的内存成正比的方式线性分配CPU处理能力的。也就是说，您无法手动指定需要多少CPU计算能力。您指定的内存越大，那么获得的CPU计算能力越高。在内存为1792 MB 时，函数拥有相当于一个完整 vCPU的处理能力。不过也要注意您的代码是支持多线程的，否则即使分配了多vCPU也无法充分利用。</li>



<li>然后，函数的超时时间为15分钟，您的函数运行不能超过15分钟。所以如果在考试中有题目要运行任务超过15分钟的场景，那么Lambda就不是一个很好的选择。</li>



<li>Lambda函数的/tmp目录，用来下载和存储临时文件的目录，最大支持512MB存储空间。所以如果您从S3拉取比如2G的文件然后使用函数来处理的话，是做不到的，因为您的函数的最大存储空间为512MB。</li>



<li>部署程序包大小包括层最大支持250MB，您上传到AWS的程序包是不能超过250M的。所以，要注意的一点是，您需要结合/tmp来确定有多少空间来运行您的Lambda函数。</li>



<li>最后，默认情况下，最大的并发的数量是1000。也就是最高可以同时运行1000个函数实例。注意这是一个软限制，可以请求在提高限制。</li>
</ul>



<h2 class="wp-block-heading">Lambda的延迟因素</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-1024x576.jpeg" alt="" class="wp-image-5142" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.007.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>好的，接下来我们来讨论Lambda的延迟因素。</p>



<p>我们前面介绍了为Lambda分配内存，从而获得更高的CPU计算能力。其实要优化Lambda的性能，提高执行的效率，除了这些还需要了解并发限制、冷启动因素以及做好Lambda的相关监控，下面我们就分别来讨论：</p>



<p>首先是Lambda函数运行的并发限制，因为资源从来都不是无限的，对吧。</p>



<p>我们上一张PPT讨论过，在默认情况下，最大的并发的数量是1000，是软限制，可以提交申请增加。所以在使用Lambda时，先要评估默认的并发数是不是满足需要，如果不满足提前提交申请增加并发。</p>



<p>只增加并发数量，并不是就意味着这样就OK了，这只代表马路宽了一些，可以同时经过的车多了，但还有一个非常容易忽视的因素—冷启动时间。</p>



<p>什么是冷启动时间呢？我们看一下这个图，当我们在第一次调用Lambda函数时，它要从S3下载代码，下载所有依赖项，创建一个容器并在执行代码之前初始化运行环境，这整个持续时间（除了代码执行）就是冷启动时间。</p>



<p>如果在函数执行过程中，有新的请求调用函数，也就是出现了函数并发调用，那么会在分配一个新的实例处理该事件，新的实例在执行我们的函数代码前，同样需要下载代码，下载所有依赖项，创建一个容器，初始化运行环境等等，这样势必会增加Lambda函数的响应延迟。</p>



<p>在re:invent 2019，AWS推出了一个“预配置并发”这个功能，可以配置预热Lambda执行环境。这样的话，在调用函数时可以使用环境来立即执行代码，而无需花费时间进行冷启动。</p>



<p>最后，要优化Lambda函数的延迟，还要做好相应的监控。 知道哪里的问题才能想办法优化。 CloudWatch仅显示Lambda函数的一些指标，如果我们的使用场景是Lambda结合多个AWS服务，且需要知道下游AWS服务（例如DynamoDB，S3）对于每个lambda调用的情况的话，就可以使用X-Ray。X-Ray可以通过可视化的方式，跟踪和调试lambda函数和其他AWS服务之间的问题。</p>



<h2 class="wp-block-heading">Lambda安全相关</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-1024x576.jpeg" alt="" class="wp-image-5143" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/23-AWS-Lambda-Part-1.008.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>接下来我们讨论Lambda安全相关。</p>



<p>首先，和其他服务一样，可以使用IAM来管理对 Lambda API 和资源（如函数和层）的访问。</p>



<p>然后，Lambda 函数也具有一个策略，称为执行角色，这个执行角色的配置在很多AWS服务中也都存在，是用来向函数授予访问 AWS 服务和资源的权限，是函数被调用时代入的角色。比如您的Lambda函数需要写入DynamoDB，就需要给函数分配执行角色并提供相应的写入权限。</p>



<p>除此之外，Lambda还有一个叫作基于资源的策略，和S3的存储桶策略有点类似，使用JSON格式定义策略。</p>



<p>我们来看一个策略：</p>



<p>这个策略的大致内容是，允许这个账户下的S3的一个存储桶调用名为 my-function 的函数。 也就是通过Lambda的基于资源的策略，允许AWS服务调用Lambda函数。</p>



<p>另外要注意下，当您将这个S3或者其他AWS服务与Lambda函数建立连接时，将会创建相应的基于资源的策略，这块要注意下，考试中可能会有相应的考点。</p>



<p>因此，使用基于资源的策略可以做两件事：</p>



<ol class="wp-block-list">
<li>第一，可以允许其他的AWS账户调用或者管理Lambda函数。如果您需要跨账户调用Lambda函数，就需要使用基于资源的策略，以允许其他账户调用；</li>



<li>第二，允许AWS服务调用或管理您的Lambda函数，比如上面的这个S3存储桶的例子。</li>
</ol>



<p>好，以上是Lambda权限策略部分。</p>



<p>以上就是我们今天课时的内容，我们讨论了AWS Lambda &#8211; 第一部分的内容，希望能够给大家带来帮助。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://resource.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-1024x576.jpeg" alt="" class="wp-image-5144" srcset="https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-1024x576.jpeg 1024w, https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-460x259.jpeg 460w, https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-768x432.jpeg 768w, https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-1536x864.jpeg 1536w, https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-120x68.jpeg 120w, https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001-310x174.jpeg 310w, https://www.iloveaws.cn/wp-content/uploads/2023/03/71-Amazon-ElastiCache.001.jpeg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>希望此系列教程能为您通过AWS的认证考试带来帮助，如您有任何疑问，请联系我们：</p>



<ul class="wp-block-list">
<li>如果您想获取本课程全部课时，请扫PPT的二维码加入。</li>



<li><a href="http://xn--AWSwww-y50k01m049ahdz76jqs0a27b.iloveaws.cn">AWS爱好者的网址是www.iloveaws.cn</a>，认证视频课程，免费的认证考试仿真题以及认证课程文章，都可以在网站找得到</li>



<li>可以通过扫码加入【AWS爱好者】微信公众号，查看原创的AWS知识点相关文章。</li>



<li>加入【AWS爱好者】微信群，和其他同学一起备考，以及探讨交流AWS相关知识。</li>
</ul>



<p>我们今天的视频课程就到这里，感谢大家的观看，我们下一课程再见。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iloveaws.cn/5135.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
