Amazon web services aws cloudformation-在'处的值;content.s3Bucket';未能满足约束:成员必须满足正则表达式模式

Amazon web services aws cloudformation-在'处的值;content.s3Bucket';未能满足约束:成员必须满足正则表达式模式,amazon-web-services,amazon-s3,amazon-cloudformation,Amazon Web Services,Amazon S3,Amazon Cloudformation,我打算访问s3存储桶以获取zip文件。 当我使用下面的代码时,它可以访问bucket,因为它使用bucket的根目录。 “S3Bucket”:{ “Ref”:“HandlerCodeS3Bucket” }, 当我想访问同一个bucket的layers文件夹时,我使用HandlerCodeS3BucketLayer参数。 但它显示以下错误。 1 validation error detected: Value 'admin-sourcecode/layers' at 'content.s3Buck

我打算访问s3存储桶以获取zip文件。
当我使用下面的代码时,它可以访问bucket,因为它使用bucket的根目录。

“S3Bucket”:{ “Ref”:“HandlerCodeS3Bucket” },

当我想访问同一个bucket的layers文件夹时,我使用HandlerCodeS3BucketLayer参数。
但它显示以下错误。

1 validation error detected: Value 'admin-sourcecode/layers' at 'content.s3Bucket' failed to satisfy constraint: Member must satisfy regular expression pattern: ^[0-9A-Za-z\.\-_]*(?<!\.)$ (Service: AWSLambdaInternal; Status Code: 400; Error Code: ValidationException; Request ID: xxx)

Bucket name不能包含斜杠:

admin-sourcecode/layers
也许在您的代码中应该是:

{
    "AWSTemplateFormatVersion": "2010-09-09",
    
    "Parameters": {
      "HandlerCodeS3Bucket": {
        "Type": "String",
        "Default": "admin-sourcecode"
      },
      "HandlerCodeS3BucketLayer": {
        "Type": "String",
        "Default": "admin-sourcecode"
      }
    },
    "Resources": {
      "MyLayer": {
        "Type": "AWS::Lambda::LayerVersion",
        "Properties": {
            "CompatibleRuntimes": [
                "nodejs12.x"
            ],
            "Content": {
                "S3Bucket": {
                  "Ref": "HandlerCodeS3BucketLayer"
                },
                "S3Key": "layers/imageUploadLayer.zip"
            },
            "Description": "My layer",
            "LayerName": "imageLayer",
            "LicenseInfo": "MIT"
        }
    }
   }
  }

首先将其通过yaml验证器,并放在一个好的编辑器(如vscode)中。检查yaml中没有红色扭曲下划线。下一步检查分配的IAM角色是否具有权限?还是说您的条件不满足:
Default:“admin sourcecode/layers”
,那么它是否适用于通配符
*
{
    "AWSTemplateFormatVersion": "2010-09-09",
    
    "Parameters": {
      "HandlerCodeS3Bucket": {
        "Type": "String",
        "Default": "admin-sourcecode"
      },
      "HandlerCodeS3BucketLayer": {
        "Type": "String",
        "Default": "admin-sourcecode"
      }
    },
    "Resources": {
      "MyLayer": {
        "Type": "AWS::Lambda::LayerVersion",
        "Properties": {
            "CompatibleRuntimes": [
                "nodejs12.x"
            ],
            "Content": {
                "S3Bucket": {
                  "Ref": "HandlerCodeS3BucketLayer"
                },
                "S3Key": "layers/imageUploadLayer.zip"
            },
            "Description": "My layer",
            "LayerName": "imageLayer",
            "LicenseInfo": "MIT"
        }
    }
   }
  }