由于进行了子子调制(?),我在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"
不太确定在这里要去哪里?很高兴与其他任何信息一起更新,以解除对我的封锁。
答案 0 :(得分:0)
我将看一下下面的链接,它似乎与您的问题非常相似。本文还链接到类似的问题。不幸的是,他们俩仍然开放。
答案 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
}