如何用Pulumi Python SDK获取AWS资源属性?求可用示例
使用Pulumi Python SDK获取栈输出
你可以通过Pulumi官方的pulumi-automation模块直接获取栈输出,无需调用subprocess执行命令行。以下是完整可用的示例:
步骤1:确保依赖安装
如果还没安装相关包,执行:
pip install pulumi pulumi-automation
步骤2:示例代码
import pulumi.automation as auto def fetch_stack_outputs(stack_name): # 方式1:访问本地/同项目下的栈 # 需要指定pulumi项目所在的工作目录(即包含Pulumi.yaml的文件夹路径) stack = auto.select_stack(stack_name=stack_name, work_dir="./your-pulumi-project-path") # 方式2:跨组织/跨项目访问栈(格式:org-name/project-name/stack-name) # stack_ref = auto.StackReference("your-org/your-project/your-stack") # 获取所有栈输出,返回字典格式 all_outputs = stack.outputs() print("所有栈输出:", all_outputs) # 获取单个输出值,比如S3存储桶ID bucket_id = all_outputs.get("s3BucketId") # 或者使用get_output方法(返回Output对象,需取.value获取实际值) # bucket_id = stack.get_output("s3BucketId").value # 获取RDS数据库端点 rds_endpoint = all_outputs.get("rdsEndpoint") print(f"S3存储桶ID:{bucket_id}") print(f"RDS端点:{rds_endpoint}") if __name__ == "__main__": # 替换成你的栈名称 fetch_stack_outputs("dev-stack")
关键说明
auto.select_stack:用于访问当前项目下的栈,必须指定pulumi项目的工作目录路径。auto.StackReference:用于访问其他组织或项目下的栈,格式为org/project/stack,无需指定工作目录。stack.outputs():一次性获取所有栈输出的字典,直接拿到当前的实际值。stack.get_output("output-key"):获取单个输出,返回Pulumi的Output对象,通过.value可同步获取实际值。
内容的提问来源于stack exchange,提问作者epattaro
相关产品推荐
相关产品推荐

