Terraform子模块输出?

时间:2018-11-05 20:45:41

标签: terraform

由于进行了子子调制(?),我在Terraform输出正确时遇到了一些问题, 我认为我可以复制并粘贴计划中的模块输出 为了使我的const {google} = require('googleapis'); const API_VERSION = 'v1'; const DISCOVERY_API = 'https://cloudiot.googleapis.com/$discovery/rest'; exports.sendCommand = (req, res) => { let reqData = req.body; const projectId = reqData.projectId || process.env.GCLOUD_PROJECT; const cloudRegion = reqData.cloudRegion || process.env.GCLOUD_REGION; const parentName = `projects/${projectId}/locations/${cloudRegion}`; const registryName = `${parentName}/registries/${reqData.registryId}`; const binaryData = Buffer.from(JSON.stringify(reqData.message)).toString('base64'); const request = { name: `${registryName}/devices/${reqData.deviceId}`, binaryData: binaryData }; google.auth.getClient().then((authClient) => { const discoveryUrl = `${DISCOVERY_API}?version=${API_VERSION}`; if (authClient.createScopedRequired && authClient.createScopedRequired()) { // Scopes can be specified either as an array or as a single, // space-delimited string. authClient = authClient.createScoped([ 'https://www.googleapis.com/auth/cloud-platform' ]); } google.options({ auth: authClient }); google.discoverAPI(discoveryUrl).then((client, err) => { if (err) { console.log('Error during API discovery', err); return undefined; } client.projects.locations.registries.devices.sendCommandToDevice(request, (err, data) => { if (err) { console.log('Could not send command:', request); console.log('Message: ', err); } else { console.log('Success :', data.statusText); } }); }); }); res.status(200).send(reqData.message); }; 工作。在下面,我正在寻找我的地址ID 数据库实例。

outputs.tf

我认为我应该可以这样写输出

Terraform will perform the following actions:

  + module.db.module.db_instance.aws_db_instance.this
      id:                                  <computed>
      address:                             <computed>
      allocated_storage:                   "5"

不太确定在这里要去哪里?很高兴与其他任何信息一起更新,以解除对我的封锁。

2 个答案:

答案 0 :(得分:0)

我将看一下下面的链接,它似乎与您的问题非常相似。本文还链接到类似的问题。不幸的是,他们俩仍然开放。

release notes

答案 1 :(得分:0)

如果有人发现了这一点,使用一个具有输出引用子模块资源输出的子模块,您可以像这样输出它们(至少使用 0.14)。对于名为 bastion 的子模块:

output "child_bastion_public_dns" {
  value = module.bastion.bastion_public_dns
}

output "child_bastion_public_ip" {
  value = module.bastion.bastion_public_ip
}

然后,您可以使用这种形式在名为 root_mod 的根模块中正常引用这些,假设您定义了一个根模块来调用其输出在上面的子模块:

output "root_mod_bastion_public_dns" {
  value = module.root_mod.bastion_public_dns
}

output "bastion_public_ip" {
  value = module.root_mod.bastion_public_ip
}