pulumi - 将同名文件写入两个 S3 存储桶时出现错误“错误:重复资源 URN”
问题描述
我正在尝试在堆栈中创建两个单独的存储桶,但是当我尝试将文件写入第二个存储桶时,它与第一个存储桶中的任何文件同名,但出现错误
error: Duplicate resource URN 'urn:pulumi:dev::quickstart::aws:s3/bucketObject:BucketObject::index.html'; try giving it a unique name
下面的代码演示了这个问题。
显然,就 AWS 而言,没有冲突,但是我应该定义一个不同的“名称”来防止 Pulumi 创建看似重复的密钥吗?
using Pulumi;
using Pulumi.Aws.S3;
class MyStack : Stack
{
public MyStack()
{
// Create an AWS resource (S3 Bucket)
var bucket1 = new Bucket("my-bucket");
var bucketObject1 = new BucketObject("index.html", new BucketObjectArgs {
Bucket = bucket1.BucketName,
Content = "HTML in 1"
});
var bucket2 = new Bucket("my-bucket2");
var bucketObject2 = new BucketObject("index.html", new BucketObjectArgs {
Bucket = bucket2.BucketName,
Content = "HTML in 2"
});
}
}
解决方案
您应该为所有资源提供唯一的逻辑名称,包括两个BucketObject
's。Pulumi 使用逻辑名称来标识堆栈中的资源。
您仍然可以为两个文件提供相同的物理名称:
var bucketObject1 = new BucketObject("b1-index.html", new BucketObjectArgs {
Key = "index.html",
Bucket = bucket1.BucketName,
Content = "HTML in 1"
});
var bucketObject2 = new BucketObject("b2-index.html", new BucketObjectArgs {
Key = "index.html",
Bucket = bucket2.BucketName,
Content = "HTML in 2"
});
推荐阅读
- javascript - 如何在这个javascript代码中添加“IF result = X”而不是“RETURN x”?
- graphql - GraphQL - 如何将返回值用作下一个查询的变量?
- javascript - 如何一次从localStorage中检索多个数据并存储数据
- mapbox - Mpabox GL 放置图层悬停偏移
- r - 为什么我使用 fileInput 的数据路径更改为 /var 数据路径本身?以及如何取回原始数据路径
- reactjs - 使用 React 显示登录或注销按钮
- google-cloud-platform - 替代 Google 服务帐户
- sql - 从每个 id 的多个重复记录中制作一个主记录
- javascript - 无法在端口 443 上创建 PeerJS 服务器
- java - arrayBlockingQueue 和linkedBlockingQueue 中的内存消耗