1

你好。

我目前在使用 AWS Route-53 API 时遇到问题。要创建记录,您需要调用一个函数,该函数本身需要一个输入数组。

我想在这里创建一个记录集,为此我有一些 POST 值。其中之一,$_POST['record_value'],是一个文本区域并且有多行。我遍历它们。这是为一条记录启用多个值。ResourceRecords当您将其硬编码为;中的一个值时,代码如下所示

$result = $this->route53->changeResourceRecordSets([
            'ChangeBatch' => [
                'Changes' => [
                    [
                        'Action' => 'CREATE',
                        'ResourceRecordSet' => [
                            'Name' => $recordName,
                            'ResourceRecords' => [
                               [
                                   'Value' => $recordValue
                               ],
                            ],
                            'TTL' => $recordTtl,
                            'Type' => $recordType,
                        ],
                    ],
                ],
                'Comment' => 'Routing Record Set',
            ],
            'HostedZoneId' => $this->zone,
        ]);

豪尔。我想ResourceRecords动态制作。对于 textarea 中的每一行,我需要一组新的以下代码部分;

  [
     'Value' => $recordValue
  ],

我的想法如下;

 $newData = [];
        foreach(explode("\r\n", $recordValue) as $valLine) {
            $newData[] = ["Value" => $valLine];
        }

        $result = $this->route53->changeResourceRecordSets([
            'ChangeBatch' => [
                'Changes' => [
                    [
                        'Action' => 'CREATE',
                        'ResourceRecordSet' => [
                            'Name' => $recordName,
                            'ResourceRecords' => [
                               $newData
                            ],
                            'TTL' => $recordTtl,
                            'Type' => $recordType,
                        ],
                    ],
                ],
                'Comment' => 'Routing Record Set',
            ],
            'HostedZoneId' => $this->zone,
        ]);

但是,这似乎返回了一个异常:Found 1 error while validating the input provided for the ChangeResourceRecordSets operation:↵[ChangeBatch][Changes][0][ResourceRecordSet][ResourceRecords][0] must be an associative array. Found array(1).

我是在构建阵列错误还是一起做错了?

4

1 回答 1

2

$newData已经是一个数组,你不需要将它包装在另一个数组中。

'ResourceRecords' => $newData,
于 2018-05-25T22:15:56.747 回答