本快速入门将向您介绍如何在 Cloud Storage 存储桶您可以将此配置用于测试或 是生产环境的基础。
如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示:
本页将引导您完成以下步骤:
- 创建一个 Cloud Storage 存储桶来存储您的内容。
- 启用所需的服务。
- 创建
EdgeCacheOrigin
资源以将媒体 CDN 连接到 存储桶 - 创建
EdgeCacheService
资源以配置请求路由和 为源站中的内容进行缓存。 - 测试是否正在缓存响应。
准备工作
确保您满足以下要求:
对您当前项目的媒体 CDN 访问权限。
安装了 Google Cloud CLI。使用版本 345.0.0 或 。
如果需要,请使用
gcloud version
检查版本并gcloud components update
,用于更新已安装的 gcloud CLI。gcloud CLI 提供了
gcloud edge-cache
子命令组 用于管理新的和现有的媒体 CDN 配置。创建项目所需的 Identity and Access Management (IAM) 权限 媒体 CDN 资源。媒体 CDN 拥有以下预定义的 IAM 角色:
roles/networkservices.edgeCacheAdmin
roles/networkservices.edgeCacheUser
roles/networkservices.edgeCacheViewer
创建 Cloud Storage 存储桶
媒体 CDN 内容可以来自 Cloud Storage 存储桶、第三方存储位置或负载均衡器等位置。
在本快速入门中,我们将内容存储在 Cloud Storage 存储桶中。
创建可公开访问的 Cloud Storage 存储桶 并将其命名为
my-bucket
。如果您不想公开 Cloud Storage 存储桶 您必须授予媒体 CDN 权限 存储桶。如需了解详情,请参阅使用私有 Cloud Storage 存储桶。
将文件上传到存储桶。
启用所需的服务
如需配置和部署 Media CDN 服务,您需要为项目同时启用 Network Services API 和 Certificate Manager API。
控制台
gcloud
启用 Network Services API:
gcloud services enable networkservices.googleapis.com
启用 Certificate Manager API:
gcloud services enable certificatemanager.googleapis.com
如需详细了解如何启用和停用服务,请参阅 Service Usage 文档。
创建 EdgeCacheOrigin
资源
创建指向您的 Cloud Storage 存储桶的来源。
控制台
在 Google Cloud 控制台中,前往媒体 CDN 页面。
点击Origins标签页。
点击创建源站。
将来源的名称输入为
cloud-storage-origin
。可选:为来源输入说明。
在来源地址部分,选中选择 Google Cloud Storage 存储桶,浏览到名为
my-bucket
的 Cloud Storage 存储桶,然后点击选择。如果您使用的是外部来源,请选择指定 FQDN 或 IP 地址,然后输入 FQDN 或 IP 地址。
点击创建源站。
大约 10 分钟后,新创建的 EdgeCacheOrigin
资源会显示在项目的来源页面上的来源列表中。
如需更新来源地址,请点击来源,然后点击
修改。gcloud
使用 gcloud edge-cache origins create
命令:
gcloud edge-cache origins create ORIGIN \
--origin-address="ADDRESS"
替换以下内容:
ORIGIN
:新来源的名称ADDRESS
:存储桶名称,gs://my-bucket
如果您有外部来源,请将
ADDRESS
替换为 FQDN 或 IP 地址
如需查看新创建的来源,请使用
gcloud edge-cache origins list
命令。
如需更新来源地址,请使用 gcloud edge-cache origins update
命令。
API
使用 edgeCacheOrigins.create
方法:
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID { "name": "ORIGIN_ID", "originAddress: "ADDRESS" }
替换以下内容:
PARENT
:父级资源,格式为projects/PROJECT/locations/global
ORIGIN_ID
:新来源的简称ADDRESS
:存储桶名称,即gs://my-bucket
如果您有外部来源,请将
ADDRESS
替换为 FQDN 或 IP 地址
如需查看新创建的来源,请使用
edgeCacheOrigins.list
方法。
如需更新来源地址,请使用 edgeCacheOrigins.patch
方法。
Terraform
创建 EdgeCacheService
资源
您的 EdgeCacheService
资源会配置路由、证书和缓存设置,并且可以指向 EdgeCacheOrigin
资源。
创建一个执行以下操作的基本 EdgeCacheService
资源:
- 将来自我们配置的源站的所有响应缓存一小时
- 设置用于返回缓存状态的
x-cache-status
响应标头 (例如HIT
或MISS
)
(可选)为此服务注册域名。
控制台
在 Google Cloud 控制台中,前往媒体 CDN 页面。
点击 Services(服务)标签。
点击创建服务。
为您的服务输入一个唯一名称(例如
my-service
),然后点击下一步。在路由部分,点击添加主机规则,然后输入一个 或多个主机域名。
对于主机,请输入主机域名,例如
web.example.com
。点击添加路由规则。
- 对于优先级,指定
1
。 - 点击添加匹配条件,对于路径匹配,指定
/
,然后点击完成。 - 选择从来源提取,然后选择您配置的源站。
- 点击附加操作。
- 在标头操作中,点击添加内容。然后,执行以下操作:
- 对于类型,选择要添加的响应标头。
- 点击添加标头。
- 对于名称,请指定
x-cache-status
;对于值,请指定{cdn_cache_status}
。 - 点击完成。
- 对于路由操作,点击添加内容。然后,执行以下操作:
- 对于类型,选择 CDN 政策。
- 对于缓存模式,选择 FORCE_CACHE_ALL。
- 点击完成。
- 点击保存。
- 对于优先级,指定
点击创建服务。
新创建的 EdgeCacheService
资源会显示在项目的“服务”页面中的服务列表中。
gcloud
在 Cloud Shell 中,使用文本编辑器创建一个名为
my-service.yaml
的本地文件。此类文件表示以下内容:
- 路由的运作方式:先匹配主机,然后匹配路径
- 缓存的工作原理(基于缓存模式和 TTL)
- 如何修改请求和响应,例如,将
cdn_cache_status
变量插入响应标头
将以下示例内容粘贴到该文件中,然后保存:
name: SERVICE routing: hostRules: - hosts: - DOMAIN pathMatcher: routes pathMatchers: - name: routes routeRules: - priority: 1 matchRules: - prefixMatch: / origin: ORIGIN routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600s headerAction: responseHeadersToAdd: - headerName: "x-cache-status" headerValue: "{cdn_cache_status}"
替换以下内容:
SERVICE
:服务的名称DOMAIN
:新服务的网域
如果您指定域名,媒体 CDN 会响应 其他主机出现
404
错误。 *ORIGIN
:相关来源的名称将
gcloud edge-cache services import
命令与.yaml
文件结合使用:gcloud edge-cache services import SERVICE \ --source=my-service.yaml
在
EdgeCacheService
列表中查看新创建的服务 项目中的资源,请使用gcloud edge-cache services list
命令。
API
使用 edgeCacheServices.create
方法:
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_ID { "name": "SERVICE_ID", "routing": { "hostRules": [ { "hosts": ["DOMAIN"], "pathMatcher": "routes" } ], "pathMatchers": [ { "name": "routes", "routeRules": [ { "priority": "1", "matchRules": [ { "prefixMatch": "/" } ], "origin": "ORIGIN", "routeAction": { "cdnPolicy": { "cacheMode": "CACHE_ALL_STATIC", "defaultTtl": "3600s" } } "headerAction": { "responseHeadersToAdd": [ { "headerName": "x-cache-status", "headerValue": "{cdn_cache_status}" } ] }, } ] } ] } }
替换以下内容:
PARENT
:父级资源,格式为projects/PROJECT/locations/global
SERVICE_ID
:服务的名称DOMAIN
:新服务的网域如果您指定了域名,Media CDN 会针对其他主机返回
404
错误。ORIGIN_NAME
:关联来源的名称
如需在项目的 EdgeCacheService
资源列表中查看新创建的服务,请使用 edgeCacheServices.list
方法。
Terraform
创建第一项服务可能需要几分钟时间。 媒体 CDN 提供专用 IP 地址, 数千个边缘位置对服务的后续更新时 例如更改路由配置或匹配参数。
检索 IP 地址
如需查看新创建的服务的 IP 地址,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往媒体 CDN 页面。
点击 Services(服务)标签。
如需查看服务的 IP 地址,请参阅地址单元格。
如果该单元格为空,请刷新浏览器。
gcloud
使用 gcloud edge-cache services describe
命令:
gcloud edge-cache services describe SERVICE
将 SERVICE 替换为相应服务的名称。
输出会显示分配给您的服务的 IP 地址:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE
...
API
GET https://networkservices.googleapis.com/v1/SERVICE_NAME
将 SERVICE_NAME
替换为
服务。请使用以下格式:
projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
将 SERVICE_ID
替换为相应服务的简称。
检索到的详细信息包括分配给服务的 IP 地址:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
测试是否正在缓存响应
在测试该服务之前,请确保您拥有可缓存的 存储在源站的内容 媒体 CDN 可以对其进行检索。
要测试您的服务是否已正确配置为缓存内容,请使用
curl
命令行工具来发出请求并检查响应。curl
还可在 Google Cloud 控制台的 Cloud Shell 中使用。
如果您想将 EdgeCacheService
与您的域名搭配使用,可以将 EdgeCacheService
的 IP 地址分配给域名记录。对于
说明,请参阅使用 Cloud DNS 设置域名。
设置好网域后,请使用以下curl
访问您的内容
命令:
curl -svo /dev/null "http://DOMAIN_NAME/FILE_NAME"
如果您未将 DNS 配置为指向已预配的 IP 地址,请使用 resolve
选项替换 curl
使用的地址。
curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILE_NAME"
替换以下内容:
DOMAIN_NAME
:您指定的托管域 创建服务时IP_ADDRESS
:服务的 IP 地址, 显示在服务列表的地址列中FILE_NAME
:您上传到存储桶的文件的名称
示例:
curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"
该命令最初生成类似于以下内容的输出,其中
状态为 miss
,因为媒体 CDN 没有所请求的
已从源中检索到的数据:
< HTTP/2 200 OK
...
< x-cache-status: den;miss
...
如果您再次提交相同的请求(次数不限),系统就会生成
输出类似于以下内容的状态为 hit
:
< HTTP/2 200 OK
...
< x-cache-status: den;hit
...
如果未显示状态 hit
,请检查以下各项:
- 响应可缓存。
- 配置的缓存模式允许缓存内容。
- 源站未设置用于阻止缓存的缓存指令。有关 信息,请参阅缓存配置。
现在,您已经测试了基本EdgeCacheService
资源,
内容。生产级服务可能需要 SSL (TLS) 证书、多个来源和 Google Cloud Armor 安全政策。
可选:清理
删除您不想再使用的所有资源。
控制台
在 Google Cloud 控制台中,前往 Media CDN 页面。
点击 Services(服务)标签。
选择您的服务,然后点击删除。
点击Origins标签页。
选择您的源站,然后点击删除。
gcloud
要列出您创建的资源,请使用
gcloud edge-cache origins list
命令 和gcloud edge-cache services list
命令。如需删除该服务,请使用
gcloud edge-cache services delete
命令:gcloud edge-cache services delete SERVICE
将
SERVICE
替换为相应服务的名称。如需删除来源,请使用
gcloud edge-cache origins delete
命令:gcloud edge-cache origins delete ORIGIN
将
ORIGIN
替换为来源的名称。
API
如需列出您创建的资源,请使用
edgeCacheServices.list
方法和edgeCacheOrigins.list
方法。要删除服务,请使用
edgeCacheServices.delete
方法:DELETE https://networkservices.googleapis.com/v1/SERVICE_NAME
将
SERVICE_NAME
替换为服务的全名。请使用以下格式:projects/PROJECT/locations/global/edgeCacheServices/SERVICE_ID
将
SERVICE_ID
替换为相应服务的简称。如需删除来源,请使用
edgeCacheOrigins.delete
方法:DELETE https://networkservices.googleapis.com/v1/ORIGIN
将
ORIGIN
替换为 来源。请使用以下格式:projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
将
ORIGIN_ID
替换为来源的缩写名称。
对您已创建且无意的所有其他资源重复此过程 例如 Cloud Storage 存储桶
后续步骤
- 向
EdgeCacheService
颁发并附加 SSL (TLS) 证书。 - 查看请求日志 Cloud Logging
- 配置已签名请求以保护您的内容。
- 优化缓存键和 TTL,提高缓存命中率。
- 配置高级路由匹配 并创建额外的源站