【发布时间】:2022-01-28 13:50:44
【问题描述】:
我有一个简单的 CloudFomration 模板来创建 VPC:
vpc.yaml
---
Parameters:
CidrBlock:
Type: String
Description: The primary IPv4 CIDR block for the VPC
Resources:
VPC:
Type: "AWS::EC2::VPC"
Properties:
CidrBlock: !Ref "CidrBlock"
Tags:
- Key: "Name"
Value: "This is the main VPC"
在我的 Azure Devops 管道中,我想使用 AWS Stack create 通过使用此 CloudFormation 模板来创建 VPC。
Azure-pipeline.yaml
---
jobs:
- job: Job1
steps:
- task: CloudFormationCreateOrUpdateStack@1
inputs:
awsCredentials: 'My-cred'
regionName: 'ap-southeast-2'
stackName: 'Stack1'
templateSource: 'file'
templateFile: 'vpc.yaml'
templateParametersSource: inline
templateParameters: |
- ParameterKey: CidrBlock
ParameterValue: '10.10.10.0/24'
显然,当我在调用 vpc.yaml 模板时手动提供 CidrBlock 参数的值(如上 ^)时,它会正常工作。但我想做的是使用另一个文件来存储参数和值,并在运行 vpc 模板时传递它们。 换句话说,我有一个 params.yaml 文件,其中存储了运行 vpc.yaml 所需的参数。将 vpc.yaml 模板作为参数文件运行时如何使用它?
params.yaml
---
parameters:
- name: CidrBlock
value: '10.10.10.0/24'
就像我在上面的 azure-pipeline 文件中引用模板文件一样,有没有类似的方法可以引用 params 文件而不是使用 templateParametersSource: inline em> ?
【问题讨论】:
-
听起来我可以使用 templateParametersSource: 'file' 和 templateParametersFile: 'params.yaml'。所以现在当我运行我的管道时,它给了我以下错误:##[error]InvalidParameterType: Expected params.Parameters to be an Array。知道如何解决这个问题吗?
标签: azure-devops amazon-cloudformation