e-e*_*e-e 1 amazon-web-services amazon-ecs amazon-vpc aws-cdk
我有一个 CDK 项目,它创建一个在 ECS 上部署应用程序的 CodePipeline。我之前一切都正常,但 VPC 使用 NAT 网关,这最终导致成本太高。所以现在我尝试在不需要 NAT 网关的情况下重新创建该项目。我快要完成了,但现在当 ECS 服务尝试启动任务时遇到了问题。所有任务都无法启动,并出现以下错误:
ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secret from asm: service call has been retried 5 time(s): failed to fetch secret
Run Code Online (Sandbox Code Playgroud)
此时,我已经忘记了我尝试过的不同事情,但我将在这里发布相关内容以及我的一些尝试。
ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve secret from asm: service call has been retried 5 time(s): failed to fetch secret
Run Code Online (Sandbox Code Playgroud)
我在某处读到,它可能与 Fargate 版本 1.4.0 与 1.3.0 有关,但我不确定需要更改什么才能允许任务访问它们需要运行的内容。
您需要为 Secrets Manager、ECR(两种类型的端点)、CloudWatch 创建接口端点以及 S3 的网关端点。
请参阅有关该主题的文档。
这是 Python 中的一个示例,它在 TS 中的工作方式相同:
vpc.add_interface_endpoint(
"secretsmanager_endpoint",
service=ec2.InterfaceVpcEndpointAwsService.SECRETS_MANAGER,
)
vpc.add_interface_endpoint(
"ecr_docker_endpoint",
service=ec2.InterfaceVpcEndpointAwsService.ECR_DOCKER,
)
vpc.add_interface_endpoint(
"ecr_endpoint",
service=ec2.InterfaceVpcEndpointAwsService.ECR,
)
vpc.add_interface_endpoint(
"cloudwatch_logs_endpoint",
service=ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH_LOGS,
)
vpc.add_gateway_endpoint(
"s3_endpoint",
service=ec2.GatewayVpcEndpointAwsService.S3
)
Run Code Online (Sandbox Code Playgroud)
请记住,接口端点也需要花钱,并且可能不会比 NAT 便宜。
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |