我想用最新的lambda@edge函数使用CLI更新cloudfront发行版。
我看到了以下文档https://docs.aws.amazon.com/cli/latest/reference/cloudfront/update-distribution.html
这是脚本,就是这样做的。它是基于@CloudBud应答实现的。没有参数检查。它的执行方式如下:./script QF234ASD342FG my-lambda-at-edge-function us-east-1
。在我的例子中,执行时间不到10秒。有关详细信息,请参阅更新-分发。
#!/bin/bash
set -xeuo pipefail
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
distribution_id="$1"
function_name="$2"
region="$3"
readonly lambda_arn=$(
aws lambda list-versions-by-function \
--function-name "$function_name" \
--region "$region" \
--query "max_by(Versions, &to_number(to_number(Version) || '0'))" \
| jq -r '.FunctionArn'
)
readonly tmp1=$(mktemp)
readonly tmp2=$(mktemp)
aws cloudfront get-distribution-config \
--id "$distribution_id" \
> "$tmp1"
readonly etag=$(jq -r '.ETag' < "$tmp1")
cat "$tmp1" \
| jq '(.DistributionConfig.CacheBehaviors.Items[] | select(.PathPattern=="dist/sxf/*") | .LambdaFunctionAssociations.Items[] | select(.EventType=="origin-request") | .LambdaFunctionARN ) |= "'"$lambda_arn"'"' \
| jq '.DistributionConfig' \
> "$tmp2"
# the dist config has to be in the file
# and be referred in specific way.
aws cloudfront update-distribution \
--id "$distribution_id" \
--distribution-config "file://$tmp2" \
--if-match "$etag"
rm -f "$tmp1" "$tmp2"
我有一个XPage应用程序,在其中一个托管bean中使用JavaMail。目前,我已经将jar文件添加到了管理bean的构建路径中。这个效果不错。但现在我想使用一个较新版本的JavaMail,因为Domino服务器使用的是1.3版本,而我需要的是1.4.x版本。 我已经从Oracle下载了新的JavaMail JAR文件。在Domino Designer(第9版)中,我将这个jar文件添加到新的设
我尝试在Intellijidea中打开Maven项目。这个项目使用了spark和Scala。当我跑的时候: 则会给出错误: [错误]无法执行目标org.scalastyle:scalastyle-maven-plugin:0.7.0:项目spark-mllib_2.10:scalastyle执行期间失败:您有50个scalastyle冲突 我认为问题出在Maven的版本上。实际上,在Intelli
我已经从cPanel更改了PHP版本7.2,但是它已成功更改。但是当转到 Putty(命令行界面)并键入时 它显示php版本是7.2,但Php-cli版本是5.6 PHP 5.6.40 (cli)(构建时间:2019年4月8日15:39:30)版权所有(c) 1997-2016 PHP 组 Zend Engine v2.6.0, 版权所有 (c) 1998-2016 Zend 技术
我正在尝试使用CloudFormation创建Lambda函数的新版本。 我想拥有同一个Lambda函数的多个版本,这样我就可以(a)在不同的版本中指向别名——比如DEV和PROD——并且(b)能够回滚到更早的版本 这是我的Lambda版本的定义: 运行“aws cloudformation创建堆栈”时会创建一个版本,但后续的“aws cloudformation更新堆栈”命令不会执行任何操作。没
我正在使用最新的iOS SDK for AWS,并且使用TransferManager类从S3获取文件可以很好地工作 然后我想添加Cloudfront以更好地提供边缘服务,但将Cloudfront发行版设置为S3 bucket不起作用。 在这个问题上,这是一个公认的答案 谢谢你
我试图为cloudfront重定向根默认对象创建一个lambda@edge。我遵循了以下指示:https://aws.amazon.com/blogs/compute/implementing-default-directory-indexes-in-amazon-s3-backed-amazon-cloudfront-origins-using-lambdaedge/ 但是CloudFront没