资源编排ROS中FC这个资源有个参数叫EnvVar,这是一个Map;我想其中一些值来自界面配置,一些值来自ALIYUN:OOS:Parameter,有什么思路吗?比如有没有Fn:mergeMap
参考:https://help.aliyun.com/document_detail/28865.html?spm=a2c4g.750001.0.i1#section-7f0-bwu-4mi此回答整理自钉群“资源编排ROS客户支持群”
在ROS(资源编排服务)中,确实没有直接提供类似Fn:mergeMap的内置函数来合并Map。但是,您可以通过使用Fn::Select和Fn::GetAtt等内置函数来实现类似的功能。以下是一种可能的思路:
定义一个Map,其中包含来自界面配置的键值对和来自ALIYUN:OOS:Parameter的键值对。
对于来自界面配置的键值对,直接将其添加到Map中。
对于来自ALIYUN:OOS:Parameter的键值对,您可以使用Fn::Select和Fn::GetAtt函数来获取它们的值。
使用Fn::Select函数选择需要的参数值,其中第一个参数是要选择的参数索引,第二个参数是参数列表。
使用Fn::GetAtt函数获取ALIYUN:OOS:Parameter资源的属性值,其中第一个参数是资源名称,第二个参数是属性名称。
下面是一个示例模板片段,展示了如何实现上述思路:
Resources:
MyFunctionCompute:
Type: 'ALIYUN::FC::Function'
Properties:
CodeUri: 'oss://my-bucket/my-function.zip'
EnvironmentVariables:
Fn::MergeMap:
- !Ref InterfaceConfigMap
- Fn::Select:
- 0
- Fn::GetAtt:
- OosParameter
- Outputs.Parameters
InterfaceConfigMap:
Type: 'ALIYUN::ROS::Parameter'
Properties:
Value:
key1: value1
key2: value2
OosParameter:
Type: 'ALIYUN::OOS::Parameter'
Properties:
Description: 'Parameter from OOS'
Value: 'Parameter value from OOS'
Outputs:
MyFunctionOutput:
Value: !GetAtt MyFunctionCompute.Arn
在上面的示例中,我们使用了Fn::MergeMap函数来合并InterfaceConfigMap和OosParameter中的键值对,然后将合并后的Map作为环境变量传递给函数计算资源。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。