如何解决AWS MediaLive Cloudformation Fn::GetAtt 获取数组值
我正在为 Media Live 构建 Cloudformation 模板 我的一切都可以使用 AWS PHP SDK。我创建了一个频道并返回频道数据以供下次调用使用。
返回示例。
(
[Arn] => arn:aws:mediapackage:us-east-1:000000000000:channels/000000000000
[Description] => Tests
[HlsIngest] => Array
(
[IngestEndpoints] => Array
(
[0] => Array
(
[Id] => 000000000000
[Password] => 000000000000
[Url] => https://000000000000.mediapackage.us-east-1.amazonaws.com/in/v2/1e803c424d2947f58c07d9a6a5ff3d31/000000000000/channel
[Username] => 000000000000
)
[1] => Array
(
[Id] => 000000000000
[Password] => 000000000000
[Url] => https://2bcff136c2fbf1e5.mediapackage.us-east-1.amazonaws.com/in/v2/000000000000/10392b8387fd442eae56f29ac2656837/channel
[Username] => 000000000000
)
)
)
[Id] => sdv
[Tags] => Array
(
)
)
然后我可以像这样在 PHP 中使用这些值。
$destinationOneUrl = $createChannel['HlsIngest']['IngestEndpoints'][0]['Url'];
哪个有效,但是对于 Cloudformation,您必须像这样使用 Fn::GetAtt。
"Destinations": [{
"Id": "destination1","Settings": [{
"Url": {
"Fn::GetAtt": ["MediaPackageChannel","HlsIngest"]
},"Username": {
"Fn::GetAtt": ["MediaPackageChannel","PasswordParam": {
"Fn::GetAtt": ["MediaPackageChannel",},{
"Url": {
"Fn::GetAtt": ["MediaPackageChannel",}
]
}],
你不能用这个进入数组,因为还有另一个函数可以与 Fn::GetAtt 结合使用来获取内部值。
类似的东西
"Fn::GetAtt": ["MediaPackageChannel","HlsIngest['IngestEndpoints'][0]['Url']"]
这是我的完整模板,很难解释,但基本上我需要将我的 medialive 频道附加到 mediapackage 频道,因为我提到我已经完成了上面的 PHP 代码 Cloudformation 并没有让这变得容易。
您将看到目标部分的第 39 行,我需要使用媒体包频道创建的返回值填充 URL、用户名、密码参数。
https://gist.github.com/samueleastdev/03b050f937855a81f36bb1e3260aa5d3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。