import {...} from '@amazon-codecatalyst/blueprint-component.environments'
环境部分可以找到 这里。 。 。 .
蓝图向导由 : Options 界面通过
[[wizard-|https://github.com/aws/codecatalyst-blueprints/wiki/Wizard]]]. 蓝图支持从曝光类型生成UI组件.
实例1:创造发展环境
export interface Options extends ParentOptions {
...
myNewEnvironment: EnvironmentDefinition<{
thisIsMyFirstAccountConnection: AccountConnection<{
thisIsARole: Role<['lambda', 's3', 'dynamo']>;
}>;
}>;
}
这使得作者可以向"云"部署自己的申请.
上述界面将生成一个要求新建环境的 UI 组件 myNewEnvironment 单账户连接
thisIsMyFirstAccountConnection 和这个账户连接上的角色 thisIsARole 与 ['lambda', 's3', 'dynamo'] 作为最低要求的作用
能力。 由于并非所有用户都将拥有账户连接,因此必须检查用户没有连接账户的情况,以及
也不将账户与角色连接。 这在类型定义中得到准确反映.
角色还可以附加说明 @inlinePolicies 百分比
这里的文件。 。 。 .
环境部分要求 name 还有一个 environmentType。所需的最小默认形状看起来是这样的:
{
...
"myNewEnvironment": {
"name": "myProductionEnvironment",
"environmentType": "PRODUCTION"
},
}
然后,UI组件将促使用户进入各个字段,当用户填入这些字段时,蓝图将得到一个完全扩展的形状。 没错
有时有助于将完整的 “ mock” 包含在 defaults.json 用于测试和开发目的.
示例2:一个简单的模拟界面
{
...
"thisIsMyEnvironment": {
"name": "myProductionEnvironment",
"environmentType": "PRODUCTION",
"thisIsMySecondAccountConnection": {
"id": "12345678910",
"name": "my-account-connection-name",
"secondAdminRole": {
"arn": "arn:aws:iam::12345678910:role/ConnectedCodecatalystRole",
"name": "ConnectedCodecatalystRole",
"capabilities": [
"lambda",
"s3",
"dynamo"
]
}
}
}
}
例3:更复杂的模拟界面
export interface Options extends ParentOptions {
/**
* The name of an environment
* @displayName This is a Environment Name
* @collapsed
*/
thisIsMyEnvironment: EnvironmentDefinition<{
/**
* blah blah blah some comments about the account that i'm deploying into
* @displayName This account connection has an overriden name
* @collapsed
*/
thisIsMyFirstAccountConnection: AccountConnection<{
/**
* Blah blah some information about the role that I expect
* e.g. here's a copy-pastable policy: [to a link]
* @displayName This role has an overriden name
*/
adminRole: Role<['admin', 'lambda', 's3', 'cloudfront']>;
/**
* Blah blah some information about the second role that I expect
* e.g. here's a copy-pastable policy: [to a link]
*/
lambdaRole: Role<['lambda', 's3']>;
}>;
/**
* blah blah blah some comments about the account that i'm deploying into
*/
thisIsMySecondAccountConnection: AccountConnection<{
/**
* Blah blah some information about the role that I expect
* e.g. here's a copy-pastable policy: [to a link]
*/
secondAdminRole: Role<['admin', 'lambda', 's3', 'cloudfront']>;
/**
* Blah blah some information about the second role that I expect
* e.g. here's a copy-pastable policy: [to a link]
*/
secondLambdaRole: Role<['lambda', 's3']>;
}>;
}>;
}
例4:一个完整的模拟界面
{
...
"thisIsMyEnvironment": {
"name": "my-production-environment",
"environmentType": "PRODUCTION",
"thisIsMySecondAccountConnection": {
"id": "12345678910",
"name": "my-connected-account",
"secondAdminRole": {
"name": "LambdaCodecatalystRole",
"arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
"capabilities": [
"admin",
"lambda",
"s3",
"cloudfront"
]
},
"secondLambdaRole": {
"name": "LambdaCodecatalystRole",
"arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
"capabilities": [
"lambda",
"s3"
]
}
},
"thisIsMyFirstAccountConnection": {
"id": "12345678910",
"name": "my-connected-account",
"adminRole": {
"name": "LambdaCodecatalystRole",
"arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
"capabilities": [
"admin",
"lambda",
"s3",
"cloudfront"
]
},
"lambdaRole": {
"name": "LambdaCodecatalystRole",
"arn": "arn:aws:iam::12345678910:role/LambdaCodecatalystRole",
"capabilities": [
"lambda",
"s3"
]
}
}
},
}