在 SAM 部署期间检测到 AWS SAM 模板验证错误。伪参数 ${AWS::AccountId} 不被接受
AWS SAM template validation error detected during SAM Deploy. Pseudo-param ${AWS::AccountId} not accepted
在尝试部署 SAM 时,我收到以下拒绝信息:
1 validation error detected: Value 'arn:aws:iam::${AWS::AccountId}:role/Lambda-Exec-And-CloudWatch' at 'role' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+ (Service:AWSLambdaInternal; Status Code: 400; Error Code: ValidationException;
当我用以下伪参数替换 Lambda 函数的 arn 角色构造中的账户 ID 时,会发生这种情况:${AWS::AccountId}.
这是发生这种情况的 YAML 模板中函数的角色 属性:
Role:
arn:aws:iam::${AWS::AccountId}:role/Lambda-Exec-And-CloudWatch
预期的正则表达式似乎只接受硬编码的帐户 ID。
如果有帮助,我正在使用 Cloud9 作为我的 IDE。
我错过了什么?
谢谢!
我们需要使用内部函数 !Sub ,Here 是几个例子
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.lambdaHandler
Runtime: nodejs12.x
Role: !Sub arn:aws:iam::${AWS::AccountId}:role/my-lambda-role
在尝试部署 SAM 时,我收到以下拒绝信息:
1 validation error detected: Value 'arn:aws:iam::${AWS::AccountId}:role/Lambda-Exec-And-CloudWatch' at 'role' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+ (Service:AWSLambdaInternal; Status Code: 400; Error Code: ValidationException;
当我用以下伪参数替换 Lambda 函数的 arn 角色构造中的账户 ID 时,会发生这种情况:${AWS::AccountId}.
这是发生这种情况的 YAML 模板中函数的角色 属性:
Role:
arn:aws:iam::${AWS::AccountId}:role/Lambda-Exec-And-CloudWatch
预期的正则表达式似乎只接受硬编码的帐户 ID。
如果有帮助,我正在使用 Cloud9 作为我的 IDE。
我错过了什么?
谢谢!
我们需要使用内部函数 !Sub ,Here 是几个例子
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.lambdaHandler
Runtime: nodejs12.x
Role: !Sub arn:aws:iam::${AWS::AccountId}:role/my-lambda-role