【发布时间】:2021-06-05 02:52:42
【问题描述】:
对于如何做到这一点,我已经看过很多次了。我不认为我有正确的术语。在 Golang 中使用 Pulumi 如何在字符串中引用某些资源的 ID。
例如,我创建了一个存储桶,然后我想在 IAM 策略中引用该存储桶的 ID。这似乎是不可能的。
bucket, err := s3.NewBucket(
ctx,
photosBucketName,
&s3.BucketArgs{})
tmpJSON, err := json.Marshal(map[string]interface{}{
"Version": "2012-10-17",
"Statement": []map[string]interface{}{
{
"Effect": "Allow",
"Principal": "*",
"Action": []string{"s3:GetObject"},
"Resource": []string{fmt.Sprintf("arn:aws:s3:::%s/*", bucket.ID())},
},
},
})
输出是:
Sprintf format %s has arg bucket.ID() of wrong type github.com/pulumi/pulumi/sdk/v2/go/pulumi.IDOutput
使用photosBucketName 会导致文档格式错误,因为在存储桶名称上生成了后缀。
感谢您的时间和帮助。
【问题讨论】:
标签: amazon-web-services go pulumi