如何将cloudformation模板yaml反序列化到C#字符串字典中?
我需要我的csharp应用程序读取一个cloudformation模板yaml文件(带有!Sub和其他函数),以便按原样将资源复制到另一个具有不同资源名称的cloudformation模板yaml中。YamlDotNet在点击时无法反序列化!子功能和其他功能。我是否应该使用另一个反序列化程序?我可以将软类型反序列化为字典中的字典(如Dictionary)吗?然后我就可以把整个小节读成一个字符串来复制,而不必解析它 示例cf.yaml:如何将cloudformation模板yaml反序列化到C#字符串字典中?,c#,amazon-cloudformation,yamldotnet,C#,Amazon Cloudformation,Yamldotnet,我需要我的csharp应用程序读取一个cloudformation模板yaml文件(带有!Sub和其他函数),以便按原样将资源复制到另一个具有不同资源名称的cloudformation模板yaml中。YamlDotNet在点击时无法反序列化!子功能和其他功能。我是否应该使用另一个反序列化程序?我可以将软类型反序列化为字典中的字典(如Dictionary)吗?然后我就可以把整个小节读成一个字符串来复制,而不必解析它 示例cf.yaml: Description: my cloudformation
Description: my cloudformation example
Parameters:
MyParameter:
Description: What do you want?
Type: String
Default: 'hello'
Environment:
Description: Where do you want?
Type: String
Default: 'world'
Conditions:
# Enable Permission Boundary
IsBoundaryEnabled: !Equals [!Ref MyParameter, 'hello']
Resources:
MyPolicies:
Type: AWS::IAM::Policy
Properties:
PolicyName: My-Policies
PolicyDocument:
Statement:
-
Effect: Allow
Action:
- ssm:GetParameter
Resource:
- !Sub 'arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/${Environment}.connectionString'
Roles:
- !Ref MyRole
MyRole:
Type: AWS::IAM::Role
Properties:
PermissionsBoundary: !If [ IsBoundaryEnabled, !Sub 'arn:aws:iam::${AWS::AccountId}:policy/My-Permission-Boundary', !Ref "AWS::NoValue"]
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action:
- sts:AssumeRole
Path: /
因此,我只想将mycf[“资源”][“我的策略”]复制到另一个文件如果您提供更多上下文,例如您尝试加载的文档示例,我可能可以帮助您。添加了一个示例,谢谢@你能找到解决办法吗?我也有同样的问题…我最终改用python和cfn_flip。如果需要使用c#,也许可以使用cfn_flip将yaml转换为json,然后加载json。这不是一个友好的设置,因为您会丢失评论和其他内容。如果您提供更多上下文,例如您尝试加载的文档示例,我可能可以帮助您。添加了一个示例,谢谢@你能找到解决办法吗?我也有同样的问题…我最终改用python和cfn_flip。如果需要使用c#,也许可以使用cfn_flip将yaml转换为json,然后加载json。这不是一个友好的设置,因为你会丢失评论和其他东西。