У нас есть приложение PHP, где для шифрования соединения с базой данных нам нужно предоставить 3 файла, которые не должны быть общедоступными, но должны присутствовать на сервере для установления соединения с БД (https://www.cleardb.com/developers/ssl_connections)
Очевидно, что мы не хотим хранить их в SCM с кодом приложения, поэтому единственная идея, которая приходит мне в голову, — использовать ловушку действия после развертывания и извлекать эти файлы из учетной записи хранения (с ключами и URI, указанными в параметрах приложения). ).
Есть ли лучший способ добиться этого? 🙂
Спасибо,
Вы можете попробовать использовать Пользовательский сценарий развертывания выполнить дополнительные сценарии или команду во время задачи развертывания. Таким образом, вы можете создать скрипт php, чья функциональность заключается в загрузке файлов сертификатов из хранилища BLOB-объектов в расположение файловой системы сервера. И затем в вашем приложении PHP соединение с БД может использовать эти файлы.
Ниже приведены общие шаги:
composer
расширение на вашем портале:azure-cli
модуль через npm
, Ссылаться на https://docs.microsoft.com/en-us/azure/xplat-cli-install для получения дополнительной информации.azure site deplotmentscript --php
composer require microsoft/windowsazure
убедитесь, что у вас есть composer.json
с зависимостью sdk хранилища.Создайте скрипт php в корневой директории для загрузки файлов из хранилища BLOB-объектов (например, named). run.php
):
require_once 'vendor/autoload.php';
use WindowsAzure\Common\ServicesBuilder;
use MicrosoftAzure\Storage\Common\ServiceException;
$connectionString = "<connection_string>";
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
$container = 'certificate';
$blobs = ['client-key.pem','client-cert.pem','cleardb-ca.pem'];
foreach($blobs as $k => $b){
$blobresult = $blobRestProxy->getBlob($container, $b);
$source = stream_get_contents($blobresult->getContentStream());
$result = file_put_contents($b, $source);
}
deploy.cmd
сценарий, добавить сантаче php run.php
под ступенькой KuduSync
,Любое дальнейшее беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.
Других решений пока нет …