Skip to main content

设置操作

选择动作的名称、描述: 和图标,使其易于识别。

选择希望用户填写的用户输入信息,以使用该操作。

Port 支持各种输入类型,包括构建带有条件和步骤的向导,以最佳方式满足用户的体验需求。

设置action包括以下步骤:

  1. Defineaction information - title, icon, description 和相关的blueprint
  2. 选择user inputs - 通过指定用户需要填写的输入类型来创建类似向导的体验,同时还包括输入验证;
  3. 配置action type - 创建/第 2 天/删除;
  4. 将操作连接到backend - 对于您在 Port 中定义的每个操作,您都要告诉 Port 由哪个组件负责处理该操作的调用。这就是所谓的**调用方法(**invocation method),Port 支持针对不同用例和环境的各种调用方法;
  1. 配置 RBAC 和防护栏--这一可选步骤可让你选择谁可以触发操作,操作是否需要管理员手动批准,以及谁有批准或驳回请求的权限。

💡 共同action

例如,操作可被用于来执行您选择的任何逻辑:

  • 为新的微服务搭建脚手架;
  • 部署新版本;
  • 锁定部署;
  • 添加secret;
  • 启动临时开发环境;
  • 扩展环境的 TTL;
  • 供应云资源;
  • 更新服务的 pod 数量;
  • 更新自动扩展组;
  • 更改客户配置;
  • 训练机器学习模型;
  • 预处理数据集;
  • 等等。

live demo 示例中,我们可以看到带有示例操作的自助服务枢纽页面。

action结构

每个操作都由Json schema 表示,如下节所示:

{
"identifier": "myIdentifier",
"title": "My title",
"description": "My description",
"icon": "My icon",
"userInputs": {
"properties": {
"myInput1": {
"type": "my_type",
"title": "My input"
},
"myInput2": {
"type": "my_special_type",
"title": "My special input"
}
},
"required": []
},
"invocationMethod": {
"type": "myInvocationType"
},
"trigger": "myActionTrigger",
"requiredApproval": false
}
动作数组 为蓝图配置的动作以数组形式保存,在上面的 JSON 示例中可以看到单个动作的模式,要在蓝图中保存该动作定义,请记住用方括号([])将其包起来,使其成为数组的一部分:
[
{
"identifier": "myIdentifier",
"title": "My title",
"description": "My description",
"icon": "My icon",
"userInputs": {
"properties": {
... action definition
}
}
]

结构表

一个动作由多个属性组成:

FieldDescriptionNotes
idInternal Action IDAn internal ID Port assigns to each action. Immutable. The id field will be added to the action JSON automatically after creating the action
identifierUnique identifierRequired. The identifier is used for API calls, programmatic access and distinguishing between different actions
titleNameHuman-readable name for the action
descriptionDescriptionThe value is visible on the action card in the Self-Service Hub and also as a tooltip to users when hovering over the action in the UI
iconAction iconSee the full icon list here
triggerThe type of the action: CREATE, DAY-2 or DELETEThe action type is sent by Port to the action backend as part of the action metadata. In addition, Port automatically places actions in specific places in the developer portal UI to make them accessible and intuitive for the user.
userInputsAn object containing properties ,required and order as seen in Action user inputs
requiredApprovalWhether the action requires approval or not
invocationMethodThe invocation method for the actionDefines the destination where invocations of the action will be delivered, see invocation method for details
可用的用户输入法user inputs 页面列出了所有可用的用户输入法。

userInputs - 表单和向导用户界面

Port 操作支持各种用户输入,可轻松创建用户界面表单和向导。

通过使用用户输入,您可以向用户明确说明您的后端需要哪些信息来处理操作请求。 此外,用户输入还提供开箱即用的验证支持,让您可以轻松设置防护栏,确保输入值标准化。

要了解有关用户输入的更多信息,请参阅user inputs 页面。

trigger - 动作类型

Port 操作支持 3 种操作类型:

  • CREATE - 创建操作用于创建新的新资产和资源,并且不与软件目录中的现有实体绑定;
  • DAY-2 - 日-2 操作操作用于修改、更改、增强或添加到软件目录中的现有资源和实体;
  • DELETE - 删除操作用于触发有组织地删除软件目录中的现有资源及其相应实体。

不同的操作类型在软件目录用户界面中也有特定的表现形式:

  • Self-Service Hub 页面中,每种操作类型都有单独的部分;
  • 在蓝图表中,创建操作显示为全局按钮,不与任何特定实体绑定;
  • 在蓝图表和entity page 中,"DAY-2 "和 "DELETE "操作专门显示在您希望触发操作的实体上。

invocationMethod - 连接到后端

Port操作支持各种目标后端,在调用操作时可以触发这些后端。

不同的后端通过 invocationMethod 键来表示和配置,可用的方法有

  • Webhook - 设置 webhook URL 以接收和处理表单和向导提交;
  • Kafka - 订阅 Kafka 主题,以监听表单和向导提交信息;
  • CI Native (Github Workflow) - 设置 Port 的GitHub app ,以处理通过 Github 工作流提交的表单和向导;
  • CI Native(Azure Pipelines)- 设置 Webhook 类型的服务连接,以触发 Azure 管道并通过 Github 工作流处理表单和向导提交;
  • Port 代理-设置 Port 代理,接收表单和向导提交,并将其转发到内部网络上的后端。

要进一步了解不同的可用调用方法和后端,请参阅setup backend 页面。

requireApproval - 要求人工批准(可选)

Port 操作支持手动审批流程。 手动审批可以控制谁可以审批操作调用请求,还可以在操作请求等待相关角色审核时通知他们。

请参阅self-service actions RBAC 页面了解更多信息。

在 Port 中配置操作

{
"identifier": "myIdentifier",
"title": "My title",
"description": "My description",
"icon": "My icon",
"userInputs": {
"properties": {},
"required": []
},
"invocationMethod": {
"type": "myInvocationType"
},
"trigger": "myActionTrigger",
"requiredApproval": false
}
上面显示的 JSON 是针对单个蓝图操作的,蓝图的操作存储在一个数组([])中

Check out Port's API reference to learn more.