

# AddLayerVersionPermission
<a name="API_AddLayerVersionPermission"></a>

为某个 [AWS Lambda 层](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)的某个版本添加基于资源的策略权限。使用此操作可将层使用权限授予其他账户。您可以向企业中的单个账户、所有账户或所有AWS账户授予权限。

要撤销权限，请调用 [RemoveLayerVersionPermission](API_RemoveLayerVersionPermission.md) 与您在添加时指定的语句 ID。

## 请求语法
<a name="API_AddLayerVersionPermission_RequestSyntax"></a>

```
POST /2018-10-31/layers/LayerName/versions/VersionNumber/policy?RevisionId=RevisionId HTTP/1.1
Content-type: application/json

{
   "Action": "string",
   "OrganizationId": "string",
   "Principal": "string",
   "StatementId": "string"
}
```

## URI 请求参数
<a name="API_AddLayerVersionPermission_RequestParameters"></a>

请求使用以下 URI 参数。

 ** [LayerName](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-LayerName"></a>
层的名称或 Amazon Resource Name (ARN)。  
长度限制：最小长度为 1。长度上限为 140。  
模式：`(arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+)|[a-zA-Z0-9-_]+`  
必需：是

 ** [RevisionId](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-RevisionId"></a>
仅当修订版 ID 与指定的 ID 匹配时才更新策略。使用此选项以避免修改自上次读取后已发生更改的策略。

 ** [VersionNumber](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-VersionNumber"></a>
版本号。  
必需：是

## 请求体
<a name="API_AddLayerVersionPermission_RequestBody"></a>

请求接受采用 JSON 格式的以下数据。

 ** [Action](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-Action"></a>
授予层访问权限的 API 操作。例如，`lambda:GetLayerVersion`。  
类型：字符串  
长度约束：最大长度为 22。  
模式：`lambda:GetLayerVersion`  
必需：是

 ** [OrganizationId](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-OrganizationId"></a>
如果将主体设置为 `*`，则为指定组织中的所有账户授予权限。  
类型：字符串  
长度约束：最大长度为 34。  
模式：`o-[a-z0-9]{10,32}`  
必需：否

 ** [Principal](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-Principal"></a>
账户 ID 或 `*` 为企业中的所有账户或所有AWS账户（如果 `organizationId` 未指定）授予层级使用权限。对于后一种情况，请确保您确实希望所有AWS账户都具有此层级的使用权限。  
类型：字符串  
模式：`\d{12}|\*|arn:(aws[a-zA-Z-]*):iam::\d{12}:root`  
必需：是

 ** [StatementId](#API_AddLayerVersionPermission_RequestSyntax) **   <a name="lambda-AddLayerVersionPermission-request-StatementId"></a>
将策略与同一层版本上的其他策略区分开来的标识符。  
类型：字符串  
长度约束：最小长度为 1。最大长度为 100。  
模式：`([a-zA-Z0-9-_]+)`  
必需：是

## 响应语法
<a name="API_AddLayerVersionPermission_ResponseSyntax"></a>

```
HTTP/1.1 201
Content-type: application/json

{
   "RevisionId": "string",
   "Statement": "string"
}
```

## 响应元素
<a name="API_AddLayerVersionPermission_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 201 响应。

服务以 JSON 格式返回的以下数据。

 ** [RevisionId](#API_AddLayerVersionPermission_ResponseSyntax) **   <a name="lambda-AddLayerVersionPermission-response-RevisionId"></a>
策略当前修订版的唯一标识符。  
类型：字符串

 ** [Statement](#API_AddLayerVersionPermission_ResponseSyntax) **   <a name="lambda-AddLayerVersionPermission-response-Statement"></a>
权限语句。  
类型：字符串

## 错误
<a name="API_AddLayerVersionPermission_Errors"></a>

有关所有操作返回的常见错误的信息，请参阅 [常见错误](CommonErrors.md)。

 ** InvalidParameterValueException **   
请求中的参数之一无效。  
HTTP 状态代码：400

 ** PolicyLengthExceededException **   
资源的权限策略太大。有关更多信息，请参阅 [Lambda 限额](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。  
HTTP 状态代码：400

 ** PreconditionFailedException **   
提供的 RevisionId 与 Lambda 函数或别名的最新 RevisionId 不匹配。调用 `GetFunction` 或 `GetAlias` API 操作来检索您的资源的最新 RevisionId。  
HTTP 状态代码：412

 ** ResourceConflictException **   
资源已存在，或者其他操作正在进行中。  
HTTP 状态代码：409

 ** ResourceNotFoundException **   
请求中指定的资源不存在。  
HTTP 状态代码：404

 ** ServiceException **   
AWS Lambda 服务遇到了内部错误。  
HTTP 状态代码：500

 ** TooManyRequestsException **   
超出了请求吞吐量限制。有关更多信息，请参阅 [Lambda 限额](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests)。  
HTTP 状态代码：429

## 另请参阅
<a name="API_AddLayerVersionPermission_SeeAlso"></a>

有关在特定语言的 AWS SDK 中使用此 API 的更多信息，请参阅以下内容：
+  [AWS 命令行界面](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 C\$1\$1 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 Go 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 Java V2 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForJavaV2/lambda-2015-03-31/AddLayerVersionPermission) 
+  [AWS 适用于 JavaScript 的开发工具包 V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 PHP V3 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 Python 的 AWS SDK](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/AddLayerVersionPermission) 
+  [适用于 Ruby V3 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/lambda-2015-03-31/AddLayerVersionPermission) 