AWS IoT JITPovisioning шаблон с Fn :: Join - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь добавить registrationConfig для моего сертификата CA в AWS IoT. Я хотел бы сделать некоторые манипуляции с данными для атрибутов Thing. Но я не могу заставить этот JITP работать, если в теле шаблона есть Fn :: Join.

Ниже приведен фрагмент тела шаблона (строка неэкранирована для чтения)

НЕ работает:

"Resources": {
  "thing": {
    "Type": "AWS::IoT::Thing",
    "Properties": {
      "ThingName": {
        "Ref": "AWS::IoT::Certificate::CommonName"
      },
      "ThingTypeName" :  "w2-device",
      "ThingGroups" : ["w2-devices"],
      "AttributePayload": {
        "location": {
          "Fn::Join":["",["ThingPrefix_",{"Ref":"SerialNumber"}]]
        },
        "organization": {
          "Ref": "AWS::IoT::Certificate::Organization"
        },
        "version": "w2",
        "country": {
          "Ref": "AWS::IoT::Certificate::Country"
        }
      }
    }
  },

В приведенном выше, когда у меня есть Fn::Join в AttributePayload / location, он не может создать Thing во время JITP. Я также не вижу никаких ошибок в CloudWatch.

Работает:

"Resources": {
  "thing": {
    "Type": "AWS::IoT::Thing",
    "Properties": {
      "ThingName": {
        "Ref": "AWS::IoT::Certificate::CommonName"
      },
      "ThingTypeName" :  "w2-device",
      "ThingGroups" : ["w2-devices"],
      "AttributePayload": {
        "location": {
          "Ref": "AWS::IoT::Certificate::StateName"
        },
        "organization": {
          "Ref": "AWS::IoT::Certificate::Organization"
        },
        "version": "w2",
        "country": {
          "Ref": "AWS::IoT::Certificate::Country"
        }
      }
    }
},

Примечание: я также спрашивал об этом на aws форуме , но без ответа там еще.

1 Ответ

0 голосов
/ 02 марта 2020

Шаблоны обеспечения для JITP определяют набор параметров, начинающийся с AWS::IoT::Certificate.

Параметр AWS::IoT::Certificate::SerialNumber должен использоваться вместо просто SerialNumber в полезной нагрузке атрибута. например,

"AttributePayload": {
    "location": {
      "Fn::Join":["",["ThingPrefix_",{"Ref":"AWS::IoT::Certificate::SerialNumber"}]]
    },

https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html перечисляет определенные параметры для JITP как:

  • AWS :: IoT :: Certificate :: Страна
  • AWS :: IoT :: Сертификат :: Организация
  • AWS :: IoT :: Сертификат :: OrganizationalUnit
  • AWS :: IoT: : Сертификат :: DistinguishedNameQualifier
  • AWS :: IoT :: Сертификат :: StateName
  • AWS :: IoT :: Сертификат :: CommonName
  • AWS :: IoT :: Сертификат :: SerialNumber
  • AWS :: IoT :: Сертификат :: Id

Примеры SerialNumber в документации AWS (без префикса AWS::IoT::Certificate используются для процесса Массовая регистрация .

...