AWS CLI CloudFront 使所有文件无效
AWS CLI CloudFront Invalidate All Files
我正试图使整个静态网站失效。以下命令似乎没有使 /index.html
无效,并给出了要无效的项目的奇数输出,如下所示。这种 AWS CLI 行为是正常的还是我遗漏了什么?谢谢!
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths /*
输出:
{
"Invalidation": {
"Status": "InProgress",
"InvalidationBatch": {
"Paths": {
"Items": [
"/lib32",
"/home",
"/vmlinuz",
"/core",
"/proc",
"/var",
"/dev",
"/usr",
"/etc",
"/initrd.img",
"/cdrom",
"/lost+found",
"/root",
"/tmp",
"/lib",
"/dead.letter",
"/lib64",
"/boot",
"/sys",
"/run",
"/bin",
"/sbin",
"/mnt",
"/opt",
"/snap",
"/media",
"/copyright",
"/srv"
],
"Quantity": 28
},
那是你 shell 在做 expansion of local filenames。
这就是您真正要求的,因为 *
未被引用。
--paths '*'
或 指定 --paths '/*'
¹ 将按照您的意图进行。引用通配符会将其保留为文字字符串,而不是您所看到的内容。
¹CloudFront 控制台允许您指定 *
或 /*
以使整个分配无效;相比之下,CLI 期望 /*
。反过来,这是因为基础 API 也期望 /*
。当您在控制台中使用 *
时,在控制台向 CloudFront API.
发出请求之前,控制台会自动添加前导斜杠
通过 aws cli 使云端分发失效的示例:
aws cloudfront create-invalidation --distribution-id <DistributionID> --paths "/*"
示例:
aws cloudfront create-invalidation --distribution-id E1B1A4GHK9TTE --paths "/*"
要列出或获取云端分发 ID,您可以使用控制台或通过 cli:
aws cloudfront list-distributions
aws cloudfront list-distributions | grep Id
也许在 windows 上(使用 cmd)你可以使用不带引号的 path,但在 bash 环境中(linux,mac) 字符 *
这是一个特殊的字符。
您需要在引号内传递 path 才能跨平台工作:
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths '/*'
我正试图使整个静态网站失效。以下命令似乎没有使 /index.html
无效,并给出了要无效的项目的奇数输出,如下所示。这种 AWS CLI 行为是正常的还是我遗漏了什么?谢谢!
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths /*
输出:
{
"Invalidation": {
"Status": "InProgress",
"InvalidationBatch": {
"Paths": {
"Items": [
"/lib32",
"/home",
"/vmlinuz",
"/core",
"/proc",
"/var",
"/dev",
"/usr",
"/etc",
"/initrd.img",
"/cdrom",
"/lost+found",
"/root",
"/tmp",
"/lib",
"/dead.letter",
"/lib64",
"/boot",
"/sys",
"/run",
"/bin",
"/sbin",
"/mnt",
"/opt",
"/snap",
"/media",
"/copyright",
"/srv"
],
"Quantity": 28
},
那是你 shell 在做 expansion of local filenames。
这就是您真正要求的,因为 *
未被引用。
指定 --paths '*'
或--paths '/*'
¹ 将按照您的意图进行。引用通配符会将其保留为文字字符串,而不是您所看到的内容。
¹CloudFront 控制台允许您指定 *
或 /*
以使整个分配无效;相比之下,CLI 期望 /*
。反过来,这是因为基础 API 也期望 /*
。当您在控制台中使用 *
时,在控制台向 CloudFront API.
通过 aws cli 使云端分发失效的示例:
aws cloudfront create-invalidation --distribution-id <DistributionID> --paths "/*"
示例:
aws cloudfront create-invalidation --distribution-id E1B1A4GHK9TTE --paths "/*"
要列出或获取云端分发 ID,您可以使用控制台或通过 cli:
aws cloudfront list-distributions
aws cloudfront list-distributions | grep Id
也许在 windows 上(使用 cmd)你可以使用不带引号的 path,但在 bash 环境中(linux,mac) 字符 *
这是一个特殊的字符。
您需要在引号内传递 path 才能跨平台工作:
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths '/*'