¿Cómo paso valores a AWS CDK en el momento de la deploy (no en el momento del synth )?
Puedo ver que puedo recuperar valores de contexto dentro de una aplicación:
(String)app.getNode().tryGetContext("keyOfMyValue"); El ejemplo anterior es de la API de Java y devuelve una cadena en la que se pasó el par de valores clave usando -c keyOfMyValue=someValue . Este valor luego se pasa a cdk synth .
Si bien la ayuda de CLI para cdk deploy muestra un parámetro de Context idéntico, no veo cómo acceder a eso dentro de una pila. Específicamente, no quiero tener todos los valores definidos en el momento de la síntesis, quiero pasar algunos valores simples (por ejemplo, cadenas) a CDK en el momento de la implementación.
¿Hay un ejemplo de cómo hacer esto?
Este fragmento estará en .NET, pero supongo que puedes hacer algo similar en Java. Suponiendo que su pila se llame astack ...
Puede recopilar el valor de contexto con
cdk deploy astack -c environment=prod var app = new App(); var environment = app.Node.TryGetContext("environment")?.ToString() ?? "dev";hacer una clase y una interfaz...
public interface IAStackProps : IStackProps { public string Environment { get; set; } } public class AStackProps : StackProps, IAStackProps { public string Environment { get; set; } }pasarlo con...
new AStack(app, stackName, new AStackProps { Environment = environment, ... });entonces puedes acceder a él en tu pila.
public AStack(Construct scope, string id, IAStackProps props = null) : base(scope, id, props) { // props.EnvironmentStack es un elemento secundario de Construct (como aplicación), así que, de la misma manera, supongo:
this.getNode().tryGetContext()La transferencia de parámetros de tiempo de implementación se realiza con la combinación de a) la creación de parámetros de plantilla de CloudFormation mediante la clase CfnParameter y, luego, b) la transferencia de sus valores con el argumento " --parameters " del comando cdk deploy . Detalles en https://docs.aws.amazon.com/cdk/latest/guide/parameters.html .
No vale la pena que los parámetros " --context ", los parámetros de tiempo de sintetizador, aún se puedan pasar con cdk deploy , porque "cdk deployment" ejecuta "cdk synth" implícitamente.