Intereting Posts
Полезный класс базы данных PHP Magento – добавить пользовательское массовое действие PDF PHP: самый быстрый способ проверить недопустимые символы (все, кроме az, AZ, 0-9, #, -,., $)? Получить поврежденный файл xls при загрузке с помощью PHPExcel Как я могу получить список подписчиков из одной учетной записи instagram? Получить переменное имя объекта внутри объекта php Как реализовать Enum как функциональность в PHP? CodeIgniter Неопределенное свойство при загрузке модели Как загрузить загруженные файлы после отправки формы через uploadify? Форма загрузки HTML будет загружать только файлы, найденные в каталоге файла PHP CodeIgniter mod_rewrite дает ошибку 404 Перенаправление на исходную страницу после входа в систему (Codeigniter) Как я могу использовать PHP для перенаправления пользователей IE на определенную страницу? Как подключиться к базе данных SQL Server в CodeIgniter? Как управлять поиском писем и ошибками в PHP?

Можно ли добавить субдомен к Route53 с помощью SDK для PHP AWS?

Я работаю над проектом, в котором мы будем создавать как субдомены, так и домены в Route53. Мы надеемся, что есть способ сделать это программно. Документация SDK для PHP кажется немного легкой, но, похоже, что createHostedZone можно использовать для создания записи домена или поддомена, а changeResourceRecordSets можно использовать для создания необходимых DNS-записей. Есть ли у кого-нибудь примеры того, как это сделать?

Да, это возможно с changeResourceRecordSets вызова changeResourceRecordSets , как вы уже указали. Но это немного неуклюже, так как вы должны структурировать его, как пакет, даже если вы меняете / создаете только одну запись, и даже творения являются изменениями. Вот полный пример без метода учетных данных:

 <?php // Include the SDK using the Composer autoloader require 'vendor/autoload.php'; use Aws\Route53\Route53Client; use Aws\Common\Credentials\Credentials; $client = Route53Client::factory(array( 'credentials' => $credentials )); $result = $client->changeResourceRecordSets(array( // HostedZoneId is required 'HostedZoneId' => 'Z2ABCD1234EFGH', // ChangeBatch is required 'ChangeBatch' => array( 'Comment' => 'string', // Changes is required 'Changes' => array( array( // Action is required 'Action' => 'CREATE', // ResourceRecordSet is required 'ResourceRecordSet' => array( // Name is required 'Name' => 'myserver.mydomain.com.', // Type is required 'Type' => 'A', 'TTL' => 600, 'ResourceRecords' => array( array( // Value is required 'Value' => '12.34.56.78', ), ), ), ), ), ), )); 

Документацию по этому методу можно найти здесь . Вы хотите очень внимательно относиться к необходимым полям, а также к возможным значениям для других. Например, поле name должно быть FQDN, заканчивающимся точкой (.).

Также стоит отметить: вы не получаете ответа от API после этого вызова по умолчанию, т. Е. Нет идентификатора подтверждения или транзакции. (Хотя это определенно дает ошибки, если что-то не так.) Таким образом, это означает, что если вы хотите, чтобы ваш код был пуленепробиваемым, вы должны написать обработчик ответа Guzzle. И вы можете подождать несколько секунд, а затем запустить проверку того, что новый / измененная запись действительно существует.

Надеюсь это поможет!