无法使用 boto3 连接到 AWS Cloudfront
Can't connect to AWS Cloudfront using boto3
我有一个 Lambda 函数试图使 Cloudfront 分配的缓存无效,但它超时了。同样的函数成功连接到 SecretsManager。
# python code
session = boto3.session.Session()
# ....
cf_client = session.client(service_name='cloudfront', config=config)
# ......
cf_client.create_invalidation(
DistributionId=distro,
InvalidationBatch={
'Paths': {
'Quantity': 1,
'Items': [f'/api/dict/{dict_name}/article/{art_id}']
},
'CallerReference': str(time.time())
}
)
我正在使用此政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "cloudfront:*",
"Resource": "*",
"Effect": "Allow"
}
]
}
我知道 S3 和 SecretsManager 需要在 VPC 中设置某些端点,Cloudfront 是否有类似的东西?
is there something similar for Cloudfront?
不,没有。 CloudFront does not have VPC 接口端点。您必须设置 NAT 才能与私有子网中的 CF 交互。或者,您可以通过具有 VPC 接口端点的 lambda 函数间接执行此操作。
我有一个 Lambda 函数试图使 Cloudfront 分配的缓存无效,但它超时了。同样的函数成功连接到 SecretsManager。
# python code
session = boto3.session.Session()
# ....
cf_client = session.client(service_name='cloudfront', config=config)
# ......
cf_client.create_invalidation(
DistributionId=distro,
InvalidationBatch={
'Paths': {
'Quantity': 1,
'Items': [f'/api/dict/{dict_name}/article/{art_id}']
},
'CallerReference': str(time.time())
}
)
我正在使用此政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "cloudfront:*",
"Resource": "*",
"Effect": "Allow"
}
]
}
我知道 S3 和 SecretsManager 需要在 VPC 中设置某些端点,Cloudfront 是否有类似的东西?
is there something similar for Cloudfront?
不,没有。 CloudFront does not have VPC 接口端点。您必须设置 NAT 才能与私有子网中的 CF 交互。或者,您可以通过具有 VPC 接口端点的 lambda 函数间接执行此操作。