问题描述
我尝试从适用于ECS Fargate容器的AWS System Manager中获取一些参数,但遇到一些问题。我的代码是:
secret_value = ssm.StringParameter.from_secure_string_parameter_attributes(
self,"/spark/ssh_pub",parameter_name="/spark/ssh_pub",version=1
)
container_sp = fargate_task_deFinition_sp.add_container(
"pod-spark-master",image=ecs.ContainerImage.from_registry(
"xxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com/spark-master:ready-for-test-deployment"),health_check=health_check_sp,logging=log_config_sp,secrets={
"SPARK_PUB": ecs.Secret.from_ssm_parameter(secret_value)
}
)
然后我得到这个错误:
jsii.errors.JSIIError: There is already a Construct with name '--spark--ssh_pub' in Stack [sandBox]
有人有想法吗?
解决方法
可能性很小。
-
CDK错误
CDK有太多问题。报告了类似的错误https://github.com/aws/aws-cdk/issues/8603。因此,它可能是CDK的错误。在这种情况下,我们所能做的就是在Github中提出一个问题,并希望它们能够解决,如果报告并打开1000多个问题,可能很快就不会发生。 -
实际上有一些CDK构造(AWS资源)已被赋予相同的名称。搜索您的堆栈“沙盒”,并确保不会创建重复的名称。如果可以多次创建同一构造,并且名称可以相同。
image=ecs.ContainerImage.from_registry(
"xxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com...
还请确保这确实是您所需要的。
$folder="some_folder"
$main_entry = "main.rb"
$reqiured_file=
[
"file_1.rb","file_2.rb",...
]
显然,docker映像在您的ECR中。然后from_ecr_repository应该是要使用的那个。 AWS文档令人困惑,有时不正确。 from_registry不是要从ECR中提取图像,而是从DockerHub等中提取图像。