Skip to content

Commit da9a506

Browse files
committed
1 parent 849b9ba commit da9a506

File tree

864 files changed

+20744
-13092
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

864 files changed

+20744
-13092
lines changed

404.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -756,6 +756,8 @@ <h1>找不到页面</h1>
756756
<h2>最新</h2>
757757
<ul>
758758

759+
<li><a href="/blog/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect/">AWS 宣布将停用 App Mesh,鼓励用户迁移至 Amazon ECS Service Connect</a></li>
760+
759761
<li><a href="/blog/istio-aws-private-ca/">如何将 Istio 与 AWS 私有证书颁发机构(Private CA)无缝集成</a></li>
760762

761763
<li><a href="/blog/jd-grandshorestech/">香港雄岸科技 - 远程 - 云原生职位 JD</a></li>
@@ -774,8 +776,6 @@ <h2>最新</h2>
774776

775777
<li><a href="/blog/istio-keycloak-authentication-authorization/">使用 Istio 和 Keycloak 实现身份验证和授权</a></li>
776778

777-
<li><a href="/blog/you-probably-dont-need-microservices/">你可能不需要微服务</a></li>
778-
779779
</ul>
780780

781781

author/venil-noronha/index.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1000,7 +1000,7 @@
10001000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
10011001
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;c1&#34;&gt;// create a gRPC server and register the RateLimitService server
10021002
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;grpc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;NewServer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
1003-
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nx&#34;&gt;rls&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;RegisterRateLimitServiceServer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;limit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
1003+
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nx&#34;&gt;rls&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;RegisterRateLimitServiceServer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;limit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
10041004
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nx&#34;&gt;reflection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
10051005
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Serve&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;lis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
10061006
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Fatalf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;failed to serve: %v&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;

author/云原生社区/index.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@
321321
<meta property="twitter:image" content="https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/avatar_hu704adb3a88ed39769145f561e6113c42_6553_270x270_fill_lanczos_center_3.png" /><meta property="og:locale" content="zh" />
322322

323323

324-
<meta property="og:updated_time" content="2024-09-19T14:46:32&#43;08:00" />
324+
<meta property="og:updated_time" content="2024-10-08T16:08:47&#43;08:00" />
325325

326326

327327

@@ -823,6 +823,10 @@ <h3>云原生社区责任编辑</h3>
823823
<h3>最新</h3>
824824
<ul>
825825

826+
<li>
827+
<a href="/blog/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect/">AWS 宣布将停用 App Mesh,鼓励用户迁移至 Amazon ECS Service Connect</a>
828+
</li>
829+
826830
<li>
827831
<a href="/blog/jd-grandshorestech/">香港雄岸科技 - 远程 - 云原生职位 JD</a>
828832
</li>

author/云原生社区/index.xml

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,70 @@
55
<link>https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/</link>
66
<atom:link href="https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/index.xml" rel="self" type="application/rss+xml" />
77
<description>云原生社区</description>
8-
<generator>Wowchemy (https://wowchemy.com)</generator><language>zh</language><lastBuildDate>Thu, 19 Sep 2024 14:46:32 +0800</lastBuildDate>
8+
<generator>Wowchemy (https://wowchemy.com)</generator><language>zh</language><lastBuildDate>Tue, 08 Oct 2024 16:08:47 +0800</lastBuildDate>
99
<image>
1010
<url>https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/avatar_hu704adb3a88ed39769145f561e6113c42_6553_270x270_fill_lanczos_center_3.png</url>
1111
<title>云原生社区</title>
1212
<link>https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/</link>
1313
</image>
1414

15+
<item>
16+
<title>AWS 宣布将停用 App Mesh,鼓励用户迁移至 Amazon ECS Service Connect</title>
17+
<link>https://cloudnative.to/blog/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect/</link>
18+
<pubDate>Tue, 08 Oct 2024 16:08:47 +0800</pubDate>
19+
<guid>https://cloudnative.to/blog/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect/</guid>
20+
<description>&lt;p&gt;近日,AWS &lt;a href=&#34;https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;官方博客&lt;/a&gt;发布公告,宣布将于&lt;strong&gt;2026 年 9 月 30 日&lt;/strong&gt;正式停用 AWS App Mesh 服务。从&lt;strong&gt;2024 年 9 月 24 日&lt;/strong&gt;起,新用户将无法再使用 App Mesh。AWS 建议现有的 App Mesh 用户开始规划迁移到 Amazon ECS Service Connect,以充分利用其改进的特性和功能。&lt;/p&gt;
21+
&lt;h2 id=&#34;amazon-ecs-service-connect-的优势&#34;&gt;Amazon ECS Service Connect 的优势&lt;/h2&gt;
22+
&lt;p&gt;在 2022 年的 re:Invent 大会上,AWS 推出了&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amazon ECS Service Connect&lt;/a&gt;,这是一种连接 Amazon Elastic Container Service(Amazon ECS)中微服务的新方式。Service Connect 通过内置的健康检查、异常检测和重试机制,显著提高了容器化微服务的可靠性。此外,它还能将应用层网络指标发送到 Amazon CloudWatch,增强了系统的可观测性。&lt;/p&gt;
23+
&lt;p&gt;与 App Mesh 不同,Service Connect 使用了 AWS 托管的网络数据平面,消除了管理 sidecar 代理的繁琐工作。这意味着开发者可以更专注于业务逻辑,而无需处理底层网络管理的细节。&lt;/p&gt;
24+
&lt;h2 id=&#34;迁移策略从-app-mesh-到-service-connect&#34;&gt;迁移策略:从 App Mesh 到 Service Connect&lt;/h2&gt;
25+
&lt;p&gt;由于 Amazon ECS 服务不能同时属于 App Mesh Mesh 和 Service Connect 命名空间,因此迁移过程需要重新创建 Amazon ECS 服务。为了避免服务中断,AWS 建议采用&lt;a href=&#34;https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/bluegreen-deployments.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;蓝绿部署&lt;/a&gt;的迁移策略。这种方法允许在新旧环境之间逐步切换流量,确保迁移的平滑过渡。&lt;/p&gt;
26+
&lt;p&gt;在迁移过程中,可以利用多种流量控制手段,如 &lt;a href=&#34;https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amazon Route 53 加权路由&lt;/a&gt;&lt;a href=&#34;https://aws.amazon.com/blogs/networking-and-content-delivery/achieving-zero-downtime-deployments-with-amazon-cloudfront-using-blue-green-continuous-deployments/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amazon CloudFront 持续部署&lt;/a&gt;&lt;a href=&#34;https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#rule-action-types&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;应用程序负载均衡器的多目标组路由&lt;/a&gt;,实现流量的细粒度转移。&lt;/p&gt;
27+
&lt;p&gt;需要注意的是,两个环境之间的网络是隔离的,即在 App Mesh 环境中运行的服务无法直接与 Service Connect 环境中的服务通信。因此,完整的迁移策略对于确保服务的连续性至关重要。&lt;/p&gt;
28+
&lt;h2 id=&#34;功能对比app-mesh-vs-service-connect&#34;&gt;功能对比:App Mesh vs. Service Connect&lt;/h2&gt;
29+
&lt;p&gt;下面是 App Mesh 和 Service Connect 在关键功能方面的对比:&lt;/p&gt;
30+
&lt;table&gt;
31+
&lt;thead&gt;
32+
&lt;tr&gt;
33+
&lt;th&gt;&lt;strong&gt;功能&lt;/strong&gt;&lt;/th&gt;
34+
&lt;th&gt;&lt;strong&gt;App Mesh&lt;/strong&gt;&lt;/th&gt;
35+
&lt;th&gt;&lt;strong&gt;Service Connect&lt;/strong&gt;&lt;/th&gt;
36+
&lt;/tr&gt;
37+
&lt;/thead&gt;
38+
&lt;tbody&gt;
39+
&lt;tr&gt;
40+
&lt;td&gt;&lt;strong&gt;网络可靠性&lt;/strong&gt;&lt;/td&gt;
41+
&lt;td&gt;使用 Envoy 的异常检测、健康检查和重试机制,可以对这些参数进行细粒度的调整。&lt;/td&gt;
42+
&lt;td&gt;使用 Envoy 的异常检测、健康检查和重试机制,提供默认配置,用户只能调整超时时间。&lt;/td&gt;
43+
&lt;/tr&gt;
44+
&lt;tr&gt;
45+
&lt;td&gt;&lt;strong&gt;高级流量路由&lt;/strong&gt;&lt;/td&gt;
46+
&lt;td&gt;支持通过虚拟路由器在多个虚拟节点之间实现高级流量路由,如 AB 测试和金丝雀发布。&lt;/td&gt;
47+
&lt;td&gt;目前不支持高级流量路由功能。&lt;/td&gt;
48+
&lt;/tr&gt;
49+
&lt;tr&gt;
50+
&lt;td&gt;&lt;strong&gt;可观测性&lt;/strong&gt;&lt;/td&gt;
51+
&lt;td&gt;用户需要自行收集和监控流量指标。&lt;/td&gt;
52+
&lt;td&gt;自动将应用层的网络指标发送到 Amazon CloudWatch,用户可直接查看,降低了监控的复杂性。&lt;/td&gt;
53+
&lt;/tr&gt;
54+
&lt;tr&gt;
55+
&lt;td&gt;&lt;strong&gt;安全性&lt;/strong&gt;&lt;/td&gt;
56+
&lt;td&gt;支持 TLS 加密通信,可与 AWS PCA 的通用证书结合,支持双向的 mTLS 认证。&lt;/td&gt;
57+
&lt;td&gt;支持 TLS 加密通信,但不支持双向认证,只能使用 AWS PCA 的短期证书。&lt;/td&gt;
58+
&lt;/tr&gt;
59+
&lt;tr&gt;
60+
&lt;td&gt;&lt;strong&gt;资源共享&lt;/strong&gt;&lt;/td&gt;
61+
&lt;td&gt;可通过 AWS 资源访问管理器(AWS RAM)在多个 AWS 账户之间共享 Mesh,支持跨账户服务通信。&lt;/td&gt;
62+
&lt;td&gt;目前不支持在多个账户之间共享命名空间,所有服务需部署在同一 AWS 账户内。&lt;/td&gt;
63+
&lt;/tr&gt;
64+
&lt;/tbody&gt;
65+
&lt;/table&gt;
66+
&lt;h2 id=&#34;结语&#34;&gt;结语&lt;/h2&gt;
67+
&lt;p&gt;AWS 宣布停用 App Mesh 并鼓励用户迁移至 Amazon ECS Service Connect,体现了其在简化服务网格管理和提升用户体验方面的战略方向。对于云原生社区的开发者和企业而言,这是一个重新评估和优化服务架构的契机。&lt;/p&gt;
68+
&lt;p&gt;我们建议所有仍在使用 App Mesh 的用户,尽快制定迁移计划,充分利用 Service Connect 带来的优势。有关详细的迁移步骤和实践经验,请参考 AWS 提供的 &lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amazon ECS 文档&lt;/a&gt;&lt;a href=&#34;https://catalog.workshops.aws/ecs-immersion-day/en-US/60-networking/ecs-service-connect&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amazon ECS Immersion Day workshop&lt;/a&gt;,获取更多技术支持。&lt;/p&gt;
69+
</description>
70+
</item>
71+
1572
<item>
1673
<title>香港雄岸科技 - 远程 - 云原生职位 JD</title>
1774
<link>https://cloudnative.to/blog/jd-grandshorestech/</link>

authors/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -778,10 +778,10 @@ <h1></h1>
778778

779779

780780

781-
<li><a href="https://cloudnative.to/author/arka-bhattacharya/">Arka Bhattacharya</a></li>
781+
<li><a href="https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/">云原生社区</a></li>
782782

783783

784-
<li><a href="https://cloudnative.to/author/%E4%BA%91%E5%8E%9F%E7%94%9F%E7%A4%BE%E5%8C%BA/">云原生社区</a></li>
784+
<li><a href="https://cloudnative.to/author/arka-bhattacharya/">Arka Bhattacharya</a></li>
785785

786786

787787
<li><a href="https://cloudnative.to/author/alex-ly/">Alex Ly</a></li>

blog/201905-servicemesh-development-trend/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@
322322
content="2019-05-28T07:15:43&#43;08:00"
323323
/>
324324

325-
<meta property="article:modified_time" content="2024-09-24T17:16:23&#43;08:00">
325+
<meta property="article:modified_time" content="2024-10-08T16:37:06&#43;08:00">
326326

327327

328328

@@ -351,7 +351,7 @@
351351
"headline": "Service Mesh 发展趋势:云原生中流砥柱",
352352

353353
"datePublished": "2019-05-28T07:15:43+08:00",
354-
"dateModified": "2024-09-24T17:16:23+08:00",
354+
"dateModified": "2024-10-08T16:37:06+08:00",
355355

356356
"author": {
357357
"@type": "Person",

blog/201909-build-full-micro-service-platform-by-spring-boot-with-kubernetes/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@
322322
content="2019-09-02T07:15:43&#43;08:00"
323323
/>
324324

325-
<meta property="article:modified_time" content="2024-09-24T17:16:23&#43;08:00">
325+
<meta property="article:modified_time" content="2024-10-08T16:37:06&#43;08:00">
326326

327327

328328

@@ -351,7 +351,7 @@
351351
"headline": "使用 spring boot+kubernetes 构建完整微服务平台",
352352

353353
"datePublished": "2019-09-02T07:15:43+08:00",
354-
"dateModified": "2024-09-24T17:16:23+08:00",
354+
"dateModified": "2024-10-08T16:37:06+08:00",
355355

356356
"author": {
357357
"@type": "Person",

blog/202002-network-service-mesh/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@
322322
content="2020-02-15T10:57:00&#43;08:00"
323323
/>
324324

325-
<meta property="article:modified_time" content="2024-09-24T17:16:23&#43;08:00">
325+
<meta property="article:modified_time" content="2024-10-08T16:37:06&#43;08:00">
326326

327327

328328

@@ -351,7 +351,7 @@
351351
"headline": "NFV 走向云原生时代:Network Service Mesh 项目介绍",
352352

353353
"datePublished": "2020-02-15T10:57:00+08:00",
354-
"dateModified": "2024-09-24T17:16:23+08:00",
354+
"dateModified": "2024-10-08T16:37:06+08:00",
355355

356356
"author": {
357357
"@type": "Person",

blog/202003-gitops-progressive-delivery-with-asm/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@
322322
content="2020-03-19T14:08:21&#43;08:00"
323323
/>
324324

325-
<meta property="article:modified_time" content="2024-09-24T17:16:23&#43;08:00">
325+
<meta property="article:modified_time" content="2024-10-08T16:37:06&#43;08:00">
326326

327327

328328

@@ -351,7 +351,7 @@
351351
"headline": "使用托管服务网格实现应用在多集群中的 GitOps 全自动化渐进式发布",
352352

353353
"datePublished": "2020-03-19T14:08:21+08:00",
354-
"dateModified": "2024-09-24T17:16:23+08:00",
354+
"dateModified": "2024-10-08T16:37:06+08:00",
355355

356356
"author": {
357357
"@type": "Person",

blog/202003-k8s-scheduling-framework/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@
322322
content="2020-03-16T07:16:13&#43;08:00"
323323
/>
324324

325-
<meta property="article:modified_time" content="2024-09-24T17:16:23&#43;08:00">
325+
<meta property="article:modified_time" content="2024-10-08T16:37:06&#43;08:00">
326326

327327

328328

@@ -351,7 +351,7 @@
351351
"headline": "浅谈 Kubernetes Scheduling-Framework 插件的实现",
352352

353353
"datePublished": "2020-03-16T07:16:13+08:00",
354-
"dateModified": "2024-09-24T17:16:23+08:00",
354+
"dateModified": "2024-10-08T16:37:06+08:00",
355355

356356
"author": {
357357
"@type": "Person",

0 commit comments

Comments
 (0)