如何使用 Pulumi 导入现有的 S3 对象?

How to import an existing S3 object with Pulumi?

我正在尝试将现有的 S3 对象导入 Pulumi。这是我目前的尝试(使用 Python):

bucket = s3.Bucket('test-bucket',
               bucket='test-bucket')
file = s3.BucketObject('file.txt',
                   bucket=bucket,
                   key='temp/file.txt',
                   opts=ResourceOptions(import_='temp/file.txt'))

使用该配置,我收到以下错误:

Diagnostics:
  aws:s3:BucketObject (file.txt):
    error: Preview failed: refreshing urn:pulumi:dev::quickstart::aws:s3/bucketObject:BucketObject::file.txt: 1 error occurred:
        * InvalidParameter: 2 validation error(s) found.
    - minimum field size of 1, HeadObjectInput.Bucket.
    - minimum field size of 1, HeadObjectInput.Key.

我在 reference documentation 中找不到任何提及 HeadObjectInput 的地方。

我应该向 BucketObject() 传递什么参数,以便在 Pulumi 中导入 S3 对象?

我的最终目标是使用 Pulumi 从 S3 存储桶中删除现有对象。还有其他方法可以实现吗?

如果您确实正在尝试导入一个现有的存储桶 and/or 对象供 Pulumi 作为堆栈的一部分进行管理,此页面可能会有所帮助:https://www.pulumi.com/docs/guides/adopting/import/

如果您只想获取有关现有存储桶 and/or 对象的信息,则可以使用获取函数:https://www.pulumi.com/docs/reference/pkg/aws/s3/#functions

目前,Pulumi aws 提供程序构建在 terraform aws 提供程序之上。 因此,我尝试在 terraform 中导入 S3 存储桶和 S3 存储桶对象。 尽管桶在 terraform(和 Pulumi)中导入,terraform 抛出错误:

Error: resource aws_s3_bucket_object doesn't support import

因此Pulumi提供商(此时)也不支持。