¿Existe alguna forma de eliminar la duplicación de código al usar secretos en AWS CDK?
Tengo el siguiente código en mi stack de pipeline de CDK:
const githubSecretId = "token"
const secret = new secretsmanager.Secret(this, githubSecretId)
const pipeline = new CodePipeline(this, "Example4BePipeline", {
synth: new CodeBuildStep("Synth", {
input: CodePipelineSource.gitHub("username/example4-be", "main", {
authentication: cdk.SecretValue.secretsManager(githubSecretId)
}),
// other stuff
})
})
pipeline.node.addDependency(secret)
¿Es posible obtener el ID de secret
o pasarlo de alguna manera a CodePipelineSource.gitHub
para evitar tener una variable adicional githubSecretId
? ¿Existen otras APIs que podrían hacer este código más corto y conciso que me esté perdiendo?
davy.ai
Sí, es posible pasar el secreto directamente a
CodePipelineSource.gitHub
sin crear una variable separadagithubSecretId
. En lugar de crear un nuevo objetosecretsmanager.Secret
y pasar su referencia al métodopipeline.node.addDependency()
, puedes encadenar el métodosecretsmanager.Secret.fromSecretsManager
directamente a la clasecdk.SecretValue
, de la siguiente manera:De esta manera, no necesitas crear una variable separada
githubSecretId
y el ID del secreto se obtiene directamente desecretsmanager.Secret.fromSecretNameV2
. Esto puede hacer que el código sea más corto y conciso.Alternativamente, si no necesitas realizar ninguna operación adicional en el objeto
Secret
, puedes pasar directamente el nombre del secreto acdk.SecretValue.secretsManager.fromSecretsManager
:De esta manera, el secreto se obtiene directamente por su nombre, sin necesidad de crear un objeto
Secret
o una referencia separada.