मैं इस कोड को Google क्लाउड फ़ंक्शन में आज़मा रहा हूं, जो क्लाउड स्टोरेज, नोड 10 द्वारा ट्रिगर किया गया है।

मुझे यकीन नहीं है कि संदर्भ कैसे उपलब्ध कराया जाए। Event: ${context.eventId}

मैंने कोशिश की है: module.exports.getDevices (संदर्भ) = getDevices;

मैंने कोशिश की है: module.exports.getDevices = getDevices (संदर्भ);

async function getDevices() {
    console.log(`  Event: ${context.eventId}`);
    const cloudRegion = '....';
    const projectId = '.....';
    const registryId = '.....';
    const iot = require('@google-cloud/iot');
    const iotClient = new iot.v1.DeviceManagerClient({});

    const parentName = iotClient.registryPath(projectId, cloudRegion, registryId);

    try {
      const responses = await iotClient.listDevices({parent: parentName});
  
      const devices = responses[0];     

      if (devices.length > 0) {
    console.log('Current devices in registry:');
      } else {
        console.log('No devices in registry.');
      }

      for (let i = 0; i < devices.length; i++) {
        const device = devices[i];
        console.log(`Device ${i}: `, device);
    }
        } catch (err) {
          console.error('Could not list devices', err);
        }

}

module.exports.getDevices = getDevices;

साथ ही, यह काम करता है, लेकिन मैं चाहता हूं और पिछले एक की तरह एसिंक फ़ंक्शन:

exports.helloGCS = (file, context) => {
  console.log(`  Event: ${context.eventId}`);
};
0
1x2x3x4x 14 सितंबर 2020, 16:38

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप एक एसिंक फ़ंक्शन चाहते हैं, तो इसे इस तरह घोषित करें:

exports.helloGCS = async (file, context) => {
  console.log(`  Event: ${context.eventId}`);
};

यदि आप इसे नामित फ़ंक्शन को कॉल करना चाहते हैं:

async function getDevices(file, context) {
  console.log(`  Event: ${context.eventId}`);
}

exports.helloGCS = getDevices;
2
Doug Stevenson 14 सितंबर 2020, 18:51