概括
我正在尝试使用 CDK 在 AWS 上部署 Redis ElastiCache 集群。
出于安全原因,我希望集群位于 VPC 内。
我的代码(见上文)定义了一个 VPC、一个安全组、一个缓存子网组(链接到 vpc 私有子网)和缓存集群(链接到缓存子网组和安全组)。
使用cdk deploy,部署顺利,直到我收到此错误:
ACL_redis (ACLredis) Subnet group [default] belongs to a different VPC [vpc-326ce55b] than [vpc-0c45b593f3a5fdc4d] (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 901398f4-c355-418d-921b-65e6c52dfe3a)
Run Code Online (Sandbox Code Playgroud)
我试过的
禁用回滚时,似乎缓存集群是在该区域的默认 VPC 中创建的,而不是在我的堆栈中定义的 VPC。我不明白 Cloud Formation 为什么要这样做,因为安全组和缓存子网组都链接到堆栈的 VPC。
根本没有对区域默认 VPC 的引用。
一些代码
这是CDK代码
from aws_cdk import (
core,
aws_stepfunctions,
aws_lambda,
aws_stepfunctions_tasks,
aws_sqs,
aws_elasticache,
aws_ec2,
)
PROJECT_CODE = 'ACL'
class AclAwsCdkLearningStack(core.Stack):
def __init__(self, scope: core.Construct, id: …Run Code Online (Sandbox Code Playgroud) python amazon-web-services amazon-elasticache amazon-vpc aws-cdk