async function getMediaConvertEndpoint()

in source/lambda/extractaudio/extractaudio.js [340:418]


async function getMediaConvertEndpoint() {
  console.log("INFO start getMediaConvertEndpoint");

  var getParams = {
    TableName: process.env.DYNAMO_CONFIG_TABLE,
    Key: {
      configId: { S: "mediaConvertEndpoint" },
    },
  };

  console.log("[INFO] calling getItem with parameters: %j", getParams);
  var getItemResponse = await dynamoDB.getItem(getParams).promise();
  console.log("[INFO] getItem response from Dynamo: %j", getItemResponse);
  if (getItemResponse.Item) {
    console.log(
      "[INFO] get mediaConvert endpoint from DDB: ",
      getItemResponse.Item.endpointValue.S
    );
    return getItemResponse.Item.endpointValue.S;
  } else {
    var mediaConvertParams = {
      MaxResults: 0,
    };
    // Create a promise on a MediaConvert object
    var endpointPromise;
    if (
      process.env.REGION === "cn-northwest-1" ||
      process.env.REGION === "cn-north-1"
    ) {
      endpointPromise = new AWS.MediaConvert({
        apiVersion: "2017-08-29",
        endpoint:
          "https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn",
        region: "cn-northwest-1",
      })
        .describeEndpoints(mediaConvertParams)
        .promise();
    } else {
      endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
        .describeEndpoints(mediaConvertParams)
        .promise();
    }
    var mediaConvertEndpoint;
    console.log("INFO generate endpointPromise");
    await endpointPromise.then(
      function (data) {
        console.log("INFO endpointPromise success");
        console.log("Your MediaConvert endpoint is ", data.Endpoints);
        mediaConvertEndpoint = data.Endpoints[0].Url;
      },
      function (err) {
        console.log("Error", err);
      }
    );
    console.log("INFO getMediaConvertEndpoint end %s", mediaConvertEndpoint);

    var updateParams = {
      TableName: process.env.DYNAMO_CONFIG_TABLE,
      Key: {
        configId: { S: "mediaConvertEndpoint" },
      },
      UpdateExpression: "SET #endpointValue = :endpointValue",
      ExpressionAttributeNames: {
        "#endpointValue": "endpointValue",
      },
      ExpressionAttributeValues: {
        ":endpointValue": {
          S: mediaConvertEndpoint,
        },
      },
      ReturnValues: "NONE",
    };

    await dynamoDB.updateItem(updateParams).promise();

    console.log("[INFO] successfully updated DynamoDB status");
    return mediaConvertEndpoint;
  }
}