如何获取AWS CloudFront创建失效请求生成的ID?
获取CloudFront失效请求ID并监听完成的方法
你可以通过以下两种方式获取失效请求的ID,再将其传入监听命令:
方法1:使用AWS CLI内置的--query参数提取ID
直接在创建失效请求的命令中添加参数,将生成的ID赋值给变量:
# 创建失效请求并提取ID INVALIDATION_ID=$(aws cloudfront create-invalidation --distribution-id XXXXXX --paths '/*' --query 'Invalidation.Id' --output text) # 使用ID监听失效完成 aws cloudfront wait invalidation-completed --id $INVALIDATION_ID --distribution-id XXXXXX && callback()
--query 'Invalidation.Id'指定只提取JSON输出中Invalidation对象下的Id字段,--output text让结果以纯文本格式返回,避免多余的JSON结构干扰变量赋值。
方法2:用jq解析JSON输出(需提前安装jq)
如果你的环境中安装了jq工具,可解析默认的JSON输出来提取ID:
# 创建失效请求并通过jq提取ID INVALIDATION_ID=$(aws cloudfront create-invalidation --distribution-id XXXXXX --paths '/*' | jq -r '.Invalidation.Id') # 执行监听命令 aws cloudfront wait invalidation-completed --id $INVALIDATION_ID --distribution-id XXXXXX && callback()
jq -r参数表示返回不带引号的原始字符串,确保ID能直接被变量引用。
内容的提问来源于stack exchange,提问作者Saksham
相关产品推荐
相关产品推荐

