我正在尝试在 AWS CDK 上构建一个相对简单的堆栈,其中涉及ApplicationLoadBalancedFargateServicefrom aws-ecs-patterns.
我的问题涉及秘密。我在 Secrets Manager 中有一个秘密,其中有多个键/值(我认为从技术上讲,它存储为 JSON 文档,但 AWS 提供了一个键/值接口),我需要将它们单独传递到我的容器。我目前在等效的非 cdk(在控制台中创建)堆栈中通过简单地指定密钥来执行此操作,如下所示:arn:aws:secretsmanager:us-west-2:[acct]:secret/name-??????:KEY::,其中 `KEY 是秘密密钥,并且正确的值作为环境变量插入到容器中。
当我尝试使用 CDK 执行此操作时,当我使用 cdk 合成器时出现错误:
`secretCompleteArn` does not appear to be complete; missing 6-character suffix
Run Code Online (Sandbox Code Playgroud)
如果我删除最后一位 ( :KEY::),它会成功合成,但我的容器实际上并没有得到我想要的东西。
这就是我尝试在我的 cdk(打字稿)代码中使用它的方式:
new ApplicationLoadBalancedFargateService(this, 'Service', {
...
taskImageOptions: {
image: containerImage, // defined elsewhere
...
secrets: {
'DB_DATABASE': ecs.Secret.fromSecretsManager(
Secret.fromSecretCompleteArn(this, 'secret-DB_DATABASE',
'arn:aws:secretsmanager:us-west-2:[acct]:secret:secret/name-??????:KEY::')),
//there's really a few more, pulling keys from the same secret. Omitting for brevity
},
},
});
Run Code Online (Sandbox Code Playgroud)
有办法让这项工作发挥作用吗?或者我需要改变我存储/使用我的秘密的方式吗?