Пример #1
0
/**
 * @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;
}
Пример #2
0
<?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);