小编Mar*_*ler的帖子

DynamoDB UpdateException:类型不匹配的属性以进行更新

我在DynamoDB中有以下记录:

    {
        "BusinessNo": {
            "N": "12345"
        },
        "Metadata": {
            "M": {
                "MimeType": {
                    "S": "audio/wav"
                },
                "FileName": {
                    "S": "00032329.wav"
                },
                "CustomC": {
                    "S": "baz"
                },
                "CustomA": {
                    "S": "foo"
                },
                "CustomB": {
                    "S": "bar"
                },
                "Size": {
                    "S": "3992020323"
                }
            }
        },
        "Id": {
            "S": "f0de8af3-a7f5-4d9b-ad5d-b2f150abd15e"
        },
        "Revision": {
            "N": "2"
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我使用来自nodejs AWS SDK 的update方法提交以下内容时DynamoDB.DocumentClient(我也尝试add代替set):

{
  "TableName": "Storage_FileMetadata",
  "Key": {
    "Id": "f0de8af3-a7f5-4d9b-ad5d-b2f150abd15e",
    "BusinessNo": "12345"
  },
  "ExpressionAttributeNames": {
    "#m": "Metadata", …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb aws-sdk

5
推荐指数
1
解决办法
5151
查看次数

PROMOTE TRANSACTION请求失败,因为没有活动的本地事务

在什么情况下我会看到上述消息?我只有一次调用SQL Server,它包含在对TransactionScope的调用中.在我们的开发和QA环境中,MSDTC被关闭,呼叫成功.但是,在我们打开MSDTC的生产环境中,我们没有通过此调用.当我确定我们根本没有查看分布式事务调用时,是否会出现这种情况?

msdtc .net-4.0 transactionscope

4
推荐指数
1
解决办法
2585
查看次数

DynamoDB put-item ConditionalCheckFailedException

鉴于下面定义的表模式(create-table.json)我在调用后put-item使用add-event1.json后跟以下错误add-event2.json:

调用PutItem操作时发生客户端错误(ConditionalCheckFailedException):条件请求失败

为什么ConditionExpression不允许我写两个记录?(我希望在第二次手术后有2条记录)

我怀疑这是因为使用了非关键条件,但我没有在文档中看到任何表明缺乏对非关键条件的支持的内容.

创建表

$ aws dynamodb create-table --cli-input-json file://create-table.json
Run Code Online (Sandbox Code Playgroud)

创建-table.json

{
    "TableName": "EVENTS_TEST",
    "KeySchema": [
      { "AttributeName": "aggregateId", "KeyType": "HASH" },
      { "AttributeName": "streamRevision", "KeyType": "RANGE" }
    ],
    "AttributeDefinitions": [
      { "AttributeName": "aggregateId", "AttributeType": "S" },
      { "AttributeName": "streamRevision", "AttributeType": "N" }
    ],
    "ProvisionedThroughput": {
      "ReadCapacityUnits": 10,
      "WriteCapacityUnits": 10
    }
 }
Run Code Online (Sandbox Code Playgroud)

添加第一条记录

$ aws dynamodb put-item --cli-input-json file://add-event1.json
Run Code Online (Sandbox Code Playgroud)

附加event1.json

{
  "TableName": "EVENTS_TEST",
  "Item": {
    "aggregateId": { "S": "id" …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb

4
推荐指数
1
解决办法
2万
查看次数

是否可以使用 Akka Stream 从数据库表创建“无限”流

我正在使用 Akka Streams 2.4.2 并且想知道是否有可能设置一个使用数据库表作为源的流,并且每当有记录添加到表中时,记录被物化并推送到下游?

更新:2/23/16

我已经从@PH88 实施了解决方案。这是我的表定义:

case class Record(id: Int, value: String)

class Records(tag: Tag) extends Table[Record](tag, "my_stream") {
  def id = column[Int]("id")
  def value = column[String]("value")
  def * = (id, value) <> (Record.tupled, Record.unapply)
}
Run Code Online (Sandbox Code Playgroud)

这是实现:

 implicit val system = ActorSystem("Publisher")
 implicit val materializer = ActorMaterializer()
 val db = Database.forConfig("pg-postgres")

 try{
  val newRecStream = Source.unfold((0, List[Record]())) { n =>
    try {
      val q = for (r <- TableQuery[Records].filter(row => row.id > n._1)) yield (r)
      val r = …
Run Code Online (Sandbox Code Playgroud)

akka-stream slick-3.0

3
推荐指数
1
解决办法
2212
查看次数

RegistryKey ValueCount/SubKeyCount错误

我试图查询以下注册表项值:

HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SharedMemoryOn HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\ProtocolOrder

但是根据我正在运行程序的机器,查询返回null.当我在本地计算机上调试时,我检查ValueCount的值:

HKLM\SOFTWARE\Microsoft\MSSQLServer\Client HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib

计数为0,OpenSubKey返回null.

我是本地管理员组中的域管理员,并已将以下内容添加到我的app.manifest:

        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

        private static void ValidateSqlClientSettings()
    {
        Console.WriteLine("\r\n/////////////// LOCAL SQL CLIENT PROTOCOLS ////////////////");

        RegistryKey keyHKLM = Registry.LocalMachine;
        ///TODO: nullreferenceexception - connect to remote machine and find out why
        RegistryKey sqlClientKey = keyHKLM.OpenSubKey(@"SOFTWARE\Microsoft\MSSQLServer\Client");

        if (sqlClientKey == null)
        {
            WriteLine2Console(@"WARNING: unable to read registry key '{0}\SOFTWARE\Microsoft\MSSQLServer\Client'", ConsoleColor.Yellow);
        }

        var cliKeyNames = from k in sqlClientKey.GetSubKeyNames()
                          where k == "SuperSocketNetLib"
                          select k;

        ///TODO: find out why these values are always missing (even …
Run Code Online (Sandbox Code Playgroud)

c# registry

2
推荐指数
1
解决办法
1510
查看次数

来自Facebook的DotNetOpenAuth声称标识符从不相同

我正在使用DotNetOpenAuth v3.5.0.10357,每次用户对Facebook进行身份验证时,我都会收到不同的声称标识符.令牌看起来是加密的,因此我假设DNOA以某种方式加密令牌以及到期.谁能证实这一点?或者我使用它错了:

    public ActionResult FacebookLogOn(string returnUrl)
    {
        IAuthorizationState authorization = m_FacebookClient.ProcessUserAuthorization();
        if (authorization == null)
        {
            // Kick off authorization request
            return new FacebookAuthenticationResult(m_FacebookClient, returnUrl);
        }
        else
        {
            // TODO: can we check response status codes to see if request was successful?
            var baseTokenUrl = "https://graph.facebook.com/me?access_token=";
            var requestUrl = String.Format("{0}{1}", baseTokenUrl, Uri.EscapeDataString(authorization.AccessToken));
            var claimedIdentifier = String.Format("{0}{1}", baseTokenUrl, authorization.AccessToken.Split('|')[0]);

            var request = WebRequest.Create(requestUrl);
            using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    var graph = FacebookGraph.Deserialize(responseStream);
                    var token …
Run Code Online (Sandbox Code Playgroud)

facebook dotnetopenauth asp.net-mvc-3

2
推荐指数
1
解决办法
590
查看次数

动态创建任务列表

我有一个 DAG,它是通过查询 DynamoDB 的列表创建的,对于列表中的每个项目,使用 PythonOperator 创建一个任务并将其添加到 DAG。在下面的示例中未显示,但重要的是要注意列表中的某些项目依赖于其他任务,因此我使用它set_upstream来强制执行依赖关系。

- airflow_home
  \- dags
    \- workflow.py
Run Code Online (Sandbox Code Playgroud)

工作流.py

def get_task_list():
    # ... query dynamodb ...

def run_task(task):
    # ... do stuff ...

dag = DAG(dag_id='my_dag', ...)
tasks = get_task_list()
for task in tasks:
    t = PythonOperator(
        task_id=task['id'],
        provide_context=False,
        dag=dag,
        python_callable=run_task,
        op_args=[task]
    )
Run Code Online (Sandbox Code Playgroud)

问题是workflow.py一遍又一遍地运行(每次任务运行时?),我的get_task_list()方法受到 AWS 的限制并抛出异常。

我认为这是因为无论何时run_task()被调用,它都会运行所有全局变量,workflow.py所以我尝试run_task()进入一个单独的模块,如下所示:

- airflow_home
  \- dags
    \- workflow.py
    \- mypackage
      \- __init__
      \- task.py
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何事情。我什至尝试放入get_task_list()一个用工厂函数包装的 SubDagOperator,它的行为方式仍然相同。 …

airflow apache-airflow

2
推荐指数
1
解决办法
4398
查看次数

使用 AWS ElastiCache 请求中的 Airflow CROSSSLOT 密钥未散列到同一插槽错误

我在 AWS ECS 上运行 apache-airflow 1.8.1,并且有一个 AWS ElastiCache 集群 (redis 3.2.4),运行 2 个分片/2 个启用多可用区的节点(集群 Redis 引擎)。我已经验证气流可以毫无问题地访问集群的主机/端口。

这是日志:

Thu Jul 20 01:39:21 UTC 2017 - Checking for redis (endpoint: redis://xxxxxx.xxxxxx.clustercfg.usw2.cache.amazonaws.com:6379) connectivity
Thu Jul 20 01:39:21 UTC 2017 - Connected to redis (endpoint: redis://xxxxxx.xxxxxx.clustercfg.usw2.cache.amazonaws.com:6379)
logging to s3://xxxx-xxxx-xxxx/logs/airflow
Starting worker
[2017-07-20 01:39:44,020] {__init__.py:57} INFO - Using executor CeleryExecutor
[2017-07-20 01:39:45,960] {driver.py:120} INFO - Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt
[2017-07-20 01:39:45,989] {driver.py:120} INFO - Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt
[2017-07-20 01:39:53,352] {__init__.py:57} INFO - …
Run Code Online (Sandbox Code Playgroud)

redis amazon-elasticache airflow

2
推荐指数
1
解决办法
2527
查看次数

SMO ManagedComputer.ServiceInstances 为空

我正在尝试使用 SMO(VS 2010、SQL Server 2008)连接到 SQL Server 并查看服务器协议配置。我可以连接并列出服务和 ClientProtocols 以及运行 MSSQLSERVER 服务的帐户。但是,ServerInstances 集合是空的。目标服务器上唯一的实例是默认的 (MSSQLSERVER),它不应该在集合中吗?如何获取它的实例以便检查 ServerProtocols 集合?这是我正在使用的代码:

    class Program
{
    static void Main(string[] args)
    {
        //machine hosting installed sql server instance
        ManagedComputer host = new ManagedComputer("fully-qualified.host.name");


        if (host.ServerInstances.Count != 0)
        {
            //why is this 0? Is it because only the DEFAULT instance exists?
            Console.WriteLine("/////////////// INSTANCES ////////////////");
            foreach (ServerInstance inst in host.ServerInstances)
            {
                Console.WriteLine(inst.Name);
            }
        }

        Console.WriteLine("/////////////// SERVICES ////////////////");
        // enumerate sql services (looking for MSSSQLSERVER)
        foreach (Service svc in host.Services)
        { …
Run Code Online (Sandbox Code Playgroud)

wmi smo

1
推荐指数
1
解决办法
1701
查看次数