如何通过电子邮件启动云托管的环境

阅读时间:6分钟

分享:

在脸书上分享
分享到Twitter
分享LinkedIn.

使用云托管的Tier-1环境的大多数组织都使用某种形式的自动启动并停止帮助管理他们的Azure花费。通常,这是通过的Azure自动化流册,可以根据计划启动和停止VM。这很好,但也有一些限制。少数人往往可以访问Runbook,以修改由于安全原因而修改计划,并且LCS不会反映VM的状态已启动或停止在LCS之外。而且,出于安全原因,并非访问D365系统的所有用户都将有权从LCS启动或停止VM。

Microsoft创建了一个LCS API,提供对多个功能的访问,例如数据库移动和启动/停止VM。这允许我们使用其他工具,例如动力自动化,以自我服务方式向用户提供通常无法访问它的用户公开此功能。

在此示例中,我们将建立一个动力自动化流程,使用户通过电子邮件将用户在正常的正常运行时间(M-F)之外启动云托管环境(或VM)。我们将管理可用于在SharePoint列表中启动的VM列表。

先决条件:

  • LCS项目和云托管环境
  • SharePoint网站
  • Azure应用程序客户ID和秘密
  • 组织账户
    • 没有2FA启用(LCS目前只支持用户帐户身份验证)
    • 有一个交换邮箱
    • 有一个动力自动化许可证
    • 至少是LCS项目中的环境所有者,并且实际上已登录到LCS中的项目(INVITE状态不是“待处理”)。

可用环境

我们需要维护我们可以在某处开始的环境列表。我选择使用SharePoint列表。我们需要知道用户可以在其电子邮件请求中使用的环境名称,然后是LCS项目和环境ID。我还有一个自动启动列,用于计划在计划中启动环境。

SharePoint中的LCS项目列表

开始环境

接下来,我们需要构建一个将启动给定环境的流程。我们将设计此流程,以便可以在各种场景中调用,只需了解我们正在使用的LCS项目和环境ID。我们将从HTTP请求中收到此信息,并通过启动请求的结果提供HTTP响应。介于两者之间,我们需要获取承载令牌来进行身份验证,然后进行LCS API请求。

  1. HTTP请求
    我们的请求需要两个参数,项目和环境ID。我们在我们的请求主体JSON架构中定义这些。
    收到HTTP请求时
  1. 变量
    接下来,我们为客户ID,客户端密钥,用户名和密码声明变量。我们不需要这样做,但它使得管理这些值更容易,并且它也使流程更容易复制和共享。
    初始化ClientId.
  1. 持卡人令牌
    现在我们可以使用这些变量来获取我们的持票人令牌,用于验证LCS API请求。我们通过HTTP请求操作在Power自动执行此操作。
方法 邮政
Uri. https://login.microsoftonline.com/sikichd365.com/oauth2/token.
标题 Content-Type,Application / X-WWM-Form-Urlencoded
身体 grant_type=password&client_id=@{variables(‘ClientID’)}&username=@{variables(‘Username’)}&password=@{variables(‘Password’)}&client_secret=@{variables(‘Secret’)}&resource=https://lcsapi.lcs.dynamics.com

得到持有令牌

然后,我们需要从我们对持票人令牌的请求中解析响应。我们用解析的json行动这样做。我们可以从请求中使用输出来获取承载令牌以生成示例模式。我已经复制了下面的架构。这允许我们在后续操作中轻松地指的是拒绝令牌响应中的值。此操作的输入是HTTP请求的正文。

{

“类型”:“对象”,

“特性”: {

“token_type”:{

“类型”:“字符串”

},

“范围”: {

“类型”:“字符串”

},

“过期日期在”: {

“类型”:“字符串”

},

“ext_expires_in”:{

“类型”:“字符串”

},

“Access_Token”:{

“类型”:“字符串”

},

“到期”: {

“类型”:“字符串”

},

“not_before”:{

“类型”:“字符串”

},

“资源”:{

“类型”:“字符串”

},

“refresh_token”:{

“类型”:“字符串”

}

}

}

解析json.

  1. LCS API呼叫
    现在我们拥有我们的所有身份验证信息以及哪些环境开始,我们可以调用LCS API。再次,我们使用HTTP操作。
方法 邮政
Uri. https://lcsapi.lcs.dynamics.com/environment/v1/start/project/@ {riggerbody ()?????????????????? / <'project'@ {triggerdodom ()????????:
标题 授权 持有人身体('parse_json')?[''Access_Token']
X-MS版本 '2017-09-15'
内容类型 应用/ JSON.

致电LCS API.

  1. 回应
    最后,我们通过LCS API调用和主体的状态响应来电者。您可以根据状态代码(200 =成功)在这里做一些花哨的事情,但我们只是返回的信息。
    回复

以下是成功请求的示例。
成功的要求示例

既然我们已经建立了一个通用流程来启动环境,我们可以继续处理电子邮件请求。

处理电子邮件请求以启动托管托管环境

我们的目标是允许用户通过电子邮件启动VM环境。为此,我们希望用户与主题“autoStart ”发送电子邮件,其中环境名称与SharePoint列表中的环境匹配。

  1. 当新的电子邮件到达时
    我们的触发将收到具有以“AutoStart”开头的主题的电子邮件消息。
    如何通过电子邮件启动云托管的环境
  1. 获取环境名称
    我们需要从电子邮件主题中获取环境名称并将其存储在变量中。我用来执行此操作的表达式如下:
替换(triggerutputs()?['body / project'],'autoStart',“)

初始化变量

  1. 查找LCS项目和环境ID
    接下来,我们需要查找与电子邮件主题中的环境名称对应的项目和环境ID。
    查找与我们的电子邮件主题中的环境名称相对应的项目和环境ID
  1. 呼叫LCS开始流程
    我们现在准备使用HTTP请求操作调用我们内心内置的流程。
方法 邮政
Uri. 从上一个流程触发复制这一点
身体 {

“项目”:“@ {produm_to_each')?['projectId']}”,

“环境”:“@ {specile_to_each')?['endynationid']}”

}

打电话

  1. 响应用户请求
    现在我们已经收到了从我们的请求开始启动VM的回复,我们可以响应通过电子邮件请求操作的用户。为此,我们首先使用解析JSON操作解析HTTP请求的响应,并使用“发卡群”值来确定要发送的电子邮件响应的类型。下面包含用于解析响应的示例模式。
{

“类型”:“对象”,

“特性”: {

“签收”:{

“类型”:“Boolean”

},

“作业性地”:{

“类型”:“字符串”

},

“错误信息”: {},

“版本罗”:{

“类型”:“字符串”

}

}

}

解析响应的示例方案

进一步增强

我们可以实施一些额外的项目来改进上述情况。

首先是过滤传入的电子邮件请求,以仅允许在我们的组织中允许用户启动VM。

第二个是通过相同的LCS API添加自动关闭功能。这将使LCS与Azure同步中的云托管的VM状态,并允许用户通过SharePoint列表中的复选框管理自动关机。

有关如何通过电子邮件启动云托管环境的疑问?请伸手随时!

参考:https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/database/api/v1/reference-tart-stop-environments.

本出版物仅包含一般信息,依据本出版物,呈现会计,业务,财务,投资,法律,税务或任何其他专业咨询或服务,并不是。本出版物不是替代这些专业建议或服务,也不应该将其作为可能影响您或您业务的任何决定,行动或遗漏的基础。在做出任何决定之前,应采取任何行动或省略可能影响您或您业务的行动,您应该咨询合格的专业顾问。您承认,Sikich不得对您或任何依赖本出版物持续的任何人负责。

注册洞察2021欧洲杯竞猜赔率

加入14,000多名商业管理人员和决策者

接下来的活动

最新见解2021欧洲杯竞猜赔率

关于作者