

 AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用这项服务。[了解详情](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 的 Python 教程 AWS Cloud9
<a name="sample-python"></a>

本教程向您展示如何在 AWS Cloud9 开发环境中运行 Python 代码。

遵循本教程可能会导致您的 AWS 账户被扣款。其中包括可能对 Amazon Elastic Compute Cloud (Amazon EC2) 和 Amazon Simple Storage Service (Amazon S3) 等服务收取的费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)和 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [先决条件](#sample-python-prereqs)
+ [步骤 1：安装 Python](#sample-python-install)
+ [步骤 2：添加代码](#sample-python-code)
+ [步骤 3：运行代码](#sample-python-run)
+ [步骤 4：安装和配置 适用于 Python (Boto3) 的 AWS SDK](#sample-python-sdk)
+ [第 5 步：添加 AWS SDK 代码](#sample-python-sdk-code)
+ [第 6 步：运行 S AWS DK 代码](#sample-python-sdk-run)
+ [步骤 7：清除](#sample-python-clean-up)

## 先决条件
<a name="sample-python-prereqs"></a>

使用本教程之前，确保满足以下要求。
+ **您有一个 AWS Cloud9 EC2 开发环境**

  本教程假设您已有 EC2 环境，并且该环境已连接到运行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 实例。有关详细信息，请参阅 [创建 EC2 环境](create-environment-main.md)。

  如果您有不同类型的环境或操作系统，您可能需要调整本教程的说明。
+ **您已经为该环境打开了 AWS Cloud9 IDE**

  打开环境时，会在 Web 浏览器中 AWS Cloud9 打开该环境的 IDE。有关详细信息，请参阅 [在中打开环境 AWS Cloud9](open-environment.md)。

## 步骤 1：安装 Python
<a name="sample-python-install"></a>

1. 在 AWS Cloud9 IDE 的终端会话中，通过运行**`python --version`**命令来确认 Python 是否已安装。（要开始新的终端会话，请在菜单栏上依次选择 **Window (窗口)**、**New Terminal (新建终端)**。） 如果已安装 Python，请向前跳至[步骤 2：添加代码](#sample-python-code)。

1. 运行 **`yum update`**（适用于 Amazon Linux）或 **`apt update`**（适用于 Ubuntu Server）命令，以帮助确保已安装最新的安全更新和错误修复。

   对于 Amazon Linux：

   ```
   sudo yum -y update
   ```

   对于 Ubuntu Server：

   ```
   sudo apt update
   ```

1. 通过运行 **`install`** 命令来安装 Python。

   对于 Amazon Linux：

   ```
   sudo yum -y install python3
   ```

   对于 Ubuntu Server：

   ```
   sudo apt-get install python3
   ```

## 步骤 2：添加代码
<a name="sample-python-code"></a>

在 AWS Cloud9 IDE 中，创建一个包含以下内容的文件，并使用该名称保存该文件`hello.py`。（要创建文件，请在菜单栏上依次选择 **File（文件）**、**New File（新建文件）**。要保存文件，请依次选择 **File（文件）**、**Save（保存）**。）

```
import sys

print('Hello, World!')

print('The sum of 2 and 3 is 5.')

sum = int(sys.argv[1]) + int(sys.argv[2])

print('The sum of {0} and {1} is {2}.'.format(sys.argv[1], sys.argv[2], sum))
```

## 步骤 3：运行代码
<a name="sample-python-run"></a>

1. 在 AWS Cloud9 IDE 中，在菜单栏上选择 “**运行**”、“**运行配置**”、“**新建运行配置**”。

1. 在 **[New] - Stopped（[新建] - 已停止）**选项卡中，在 **Command** 中输入 `hello.py 5 9`。在代码中，`5` 表示 `sys.argv[1]`，`9` 表示 `sys.argv[2]`。

1. 选择 **Run (运行)**，然后比较输出。

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

1. 默认情况下， AWS Cloud9 会自动为你的代码选择一个运行器。要更改运行程序，请选择 **Runner (运行程序)**，然后选择 **Python 2** 或 **Python 3**。
**注意**  
您可以为特定版本的 Python 创建自定义运行程序。有关更多信息，请参阅 [创建生成器或运行程序](build-run-debug.md#build-run-debug-create-builder-runner)。

## 步骤 4：安装和配置 适用于 Python (Boto3) 的 AWS SDK
<a name="sample-python-sdk"></a>

 适用于 Python (Boto3) 的 AWS SDK 允许您使用 Python 代码与诸如 Amazon S3 之类的 AWS 服务进行交互。例如，您可以使用开发工具包创建 Amazon S3 存储桶，列出您的可用存储桶，然后删除刚刚创建的存储桶。

### 安装 pip
<a name="sample-python-sdk-install-pip"></a>

在 AWS Cloud9 IDE 中，通过运行命令来确认`pip`是否已经为活动版本的 Python 安装了该**`python -m pip --version`**命令。如果已安装 `pip`，请跳到下一节。

要安装 `pip`，请运行以下命令。由于 sudo 与用户处于不同的环境中，因此，如果 Python 的版本与当前别名版本不同，则必须指定要使用的 Python 版本。

```
curl -O https://bootstrap.pypa.io/get-pip.py # Get the install script.
sudo python3 get-pip.py                     # Install pip for Python 3.
python -m pip --version                      # Verify pip is installed.
rm get-pip.py                                # Delete the install script.
```

有关更多信息，请参阅 `pip` 网站上的[安装](https://pip.pypa.io/en/stable/installing/)。

### 安装 适用于 Python (Boto3) 的 AWS SDK
<a name="sample-python-sdk-install-sdk"></a>

安装后`pip`， 适用于 Python (Boto3) 的 AWS SDK 通过运行**`pip install`**命令进行安装。

```
sudo python3 -m pip install boto3  # Install boto3 for Python 3.
python -m pip show boto3            # Verify boto3 is installed for the current version of Python.
```

有关更多信息，请参阅 [ 中的](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)快速入门 适用于 Python (Boto3) 的 AWS SDK的“安装”部分。

### 在环境中设置凭证
<a name="sample-python-sdk-credentials"></a>

每次使用调 适用于 Python (Boto3) 的 AWS SDK 用 AWS 服务时，都必须为呼叫提供一组凭据。这些凭证确定开发工具包是否具有必需的权限以进行调用。如果凭证没有包括必需的权限，调用将失败。

要在环境中存储凭证，请按照 [AWS 服务 从中的环境中呼叫 AWS Cloud9](credentials.md) 中的说明进行操作，然后返回到该主题。

有关其他信息，请参阅 [ 中的](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html)凭证 适用于 Python (Boto3) 的 AWS SDK。

## 第 5 步：添加 AWS SDK 代码
<a name="sample-python-sdk-code"></a>

添加代码，该代码使用 Amazon S3 创建存储桶、列出可用存储桶并（可选）删除刚刚创建的存储桶。

在 AWS Cloud9 IDE 中，创建一个包含以下内容的文件，并使用该名称保存该文件`s3.py`。

```
import sys
import boto3
from botocore.exceptions import ClientError


def list_my_buckets(s3_resource):
    print("Buckets:\n\t", *[b.name for b in s3_resource.buckets.all()], sep="\n\t")


def create_and_delete_my_bucket(s3_resource, bucket_name, keep_bucket):
    list_my_buckets(s3_resource)

    try:
        print("\nCreating new bucket:", bucket_name)
        bucket = s3_resource.create_bucket(
            Bucket=bucket_name,
            CreateBucketConfiguration={
                "LocationConstraint": s3_resource.meta.client.meta.region_name
            },
        )
    except ClientError as e:
        print(
            f"Couldn't create a bucket for the demo. Here's why: "
            f"{e.response['Error']['Message']}"
        )
        raise

    bucket.wait_until_exists()
    list_my_buckets(s3_resource)

    if not keep_bucket:
        print("\nDeleting bucket:", bucket.name)
        bucket.delete()

        bucket.wait_until_not_exists()
        list_my_buckets(s3_resource)
    else:
        print("\nKeeping bucket:", bucket.name)


def main():
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument("bucket_name", help="The name of the bucket to create.")
    parser.add_argument("region", help="The region in which to create your bucket.")
    parser.add_argument(
        "--keep_bucket",
        help="Keeps the created bucket. When not "
        "specified, the bucket is deleted "
        "at the end of the demo.",
        action="store_true",
    )

    args = parser.parse_args()
    s3_resource = (
        boto3.resource("s3", region_name=args.region)
        if args.region
        else boto3.resource("s3")
    )
    try:
        create_and_delete_my_bucket(s3_resource, args.bucket_name, args.keep_bucket)
    except ClientError:
        print("Exiting the demo.")


if __name__ == "__main__":
    main()
```

## 第 6 步：运行 S AWS DK 代码
<a name="sample-python-sdk-run"></a>

1. 在菜单栏上依次选择**运行**、**运行配置**和**新建运行配置**。

1. 在 **Comman** d 中`s3.py my-test-bucket us-west-2`，输入，其中`my-test-bucket``us-west-2`是要创建的存储桶的名称，也是创建存储桶所在 AWS 区域的 ID。默认情况下，您的存储桶会在脚本退出之前被删除。要保留您的存储桶，请将 `--keep_bucket` 添加到您的命令中。有关 AWS 区域列表 IDs，请参阅中的 [Amazon 简单存储服务终端节点和配额*AWS 一般参考*](https://docs.aws.amazon.com/general/latest/gr/s3.html)。
**注意**  
Amazon S3 存储桶名称必须是唯一的，而 AWS不仅仅是您的 AWS 账户。

1. 选择 **Run (运行)**，然后比较输出。

   ```
   Buckets:
   
           a-pre-existing-bucket
   
   Creating new bucket: my-test-bucket
   Buckets:
   
           a-pre-existing-bucket
           my-test-bucket
   
   Deleting bucket: my-test-bucket
   Buckets:
   
           a-pre-existing-bucket
   ```

## 步骤 7：清除
<a name="sample-python-clean-up"></a>

为防止在您完成本教程后继续向您的 AWS 账户收费，请删除该 AWS Cloud9 环境。有关说明，请参阅[删除中的环境 AWS Cloud9](delete-environment.md)。