

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

# sam pipeline bootstrap
<a name="sam-cli-command-reference-sam-pipeline-bootstrap"></a>

本页提供 AWS Serverless Application Model 命令行界面 (AWS SAMCLI) `sam local pipeline bootstrap` 子命令的参考信息。

有关简介 AWS SAMCLI，请参阅 [那是什么 AWS SAMCLI？](what-is-sam-overview.md#what-is-sam-cli)

该`sam pipeline bootstrap`子命令生成连接到 CI/CD 系统所需的 AWS 基础架构资源。在运行 **sam pipeline init** 命令之前，必须针对管道中的每个部署阶段运行此步骤。

此子命令设置以下 AWS 基础架构资源：
+ 可选择通过以下方式配置管道权限：
  + 具有访问密钥 ID 和私有密钥访问凭证的管道 IAM 用户，将与 CI/CD 系统共享。
**注意**  
我们建议定期轮换访问密钥。有关更多信息，请参阅*《IAM 用户指南》*中的[对于需要长期凭证的使用场景定期轮换访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials)。
  + 通过 OIDC 支持的 CI/CD 平台。有关在 AWS SAM 管道中使用 OIDC 的介绍，请转到 [如何对管道使用 OIDC 身份验证 AWS SAM](deploying-with-oidc.md)。
+ 由担任的 CloudFormation 用于部署 AWS SAM 应用程序的 CloudFormation 执行 IAM 角色。
+ 用于存放 AWS SAM 工件的 Amazon S3 存储桶。
+ （可选）用于存放容器映像 Lambda 部署包的 Amazon ECR 映像存储库（如果资源为 `Image` 包类型）。

## 用法
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-usage"></a>

```
$ sam pipeline bootstrap <options>
```

## 选项
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-options"></a>

`--bitbucket-repo-uuid TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-bitbucket-repo-uuid"></a>
 Bitbucket 存储库的 UUID。此选项特定于使用 Bitbucket OIDC 获取权限。  
这个值可以在 https://bitbucket.org/*workspace*/*repository*/admin/addon/admin/pipelines/openid-connect 上找到 

`--bucket TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-bucket"></a>
存放工件的 Amazon S3 存储桶的 ARN。 AWS SAM 

`--cicd-provider TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-cicd-provider"></a>
 AWS SAM 管道 CI/CD 平台。

`--cloudformation-execution-role TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-cloudformation-execution-role"></a>
部署应用程序堆栈 CloudFormation 时要担任的 IAM 角色的 ARN。仅当您希望使用自己的角色时提供。否则，该命令将创建一个新角色。

`--config-env TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-config-env"></a>
在配置文件中指定要使用的默认参数值的环境名称。默认值为 **default**。有关配置文件的详细信息，请参阅 [AWS SAMCLI 配置文件](serverless-sam-cli-config.md)。

`--config-file PATH`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-config-file"></a>
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中，默认值为 `samconfig.toml`。有关配置文件的详细信息，请参阅 [AWS SAMCLI 配置文件](serverless-sam-cli-config.md)。

`--confirm-changeset | --no-confirm-changeset`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-confirm-changeset"></a>
提示确认资源的部署。

`--create-image-repository | --no-create-image-repository`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-create-image-repository"></a>
如果未提供 Amazon ECR 映像存储库，请指定是否要创建。Amazon ECR 存储库存放 Lambda 函数或包类型为 `Image` 的层的容器映像。默认值为 `--no-create-image-repository`。

`--debug`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-debug"></a>
启用调试日志记录，打印 AWS SAM CLI 生成的调试消息，并显示时间戳。

`--deployment-branch TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-deployment-branch"></a>
将进行部署的分支的名称。此选项特定于使用 GitHub 操作 OIDC 获取权限。

`--github-org TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-github-org"></a>
存储库所属的 GitHub 组织。如果不存在任何组织，请输入存储库所有者的用户名。此选项特定于使用 GitHub操作 OIDC 获取权限。

`--github-repo TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-github-repo"></a>
将从中进行部署的 GitHub 存储库的名称。此选项特定于使用 GitHub 操作 OIDC 获取权限。

`--gitlab-group TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-gitlab-group"></a>
存储库所属的 GitLab 群组。此选项特定于使用 GitLab OIDC 获取权限。

`--gitlab-project TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-gitlab-project"></a>
 GitLab 项目名称。此选项特定于使用 GitLab OIDC 获取权限。

`--help, -h`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-help"></a>
显示此消息并退出。

`--image-repository TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-image-repository"></a>
Amazon ECR 映像存储库的 ARN，该存储库存放 Lambda 函数或包类型为 `Image` 的层的容器映像。如果已提供，则会忽略 `--create-image-repository` 选项。如果未提供且已指定 `--create-image-repository`，则该命令将创建一个。

`--interactive | --no-interactive`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-interactive"></a>
禁用引导参数的交互式提示，且如果缺少任何必需的参数，则会失败。默认值为 `--interactive`。对于此命令，`--stage` 是唯一需要的参数。  
如果指定了 `--no-interactive` 和 `--use-oidc-provider`，则必须包含 OIDC 提供商的所有必需参数。

`--oidc-client-id TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-oidc-client-id"></a>
为 OIDC 提供商配置的客户端 ID。

`--oidc-provider [github-actions | gitlab | bitbucket-pipelines]`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-oidc-provider"></a>
将用于 OIDC 权限的 CI/CD 提供商的名称。 GitLab GitHub、和 Bitbucket 均受支持。

`--oidc-provider-url TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-oidc-provider-url"></a>
OIDC 提供者的 URL。值必须以 **https://** 开头。

`--permissions-provider [oidc | iam]`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-permissions-provider"></a>
选择权限提供者来担任管道执行角色。默认值为 **iam**。

`--pipeline-execution-role TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-pipeline-execution-role"></a>
管道用户在此阶段进行操作而要担任的 IAM 角色的 ARN。仅当您希望使用自己的角色时提供。如果未提供，则此命令将创建一个新角色。

`--pipeline-user TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-pipeline-user"></a>
与系统共享访问密钥 ID 和私有访问密钥的 IAM 用户的亚马逊资源名称 (ARN)。 CI/CD 它用于向此 IAM 用户授予访问相应 AWS 账户的权限。如果未提供，此命令将创建 IAM 用户以及访问密钥 ID 和秘密访问密钥。

`--profile TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-profile"></a>
您的凭证文件中用于获取 AWS 凭证的特定个人资料。

`--region TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-region"></a>
要部署到的 AWS 区域。例如 `us-east-1`。

`--save-params`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-save-params"></a>
将您在命令行中提供的参数保存到 AWS SAM 配置文件中。

`--stage TEXT`  <a name="sam-cli-command-reference-sam-pipeline-bootstrap-options-stage"></a>
相应部署阶段的名称。它用作创建 AWS 的基础架构资源的后缀。

## 问题排查
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-troubleshooting"></a>

### 错误：缺少必需参数
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-troubleshooting-example1"></a>

如果指定了 `--no-interactive` 和 `--use-oidc-provider`，但未提供任何必需的参数，则会显示此错误消息以及缺失参数的描述。

## 示例
<a name="sam-cli-command-reference-sam-pipeline-bootstrap-examples"></a>

以下示例创建了创建 CI/CD 系统所需的 AWS 资源，它开启了调试日志并打印由生成的调试消息 AWS SAMCLI：使用生成的事件进行本地测试，方法是`s3.json`使用事件在本地调用 Lambda 函数

```
$ sam pipeline bootstrap --debug
```