跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

EXEC

执行 Provider 资源方法(内置过程)。

另请参阅:
[ StackQL 资源层次结构 ]


语法​

execStatement::=

EXECqueryHintmultipartIdentifier'.'providerMethodNameparameterExpressionparameterExpression';'

 
 

EXEC [ queryHint ] <multipartIdentifier>.<methodName> [ <methodArguments> ];

查询提示​

EXEC 命令支持的查询提示汇总如下:

提示说明
/*+ SHOWRESULTS */返回结果集,适用于返回数据的方法,但如果可能,请使用 SELECT。
/*+ AWAIT */使操作变为阻塞(同步)操作,为长时间运行的操作(例如变更操作)提供脚本控制。注意:并非所有 Provider 都支持此功能

示例​

停止 Google Compute Engine 实例​

在已通过身份验证的会话中运行 EXEC 语句,停止正在运行的 Compute Engine 实例。

-- Stop a running Compute Engine resource instance
EXEC google.compute.instances.stop
@instance = 'demo-instance-1',
@project = 'stackql-demo',
@zone = 'australia-southeast1-a';

启动 Google Compute Engine 实例(同步选项)​

在已通过身份验证的会话中运行 EXEC 语句,启动已停止的 Compute Engine 实例,并使用 /*+ AWAIT */ 查询提示使操作变为阻塞(同步)操作。

-- Start a stopped Compute Engine resource instance
EXEC /*+ AWAIT */ google.compute.instances.stop
@instance = 'demo-instance-1',
@project = 'stackql-demo',
@zone = 'australia-southeast1-a';

启动和停止 AWS EC2 实例​

在已通过身份验证的会话中运行 EXEC 语句,启动 AWS EC2 实例。

-- Start an EC2 instance
EXEC aws.ec2.instances.start_instances
@InstanceId = 'i-0fc989cf4efcd8b88',
@region = 'ap-southeast-2';
-- Stop an EC2 instance
EXEC aws.ec2.instances.stop_instances
@InstanceId = 'i-0fc989cf4efcd8b88',
@region = 'ap-southeast-2';

将磁盘附加到 Google Compute Engine 实例​

在已通过身份验证的会话中运行 EXEC 语句,将磁盘附加到 Compute Engine 实例。

-- Attach a Disk resource to a Compute Engine instance
EXEC google.compute.instances.attachDisk
@zone='australia-southeast1-a',
@project='stackql-demo',
@instance='demo-instance-1'
@@json=
'{
"source": "projects/stackql-demo/zones/australia-southeast1-a/disks/test10gbdisk2",
"boot": false
}';

模拟 Azure Spot VM 逐出​

运行 EXEC 语句,模拟 Azure Spot VM 实例的逐出。

exec azure.compute.virtual_machines.simulate_eviction
@subscription_id = '0123456789',
@resource_group_name = 'vmss-flex',
@vm_name = 'vmss-flex-manual-1';