AWS无服务器功能:无法访问aws-sdk对象的方法...“不是函数”

用户名

我在CloudFormation模板中有一个无服务器功能,用于实例化AWS Connect实例。但是,我无法访问aws-sdk对象上的任何方法,抛出的错误是“ connect.createInstance不是函数”。当我在对象上调用getOwnPropertyNames时,它返回以下内容,而不是我尝试访问的方法:['config','isGlobalEndpoint','endpoint','_events','MONITOR_EVENTS_BUBBLE','CALL_EVENTS_BUBBLE','_originalConfig ','_clientId']

作为测试,我实例化了一个S3对象,并在其上调用getOwnPropertyNames返回完全相同的东西。我究竟做错了什么?我在这里遵循规范形式:

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Connect.html#createInstance-property

AWSTemplateFormatVersion: "2010-09-09"
Transform: "AWS::Serverless-2016-10-31"
Parameters:
  IdentityManagementType:
    Description: The type of identity management for your Amazon Connect users.
    Type: String
    AllowedValues: ["SAML", "CONNECT_MANAGED", "EXISTING_DIRECTORY"]
    Default: "SAML"
  InboundCallsEnabled:
    Description: Whether your contact center handles incoming contacts.
    Type: String
    AllowedValues: [true, false]
    Default: true
  InstanceAlias:
    Description: The name for your instance.
    Type: String
    MaxLength: 62
  OutboundCallsEnabled:
    Description: Whether your contact center allows outbound calls.
    Type: String
    AllowedValues: [true, false]
    Default: true
  DirectoryId:
    Description: Optional. The identifier for the directory, if using this type of Identity Management.
    Type: String
  ClientToken:
    Description: Optional. The idempotency token. Used for concurrent deployments
    Type: String
    MaxLength: 500
  Region:
    Description: Region to place the AWS Connect Instance
    Type: String
    Default: us-east-1

#Handler for optional values
Conditions:
  HasClientToken: !Not
    - !Equals
      - ""
      - !Ref ClientToken
  HasDirectoryId: !Not
    - !Equals
      - ""
      - !Ref DirectoryId

Resources:
  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lambda.amazonaws.com
            Action:
              - sts:AssumeRole
      Path: "/"
      Policies:
        - PolicyName: AWSConnect
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - connect:*
                Resource: arn:aws:connect:*:*
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

  CreateConnectInstance:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs12.x
      Description: Invoke a function to create an AWS Connect instance
      MemorySize: 128
      Timeout: 8
      Role: !GetAtt LambdaExecutionRole.Arn
      Tracing: Active
      Environment:
        Variables:
          IdentityManagementType:
            Ref: IdentityManagementType
          InboundCallsEnabled:
            Ref: InboundCallsEnabled
          InstanceAlias:
            Ref: InstanceAlias
          OutboundCallsEnabled:
            Ref: OutboundCallsEnabled
          Region:
            Ref: Region
          #Optional Values
          ClientToken: !If
            - HasClientToken
            - !Ref ClientToken
            - !Ref "AWS::NoValue"
          DirectoryId: !If
            - HasClientToken
            - !Ref ClientToken
            - !Ref "AWS::NoValue"
      InlineCode: |
        var AWS = require('aws-sdk');
        var params = {
          IdentityManagementType: process.env.IdentityManagementType,
          InboundCallsEnabled: process.env.InboundCallsEnabled,
          OutboundCallsEnabled: process.env.OutboundCallsEnabled,
          ClientToken: process.env.ClientToken,
          DirectoryId: process.env.DirectoryId,
          InstanceAlias: process.env.InstanceAlias,
        };
        var connect = new AWS.Connect({apiVersion: '2017-08-08'});
        console.log(Object.getOwnPropertyNames(connect)); // ***Not what's expected***
        var createConnectRequest = connect.createInstance(params, function(err, data) {
          if (err) console.log(err, err.stack);
          else     console.log(data);
        }); // ***connect.createInstance is not a function***

  InvokeLambda:
    Type: AWS::CloudFormation::CustomResource
    DependsOn: CreateConnectInstance
    Version: "1.0"
    Properties:
      ServiceToken: !Sub ${CreateConnectInstance.Arn}
贾莫德

createInstance当前与AWS Lambda Node.js运行时一起部署的AWS开发工具包(在撰写本文时为v2.771.0 )不提供AWS Connect方法看起来createInstance API在预览版本中。

该功能在v2.797.0中引入您可以在本地(Lambda之外)进行验证。我使用二进制方法验证了这一点,以测试2.771.0和当前版本(2.809.0)之间的AWS开发工具包版本以及以下简单代码:

const AWS = require('aws-sdk');
const connect = new AWS.Connect({apiVersion: '2017-08-08'});
connect.createInstance('fred');

更新日志显示本作v2.797.0(除其他事项外):

功能:Connect:此版本增加了一组Amazon Connect API,以编程方式控制实例的创建,修改,描述和删除。

您可以上传兼容版本的SDK(在Lambda包中或通过Lambda图层)以访问此功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript函数何时不是对象?

来自分类Dev

Javascript:错误,对象不是函数

来自分类Dev

对象不是函数

来自分类Dev

对象的属性不是函数

来自分类Dev

被称为对象类型'int'的函数不是xcode中的功能或函数指针

来自分类Dev

所谓的对象“时间”不是函数

来自分类Dev

TypeError:对象不是函数-jQuery

来自分类Dev

TypeError:api.getAll不是函数,无法识别服务方法

来自分类Dev

对象方法的“ thing.appendChild不是函数”

来自分类Dev

修改冷却装饰器以使用方法而不是函数

来自分类Dev

猫鼬对象方法不是函数

来自分类Dev

JavaScript对象和方法,但getName不是函数

来自分类Dev

如何使用无服务器框架通过AWS Lambda函数环境变量访问SSM参数存储值?

来自分类Dev

无服务器框架TypeError:e不是函数

来自分类Dev

在AWS中删除对象后无服务器部署的问题

来自分类Dev

如何引用使用无服务器框架创建的Arn和AWS lambda函数的名称

来自分类Dev

std ::访问带有重载自由函数而不是函数对象的std :: variant

来自分类Dev

无服务器-如何在AWS Lambda函数中定期运行Flask命令?

来自分类Dev

错误:“ currentUser”不是函数或方法,因此无法调用

来自分类Dev

对象的属性不是函数

来自分类Dev

FileReader:对象不是函数

来自分类Dev

AngularJS服务不是函数

来自分类Dev

“ TypeError:对象不是函数”

来自分类Dev

聪明的方法来防止损坏的ssh-config使服务器无法访问

来自分类Dev

将 Identity Server4 部署为 AWS 无服务器 Lambda 函数

来自分类Dev

装饰器返回函数对象而不是包装函数的输出

来自分类Dev

包含/排除目录控制 AWS Lambda 大小无服务器的方法

来自分类Dev

jwplayer 返回函数而不是播放器对象

来自分类Dev

我们可以计划无服务器 aws 而不是部署吗?

Related 相关文章

  1. 1

    javascript函数何时不是对象?

  2. 2

    Javascript:错误,对象不是函数

  3. 3

    对象不是函数

  4. 4

    对象的属性不是函数

  5. 5

    被称为对象类型'int'的函数不是xcode中的功能或函数指针

  6. 6

    所谓的对象“时间”不是函数

  7. 7

    TypeError:对象不是函数-jQuery

  8. 8

    TypeError:api.getAll不是函数,无法识别服务方法

  9. 9

    对象方法的“ thing.appendChild不是函数”

  10. 10

    修改冷却装饰器以使用方法而不是函数

  11. 11

    猫鼬对象方法不是函数

  12. 12

    JavaScript对象和方法,但getName不是函数

  13. 13

    如何使用无服务器框架通过AWS Lambda函数环境变量访问SSM参数存储值?

  14. 14

    无服务器框架TypeError:e不是函数

  15. 15

    在AWS中删除对象后无服务器部署的问题

  16. 16

    如何引用使用无服务器框架创建的Arn和AWS lambda函数的名称

  17. 17

    std ::访问带有重载自由函数而不是函数对象的std :: variant

  18. 18

    无服务器-如何在AWS Lambda函数中定期运行Flask命令?

  19. 19

    错误:“ currentUser”不是函数或方法,因此无法调用

  20. 20

    对象的属性不是函数

  21. 21

    FileReader:对象不是函数

  22. 22

    AngularJS服务不是函数

  23. 23

    “ TypeError:对象不是函数”

  24. 24

    聪明的方法来防止损坏的ssh-config使服务器无法访问

  25. 25

    将 Identity Server4 部署为 AWS 无服务器 Lambda 函数

  26. 26

    装饰器返回函数对象而不是包装函数的输出

  27. 27

    包含/排除目录控制 AWS Lambda 大小无服务器的方法

  28. 28

    jwplayer 返回函数而不是播放器对象

  29. 29

    我们可以计划无服务器 aws 而不是部署吗?

热门标签

归档