是否可以使用AWS PHP SDK向Route53添加子域?
我正在从事一个项目,我们将创建子域以及Route53中的域。我们希望有一种方法可以通过编程实现这一点。SDK for PHP文档似乎有点轻,但CreateShostedZone似乎可以用于创建域或子域记录,ChangeResourceRecordset可以用于创建必要的DNS记录。是否有人提供了如何实际实现这一点的示例?是的,正如您已经指出的,可以使用是否可以使用AWS PHP SDK向Route53添加子域?,php,amazon-web-services,amazon-route53,aws-sdk,Php,Amazon Web Services,Amazon Route53,Aws Sdk,我正在从事一个项目,我们将创建子域以及Route53中的域。我们希望有一种方法可以通过编程实现这一点。SDK for PHP文档似乎有点轻,但CreateShostedZone似乎可以用于创建域或子域记录,ChangeResourceRecordset可以用于创建必要的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',
),
),
),
),
),
),
));
是的,我使用了changeResourceRecordSets
方法
<?php
require 'vendor/autoload.php';
use Aws\Route53\Route53Client;
use Aws\Exception\CredentialsException;
use Aws\Route53\Exception\Route53Exception;
//To build connection
try {
$client = Route53Client::factory(array(
'region' => 'string', //eg . us-east-1
'version' => 'date', // eg. latest or 2013-04-01
'credentials' => [
'key' => 'XXXXXXXXXXXXXXXXXXX', // eg. VSDFAJH6KXE7TXXXXXXXXXX
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXX', //eg. XYZrnl/ejPEKyiME4dff45Pds54dfgr5XXXXXX
]
));
} catch (Exception $e) {
echo $e->getMessage();
}
/* Create sub domain */
try {
$dns = 'yourdomainname.com';
$HostedZoneId = 'XXXXXXXXXXXX'; // eg. A4Z9SD7DRE84I ( like 13 digit )
$name = 'test.yourdomainname.com.'; //eg. subdomain name you want to create
$ip = 'XX.XXXX.XX.XXX'; // aws domain Server ip address
$ttl = 300;
$recordType = 'CNAME';
$ResourceRecordsValue = array('Value' => $ip);
$client->changeResourceRecordSets([
'ChangeBatch' => [
'Changes' => [
[
'Action' => 'CREATE',
"ResourceRecordSet" => [
'Name' => $name,
'Type' => $recordType,
'TTL' => $ttl,
'ResourceRecords' => [
$ResourceRecordsValue
]
]
]
]
],
'HostedZoneId' => $HostedZoneId
]);
}
为了清楚起见,在路由53中,公共托管区域是一个域名。然后在HostedZone->recordset下面是单独的记录(A、CNAME、MX、DNS)etcHello@Neal你知道我们如何从弹性豆茎创建子域吗?