

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 示例：从 S3 存储桶为 AWS PCS 运行其他脚本
<a name="working-with_ec2-user-data_s3"></a>

 在启动模板`"userData"`中提供此脚本作为的值。有关更多信息，请参阅 [处理适用于 AWS PCS 的 Amazon EC2 用户数据](working-with_ec2-user-data.md)。

以下用户数据脚本使用 **cloud-config** 从 S3 存储桶导入脚本，并在启动时在节点组实例上运行该脚本。有关更多信息，请参阅 *cloud-in* it 文档中的[用户数据格式](https://cloudinit.readthedocs.io/en/latest/explanation/format.html)。

用您自己的详细信息替换以下值：
+ *amzn-s3-demo-bucket*— 您的账户可以读取的 S3 存储桶的名称。
+ *object-key*— 要导入的脚本的 S3 对象密钥。这包括脚本的名称及其在存储桶文件夹结构中的位置。例如 `scripts/script.sh`。有关更多信息，请参阅[《亚马逊*简单存储服务用户指南》中的使用文件夹在 Amazon* S3 控制台中组织对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html)。
+ *shell*— 用于运行脚本的 Linux 外壳，例如`bash`。

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

runcmd:
- aws s3 cp s3://amzn-s3-demo-bucket/object-key /tmp/script.sh
- /usr/bin/shell /tmp/script.sh

--==MYBOUNDARY==--
```

节点组的 IAM 实例配置文件必须有权访问存储桶。以下 IAM 策略是上述用户数据脚本中存储桶的示例。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------