AWS 后台脚手架动作插件
这是后台.io的AWS脚手架动作插件.
它提供脚手架动作:
安装
本指南假设你熟悉将军 开始 并假设您已有后台应用程序.
在您的后台应用程序中安装后端软件包 :
yarn workspace backend add @aws/aws-core-plugin-for-backstage-scaffolder-actions
将脚手架模块添加到 packages/backend/src/index.ts数字 :
const backend = createBackend();
// ...
backend.add(import('@aws/aws-core-plugin-for-backstage-scaffolder-actions'));
// ...
backend.start();
行动
每项行动如下:.
AWS 云控 - 创建资源
这个脚手架动作利用AWS Cloud Control API创建了AWS资源.
注:通常不鼓励利用这一机制建立阿军资源,除非有特殊用途。 我们强烈建议依靠基础设施的现成代码来创建AWS资源,并将这一行动用于任何与严格意义上的拖带项目有关的东西.
权限
后台使用的 IAM 角色需要以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["cloudcontrol:CreateResource"],
"Resource": "*"
}
]
}
说明: 这项政策并不反映最不重要的特权,你应该将政策进一步限制在适当的AIS资源范围内.
使用量
脚手架动作可以包含在这样的软件模板中:
steps:
- id: create-ecr-repository
name: Create ECR Repository
action: aws:cloudcontrol:create
input:
typeName: 'AWS::ECR::Repository'
desiredState: '{"RepositoryName": "${{ parameters.name }}-ecr-repository"}'
wait: true
maxWaitTime: 20
亚马逊事件- 邮政事件
这个脚手架动作将一个事件张贴到 Amazon EventBridge 事件总线上 PutEvents API (英语).
权限
后台使用的 IAM 角色需要以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["events:PutEvents"],
"Resource": "*"
}
]
}
说明: 这项政策并不反映最不重要的特权,你应该将政策进一步限制在适当的AIS资源范围内.
使用量
脚手架动作可以包含在这样的软件模板中:
steps:
- id: eventbridge-event
name: Post EventBridge event
action: aws:eventbridge:event
input:
region: us-east-1
eventBusName: my-event-bus
source: my-app
detailType: MyDetailType
detail: '{"key": "value"}'
您也可以将细节作为对象通过 detailObject数字 :
steps:
- id: eventbridge-event
name: Post EventBridge event
action: aws:eventbridge:event
input:
eventBusName: my-event-bus
source: my-app
detailType: MyDetailType
detailObject:
key: value
Amazon S3 - 复制文件
这个脚手架动作器复制了从脚手架工作空间到亚马逊S3桶的文件. 默认情况下,它会上传工作空间中的所有文件,所以任何由前步骤生成的内容(例如. fetch:template将列入。 使用 path 输入以限制哪些文件被复制.
权限
后台使用的 IAM 角色需要以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "*"
}
]
}
说明: 这项政策并不反映最不重要的特权,你应该将政策进一步限制在适当的AIS资源范围内.
使用量
脚手架动作可以包含在这样的软件模板中:
steps:
- id: template
name: Fetch Skeleton
action: fetch:template
input:
url: ./skeleton
targetPath: ./skeleton
- id: copyFiles
name: Copy files to S3
action: aws:s3:cp
input:
bucketName: my-bucket
region: us-east-1
您也可以指定文件模式和前缀 :
steps:
- id: copyFiles
name: Copy files to s3
action: aws:s3:cp
input:
accountId: '1234567890'
region: us-east-1
bucketName: my-bucket
path: 'build/**'
prefix: 'artifacts/'
AWS 代码承诺 - 发布寄存器
这个脚手架动作创建了一个新的AWS CodeCommit寄存器,并向它发布工作空间内容.
权限
后台使用的 IAM 角色需要以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["codecommit:CreateRepository", "codecommit:CreateCommit"],
"Resource": "*"
}
]
}
说明: 这项政策并不反映最不重要的特权,你应该将政策进一步限制在适当的AIS资源范围内.
使用量
脚手架动作可以包含在这样的软件模板中:
steps:
- id: publish
name: Publish to CodeCommit
action: aws:codecommit:publish
input:
repositoryName: my-new-repo
defaultBranch: main
有自定义作者和子目录 :
steps:
- id: publish
name: Publish to CodeCommit
action: aws:codecommit:publish
input:
accountId: '1234567890'
region: us-west-2
repositoryName: my-new-repo
defaultBranch: main
sourcePath: ./output
gitCommitMessage: 'Initial scaffolded commit'
gitAuthorName: Backstage
gitAuthorEmail: [email protected]