/** * @param string $argName * @param array $cliArgs * @param array $cliDefinitions * @return string */ function getCliArg($argName, $cliArgs, $cliDefinitions) { $argValue = getCliArgValue($cliArgs, "--{$argName}"); if ($cliDefinitions[$argName]['required'] && empty($argValue)) { echo getUsage($cliDefinitions); shutDown($cliDefinitions[$argName]['errorMessage']); } return $argValue; }
<?php date_default_timezone_set('UTC'); require 'vendor/autoload.php'; require __DIR__ . '/common.php'; $executionStartTime = microtime(true); $executionUuid = getExecutionUuid(); $executionMetrics = ["executionUuid" => $executionUuid, "startTimestamp" => $executionStartTime, "startDateTime" => date('r', $executionStartTime), "amiBuildQueueUrl" => "", "jobMessage" => null, "jobBuildTemplate" => "", "jobBuildTemplateSha" => "", "createdAmiId" => "", "createdAmiRegion" => "", "endedInError" => false, "endTimestamp" => "", "endDateTime" => "", "processingDuration" => ""]; $logger = getAppLogger($executionUuid); $cliConfigArg = getCliArgValue($argv, '--config'); $configPath = $cliConfigArg ?: __DIR__ . "/config/config.yml"; $config = getConfig($configPath, $logger); $aws = createAwsClient($argv, $config); /** @var \Aws\S3\S3Client $s3Client */ $s3Client = $aws->get('S3'); $s3Client->registerStreamWrapper(); $appConfig = $config->get('appConfig'); // switch to log level in app config $logger->setLogLevelThreshold($appConfig['logLevel']); $sqsConfig = $config->get('sqsConfig'); /** @var \Aws\Sqs\SqsClient $sqsClient */ $sqsClient = $aws->get('sqs'); $queueUrl = $sqsConfig['amiBuildRequestQueueUrl']; $executionMetrics['amiBuildQueueUrl'] = $queueUrl; try { $work = $sqsClient->receiveMessage(["QueueUrl" => $queueUrl, "MaxNumberOfMessages" => 1, "MessageAttributeNames" => []]); } catch (Aws\Sqs\Exception\SqsException $e) { $logger->error($e); shutDown('Error access SQS: ' . $e->getMessage()); } catch (\Exception $e) { $logger->error($e);