Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

452
Visualizações
AWS CDK: ¿cómo hago referencia a recursos de pila cruzada en la misma aplicación?

Tengo una aplicación que tiene dos pilas, ambas dentro de la misma región/cuenta. Una de esas pilas requiere el ARN de una lambda que existe en la otra pila. ¿Cómo hago referencia a esto?

 // within stackA constructor public StackA(Construct scope, String id, StackProps props) { SingletonFunction myLambda = SingletonFunction.Builder.create(this, "myLambda") // some code here .build() CfnOutput myLambdaArn = CfnOutput.Builder.create(this, "myLambdaArn") .exportName("myLambdaArn") .description("ARN of the lambda that I want to use in StackB") .value(myLambda.getFunctionArn()) .build(); } App app = new App(); Stack stackA = new StackA(app, "stackA", someAProps); Stack stackB = new StackB(app, "stackB", someBProps); stackB.dependsOn(stackA);

¿Cómo pasar el ARN a StackB?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puede acceder a recursos en una pila diferente, siempre que estén en la misma cuenta y región de AWS. El siguiente ejemplo define la pila stack1, que define un depósito de Amazon S3. Luego define una segunda pila, stack2, que toma el depósito de stack1 como una propiedad del constructor.

 // Helper method to build an environment static Environment makeEnv(String account, String region) { return Environment.builder().account(account).region(region) .build(); } App app = new App(); Environment prod = makeEnv("123456789012", "us-east-1"); StackThatProvidesABucket stack1 = new StackThatProvidesABucket(app, "Stack1", StackProps.builder().env(prod).build()); // stack2 will take an argument "bucket" StackThatExpectsABucket stack2 = new StackThatExpectsABucket(app, "Stack,", StackProps.builder().env(prod).build(), stack1.getBucket());
over 4 years ago · Santiago Trujillo Relatório

0

La documentación oficial de CDK tiene un ejemplo completo para compartir un depósito S3 entre pilas . Lo copié a continuación para una referencia más rápida.

 /** * Stack that defines the bucket */ class Producer extends cdk.Stack { public readonly myBucket: s3.Bucket; constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); const bucket = new s3.Bucket(this, 'MyBucket', { removalPolicy: cdk.RemovalPolicy.DESTROY, }); this.myBucket = bucket; } } interface ConsumerProps extends cdk.StackProps { userBucket: s3.IBucket; } /** * Stack that consumes the bucket */ class Consumer extends cdk.Stack { constructor(scope: cdk.App, id: string, props: ConsumerProps) { super(scope, id, props); const user = new iam.User(this, 'MyUser'); props.userBucket.grantReadWrite(user); } } const producer = new Producer(app, 'ProducerStack'); new Consumer(app, 'ConsumerStack', { userBucket: producer.myBucket });
over 4 years ago · Santiago Trujillo Relatório

0

Opción 1:

pase los datos de la pila A a la pila B usando el constructor:

Puede extender cdk.stack y crear una nueva clase que contenga stackA.

En esa pila, exponga los datos relevantes que desee utilizando public XXX: string\number (etc) (consulte la línea 2 en el ejemplo).

Más tarde, simplemente pase estos datos al constructor StackB (también puede pasarlos usando accesorios).

Fragmento de código de trabajo:

Pila A:

 export class StackA extends cdk.Stack { public YourKey: KEY_TYPE; constructor(scope: cdk.Construct, id: string, props: cdk.StackProps ) { super(scope, id, props); Code goes here... // Output the key new cdk.CfnOutput(this, 'KEY', { value: this.YourKey }); } }

Pila B:

 export class StackB extends cdk.Stack { constructor(scope: cdk.Construct, id: string,importedKey: KEY_TYPE, props: cdk.props) { super(scope, id, props) Code goes here... console.log(importedKey) } }

bin ts:

 const importedKey = new StackA(app, 'id',props).YourKey; new StackB(app, 'id',importedKey,props);

Opcion 2:

A veces es mejor guardar este tipo de cosas en el almacén de parámetros y leerlas desde allí.

Más información aquí .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda