如何获得statemachinearn的名字statemachine

问题描述 投票:0回答:2

我有一个状态机的名称(例如,定制状态机),我想要这个的statemachinearn,我该如何实现。

有函数,list_state_machines(),但它提供了所有状态机的详细信息。 另外,我看到了descripte_state_machine()的函数,但需要statemachinearn.

我的目标是从国家机器人的名字中获得statemachinearn

amazon-web-services boto3 aws-step-functions
2个回答
1
投票

import boto3 name = 'HelloWorld' sfn_arn = None client = boto3.client('stepfunctions') response = client.list_state_machines()['stateMachines'] for sfn in response: if sfn['name'] == name: sfn_arn = sfn['stateMachineArn']



0
投票
client = boto3.client('stepfunctions') response = client.list_state_machines()['stateMachines']

可以工作,但请记住有分页。默认情况下,它将一次仅返回100个。 如果您有100多个但少于1000,则可以这样更新通话:
response = client.list_state_machines(maxResults=1000)

如果您有超过1000,或者期望可能有1000多个,则需要实施分页:
state_machines = []
response = client.list_state_machines()

state_machines.extend(response["stateMachines"])

while "nextToken" in response:
    response = client.list_state_machines(nextToken=response["nextToken"])
    state_machines.extend(response["stateMachines"])

另一个选项是手动构造ARN,因为它遵循一种模式,如@fedonev所述:

arn:aws:states:<region>:<account id>:stateMachine:<state machine name>

如果您需要其他数据以外的其他数据,则可以使用Boto的Descibe_state_machine方法获取细节。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.