AddLayerVersionPermission
为某个 AWS Lambda 层的某个版本添加基于资源的策略权限。使用此操作可将层使用权限授予其他账户。您可以向企业中的单个账户、所有账户或所有AWS账户授予权限。
要撤销权限,请调用 RemoveLayerVersionPermission 与您在添加时指定的语句 ID。
请求语法
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 请求参数
请求使用以下 URI 参数。
- LayerName
-
层的名称或 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
-
仅当修订版 ID 与指定的 ID 匹配时才更新策略。使用此选项以避免修改自上次读取后已发生更改的策略。
- VersionNumber
-
版本号。
必需:是
请求体
请求接受采用 JSON 格式的以下数据。
- Action
-
授予层访问权限的 API 操作。例如,
lambda:GetLayerVersion
。类型:字符串
长度约束:最大长度为 22。
模式:
lambda:GetLayerVersion
必需:是
- OrganizationId
-
如果将主体设置为
*
,则为指定组织中的所有账户授予权限。类型:字符串
长度约束:最大长度为 34。
模式:
o-[a-z0-9]{10,32}
必需:否
- Principal
-
账户 ID 或
*
为企业中的所有账户或所有AWS账户(如果organizationId
未指定)授予层级使用权限。对于后一种情况,请确保您确实希望所有AWS账户都具有此层级的使用权限。类型:字符串
模式:
\d{12}|\*|arn:(aws[a-zA-Z-]*):iam::\d{12}:root
必需:是
- StatementId
-
将策略与同一层版本上的其他策略区分开来的标识符。
类型:字符串
长度约束:最小长度为 1。最大长度为 100。
模式:
([a-zA-Z0-9-_]+)
必需:是
响应语法
HTTP/1.1 201
Content-type: application/json
{
"RevisionId": "string",
"Statement": "string"
}
响应元素
如果此操作成功,则该服务将会发送回 HTTP 201 响应。
服务以 JSON 格式返回的以下数据。
- RevisionId
-
策略当前修订版的唯一标识符。
类型:字符串
- Statement
-
权限语句。
类型:字符串
错误
有关所有操作返回的常见错误的信息,请参阅 常见错误。
- InvalidParameterValueException
-
请求中的参数之一无效。
HTTP 状态代码:400
- PolicyLengthExceededException
-
资源的权限策略太大。有关更多信息,请参阅 Lambda 限额。
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 限额。
HTTP 状态代码:429
另请参阅
有关在特定语言的 AWS SDK 中使用此 API 的更多信息,请参阅以下内容: